15. april 2008 - 18:59Der er
18 kommentarer og 1 løsning
Matematisk skattejagt
Hej,
Jeg er i gang med at lave en lille matematisk skattejagt. En af delen går ud på, at programmere sig frem til et (stort) tal. Jeg ville vise opgaven til jer, og hvilket resultat I får når i løser den (hvis nu jeg har lavet en fejl - det er lidt vigtigt at jeg har regnet rigtigt :) )
Anden feedback er også meget velkommen :)
----Opgaven lyder----
Vi opstiller følgende udtryk: A+B+C+D+E+F+G=res
Samtlige variabler starter på 0, men stiger herefter forskelligt. A stiger med kvadrattallene (1,4,9,16...). B stiger med 2*A+1 (1. række: B=2*1+1=3). C stiger med (a+b) mod 3 (1. række: C=(1+3) mod 3 = 1). D stiger med (sumtallet af A + sumtallet af B). Sumtallet for 14 er 5 (1+4), og sumtallet for 46 er 10. E stiger med (c mod 2)!, hvor ! er fakultet og mod er modulo. F stiger med det C'ne Fibonacci-tal (1,1,2,3,5...). Således, at hvis C=4, så er F=3. G indeholder den forrige rækkes res (bemærk, at i modsætning til alle de andre variabler, bliver res ikke akkumuleret). res er svaret for en række. Således er res=11 for række 1 og 388 for række 4 .
De første 4 rækker forløber således: 1. 1+3+1+4+1+1+0=11 2. 5+14+2+14+2+1+11=49 3. 14+43+2+26+3+1+60=149 4. 30+104+4+34+4+3+209=388
Ups. Det har I helt ret i. Nu har jeg rettet G, således at den ikke akkumuleres. Var en ændring i teksten, som jeg glemte at ændre i koden :) Modulusfejlen er fjollet i E, så vi laver den om til: E stiger med (c mod 5)!
Det skulle give dette: 1. 1+3+1+4+1+1+0=11 2. 5+14+2+14+3+1+11=50 3. 14+43+2+26+5+1+50=141 4. 30+104+4+34+29+3+141=345
F skulle nu være god nok. Den stiger med det C'ne Fibonacci-tal. Ved ikke om det er for dumt, men ville bare give den et ekstra lille twist. For de første fire rækker er c={1,2,2,4}
Denne del er især møntet på en af mine venner der nægter at lære php og sværger til matlab. Håber ikke denne kan løses (let) med matlab...
Det virker lidt fjollet, at jeg ikke selv kan se de fejl der er, men stirrer mig bare helt blindt på det. Også selvom jeg løser det manuelt :0 Så tak for hjælpen :)
Arne, jeg får et lidt andet resultat end dig - 599.812.369.296.499 - men nej, det kan stadig ikke være i 32-bit integer. Jeg kan ikke huske hvordan PHP klarer at gå over til float/double, men det burde den så kunne bruge i stedet.
Det kunne være sjovt at høre lidt om hvordan udfordringen så gik?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.