Lösa matteuppgifter med kod

Adrian, en niondeklassare som går på Kunskapsskolan i Lund satt på Läscentrum uppe på Lunds Tekniska Högskola och brottades med ett matteproblem. Med hjälp av sina programmeringskunskaper och genom att fråga en student tog han fram två intressanta lösningar. Patwic fick tag i hans labbrapport:

#                 – 
#     _         _| |_
#    |_|       |_ | _| 
#  
#    Ruta 1    Ruta 2   osv...
#

Frågan är: Hur många pinnar behövs i ruta 120?
----------------------------------------------

Med hjälp av tabell ser man snabbt att ökningen följer mönstret

        Pinnar   Ökning
________________________        
Ruta 1:    4        4
Ruta 2:   10        6
Ruta 3:   18        8
Ruta 4:   28       10

osv. Detta kan uttryckas som 2 * n + 2, där n är numret på rutan.
Pythonprogrammet nedan räknar och skriver ut antalet pinnar för varje ruta i intervallet 1 – 120.

summa = 0
max = 120
n = 1
while n <= max:
    summa += 2*n +2
    print("Fig " + str(n) + " har " + str(summa) + " pinnar.")
    n += 1

 

Frågan är då om det finns en formel som skulle kunna hjälpa oss att utföra beräkningen givet att vi känner till ökningen, utan att beräkna varje enskild ruta från 1 till 120. I boken matematisk analys i en variabel finns följande formel för summering av serier. där a = tillväxten dvs, 2 * n + 2.

Jag använde Pythontolken som miniräknare:

>>> # p = (n - m + 1) * ((a * m + a * n) / 2)
>>> n = 120
>>> # p = (120 - 1 + 1) * ((242 + 4) / 2)
>>> p = (120 - 1 + 1) * ((242 + 4) / 2)
>>> p
14760.0

Om jag istället för ruta 120 vill veta hur många pinnar det blir i ruta 5001 så ser det ut såhär:

p = (5001 - 1 + 1) * (((5001 * 2 + 2) + 4) / 2)
>>> p
25025004.0

Men det funkar lika bra med ruta 4 som jag redan har ritat på papper:

p = (4 - 1 + 1) * (((4 * 2 + 2) + 4) / 2)
>>> p
28.0

Ta daaa!

20 nya kodare

Igår var det dags för att locka nya elever till nästa kurs på Kunskapsskolan i Lund som också startar nu på en gång. Intresset var högt redan under inledande presentation och frågestund och ännu roligare blev det när vi flyttade oss till varsin dator.

Det var inte helt lätt att starta upp 20 ivriga nya kodare på en och samma gång men eleverna kämpade på och de fick hjälp av mentorer och andra elever som varit med sedan i våras. Det kommer att vara fullt hus  under hösten och det är så det ska vara.

Tack till Sebastian, Emelie, Niklas och Alexander som alla jobbade häcken av sig för att backa upp nästa generation av Patwic kodare.

…och om man lämnar sin dator i TRE minuter. Tack Åskbollen.client_—_Python_—_59×24_och_client_py_—_fredrick