Kakšno telo?

V slovenskih tehničnih šolah že nekaj let poteka tekmovanje PIKO (Projekcije in kotiranje), kjer dijaki tekmujejo v znanju tehničnega risanja oz. prostorske predstavljivosti. Spodnja naloga je bila na šolskem tekmovanju 2017.

Na sliki so pravokotne projekcije (naris, stranski ris ter tloris) oglatega telesa. Narišite to telo v izometrični projekciji. Koliko rešitev ima naloga?

Geometrijska z diofantskim pridihom

Andrej je objavil naslednjo nalogo:

Če brez prekrivanja dodamo v vogal trikotnika še dva mnogokotnika, dobimo zgornjo skico. Ali lahko to naredimo še s kakšnim parom mnogokotnikov, od katerih bi imel eden več stranic?

Rešitev: Spomnimo se, da je velikost notranjega kota v pravilnem n-kotniku enaka (n-2)\frac{180^o}{n} ali v radianih (n-2)\frac{\pi}{n}, pa lahko za kot v skupnem oglišču večkotnikov zapišemo

    \[\frac{\pi}{3}+(m-2)\frac{\pi}{m}+(n-2)\frac{\pi}{n}=2\pi.\]

Po ureditvi dobimo lepo diofanstko enačbo

    \[mn-6m-6n=0.\qquad(1)\]

Iščemo torej taki naravni števili m in n, ki tej enačbi zadoščata. Prištejmo na obeh straneh enačbe 36 in levo stran razcepimo. Dobimo

    \[(m-6)(n-6)=36\]

Na levi strani enačbe sta dva faktorja, torej morata biti tudi na desni dva. Ker je

    \[36=1\cdot36=2\cdot 18=3\cdot 12=4\cdot 9=6\cdot 6,\]

vidimo, da so rešitve enačbe (1) naslednji pari (m,n):

    \[(7,42),\quad (8,24),\quad (9,18),\quad (10,15),\quad(12,12).\]

Na zgornji skici je narisana srednja rešitev, devetkotnik  in osemnajstkotnik. Možnosti sta torej še dve: osemkotnik  in štiriindvajsetkotnik ter sedemkotnik in dvainštiridesetkotnik.

Grafični prikaz gibanja satelita okrog Zemlje

V poljubno verzijo Pythona dodamo katero od grafičnih knjižnic. Prav preprosta je graphic.py . Namestimo jo na disk tako, da postane Pythonu vidna, preberemo še navodila na začetku knjižnice in lahko začnemo s programiranjem grafike. Tako recimo koda

from math import *
from graphics import *
def delay(m):
    for i in range(1000*m):
            continue
def main():
    mx=600    # širina in višina okna
    my=400
    win=GraphWin("Moj Krog",mx,my,autoflush=False)
    p=Rectangle(Point(0,0),Point(mx,my))
    p.setFill("white")
    c=Circle(Point(mx/2,my/2),10)      #Zemlja je modri krogec
    c.setFill("blue")
    p.draw(win)
    c.draw(win)
    dt=10                  #interval med računi leg
    x=mx/3                 #začetna lega
    y=0
    vx=0                   # začetna hitrost
    vy=0.04                # to komponento malo spremeni 
    while True:
        r=sqrt(x*x+y*y)   # račun razdalje satelit-Zemlja
        ax=-x/(r*r*r)     # pospešek satelita sledi iz 
        ay=-y/(r*r*r)     # gravitacijskeg azakona
        vx=vx+ax*dt       # račun nove hitrosti
        vy=vy+ay*dt       
        x=x+vx*dt         #račun nove lege satelita 
        y=y+vy*dt
        t=Point(mx/2+x,my/2-y)     # risanje satelita
        t.setFill("red")
        t.draw(win)
        delay(100)
        #t.setFill("white")
        #t.draw(win)
        update()
    win.getMouse()
    win.close()
main()

spravimo v gibanje satelit okrog Zemlje.