Claus Heinrich

Underholdning til nørderne – matematik & programmering

Så lige en historier på aNyhed.dk i dag omkring nogle matematiske udfordringer man kan lege med.
Project Euler er en hjemmeside hvor alle med interesse for matematisk problemløsning via algoritmer virkelig kan have det sjovt og blive udfordret. (Bemærk: jeg skrev dette var til nørderne :p )

Tit sidder man med halv trivielle opgaver indenfor dette jeg laver, så det er faktisk dejligt at finde en side fyldt med sådanne udfordringer. Jeg ved med mig selv at Euler vil suge meget af min tid fremover når jeg lige skal motionerer hovedet.

Generelt stilles der nogle matematiske spørgsmål der er så brede at man ikke lige kan sætte sig med pen og papir og løse det. Det er her computerkraften er en god ressource at trække på for at løse mere eller mindre komplekse opgaver nemt og hurtigt.
Når man har løst en opgave, åbnes der op for et forum hvor man kan snakke om den enkelte opgave og om hvordan de enkelte har båret sig an.. Det er faktisk en rigtig solid måde at optimerer sin måde at lave algoritmer.

Som eksempel kan jeg vise opgave 1 her og vise min måde at løse det på. Opgave 1 må anses som den nemmeste af de 207 opgaver siden har.
Af gammel vane benytter jeg VBScript til mine løsninger.

Opgaven (oversat):
Hvis vi lister alle heltal under 10 der går op i 3 eller 5 så får vi: 3, 5, 6, og 9. Summen af disse er 23.

Find nu summen af alle de tal under 1000 der går op i 3 eller 5.

Min metode:

<%@ LANGUAGE = “VBScript” %>
<%
dim i, summen
For i = 3 to 999 ‘løb gennem tal fra 3-999
 if i Mod 3 = 0 or i Mod 5 = 0 then ‘hvis = 0 når divideret med 3 eller 5 kan vi bruge den
   summen = summen + i
 end if
Next
response.write “Summen er: ” & summen
%>

Svaret var korrekt i første hug :p Jeg vil dog ikke afslører hvad resultatet reelt er og ødelægge andres sjov.

Jeg vil nok forsætte denne tråd når jeg kommer igennem en række flere opgaver og enten finder noget jeg ikke kan løse eller måske stolt fremvise min metode til enkelte problemstillinger.

Update:
Sidder og kigger på alle de andres løsningsforslag nu på forummet der blev låst op for denne opgave, og jeg må sige at det er ret så spændende at se hvordan folk løser sådan en opgave forskelligt og via forskellige programmeringssprog (Assembler, Haskell, Ruby, Python, Perl, C/C++ mmf.) Nogle kan løse denne opgave på een linie, mens andre bruger en A4 side af udregninger.
Hvis man har en interesse for programmering, kan dette virkelig give en god indsigt i hvordan den samme opgave bliver løst i de forskellige sprog.

3 Comments

  1. Det kan godt være det er mig der er helt galt på den men er 3 og 5 og 9 ikke ulige tal?

    Burde spørgsmålet ikke lyde: Hvilke HELTAL under 10…?

  2. Jaaaaaaaaaaaaaaaaaaaaaaa lige hvad jeg havde lyst til!!!!!

Leave a Comment