Rabbid Skrevet 3. mars 2008 Del Skrevet 3. mars 2008 (endret) Uff, å se på sin egen kode er frustrende til tider, hvertfall hvis den er blitt noen måneder eller år Ting som en gang var vakkert har ofte forfalt!Hehe, tør knapt dra frem de gamle HTML og Visual Basic-kodene (blærgh) mine Endret 3. mars 2008 av Rabbid Lenke til kommentar
Manfred Skrevet 3. mars 2008 Del Skrevet 3. mars 2008 Måtte rette litt på et tidligere prosjekt i dag. Det var et mareritt og tok lang tid Lenke til kommentar
Zethyr Skrevet 3. mars 2008 Del Skrevet 3. mars 2008 Cormen brukes ved NTNU Cormen boken er en smule heavy og bruker mye av innholdet sitt til å gjøre kjøretidsanalyser for algoritmene som blir gjennomgått. Jeg synes cormen var ganske bra.. Du kan jo bare hoppe over kjøretids-analysene hvis du ikke er interessert i dem. Dessuten har han jo lagt opp til at enkelt kapitler kan leses uavhengig av andre, ganske kjekt spør du meg. Lenke til kommentar
DeadManWalking Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 Her er hele oppgaven: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of all the even-valued terms in the sequence which do not exceed four million. Note: This problem has been changed recently, please check that you are using the right parameters. Hvordan i svarte jobber jeg med så store tall? Lenke til kommentar
Ueland Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 Hva mener du med det? hva er problemet med "store tall", noe det ikke er Er en ganske standard oppgave innenfor rekursjonsøving så bør være ganske grei. Lenke til kommentar
DeadManWalking Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 (endret) Jeg fikk det til! Oppgaven: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be: 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... Find the sum of all the even-valued terms in the sequence which do not exceed four million. Note: This problem has been changed recently, please check that you are using the right parameters. Svar: #include <iostream> #include <unistd.h> using std::cout; #define max 4000000 int main() { int i = 0; int buff1 = 0; int buff2 = 1; int main = 1; int svar = 0; while(1) { i++; main = buff1 + buff2; if (main > max) { break; } //cout << main << "\n"; buff2 = buff1; buff1 = main; if ((main & 1) == 0) { svar = svar + main; } } cout << svar << "\n"; } Endret 4. mars 2008 av data_jepp Lenke til kommentar
Manfred Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 (endret) ...og så prøver du å løse det vha rekursjon! Endret 4. mars 2008 av Manfred Lenke til kommentar
GeirGrusom Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 Litt mye kode du har der #include <iostream> using namespace std; #define max (unsigned long long)((unsigned int)-1) int main() { unsigned int buffer = 0; unsigned accum = 1; do { accum += buffer; buffer = accum - buffer; cout << accum << endl; } while(((unsigned long long)accum) + ((unsigned long long)buffer) < max)); cin.get(); return 0; } Lenke til kommentar
DeadManWalking Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 (endret) Slemme mannen!!!! Away with you! Kommer her med din fancy pansy kode. Neida, jeg vet koden ikke er hardcorenoobinghaxxor opplegg. Men så skal det sies at jeg er på oppgave 2/183 for å nemlig å lære. Så slutt å brief og gi meg ros i stedet Neste oppgaven da: The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? Jeg finner ingen datatype som er stor nok for det tallet, hvordan kan jeg gå fram da? Endret 4. mars 2008 av data_jepp Lenke til kommentar
steingrim Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 (endret) Jeg finner ingen datatype som er stor nok for det tallet, hvordan kan jeg gå fram da? Dette er jo et puslete tall. En 64-bits integer klarer fint å holde på denne. Eller du kan bruke et språk som ikke bryr seg om slik kjedelige detaljer som bredden på tallet ditt og som heller bytter til riktige datatyper etterhvert som tallet ditt vokser (gjerne forbi 64 bit også). Endret 4. mars 2008 av steingrim Lenke til kommentar
Manfred Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 ellers vil vel en gjennomsnittlig long helt fint holde på denne? Lenke til kommentar
DeadManWalking Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 Hvorfor får jeg compilerfeil ved bruk av long da? Lenke til kommentar
steingrim Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 429496729 (som max-verdi for en unsigned long) er nok litt mindre enn 600851475143 derfor må du over til en long long som ofte er 64 bit. Husk å putte på riktig suffix slik at konstanten din ikke blir en long, men en long long, altså 600851475143LL. Lenke til kommentar
DeadManWalking Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 Haha, det funket *Jobbe-videre-med-løsning* Lenke til kommentar
teflonpanne Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 (endret) Litt mye kode du har der inv_biggrin.gif #include <iostream> using namespace std; #define max (unsigned long long)((unsigned int)-1) int main() { unsigned int buffer = 0; unsigned accum = 1; do { accum += buffer; buffer = accum - buffer; cout << accum << endl; } while(((unsigned long long)accum) + ((unsigned long long)buffer) < max)); cin.get(); return 0; } Litt mye kode der hehe neida, men oppgaven var ikke å finne alle fibonaccitallene under 4 mill altså, eller prøvde du ikke å løse oppgaven? Prelude> let fibs = 1:1:zipWith (+) fibs (tail fibs) Prelude> sum $ filter even $ takeWhile (< 4000000) fibs 4613732 Endret 4. mars 2008 av teflonpanne Lenke til kommentar
hishadow Skrevet 4. mars 2008 Del Skrevet 4. mars 2008 Den lengste versjonen <html><head></head> <body id="body"> <h1>fibonacci test:</h1> <script type="application/javascript;version=1.7"> var output = document.getElementById("body"); var fibGen = function() { var n1 = 0, n2 = 1; while(true) { if((n2 % 2) == 0) { output.appendChild(document.createTextNode(" " + n2)); yield n1; } n2 += n1; n1 = n2 - n1; } }(); while(fibGen.next() < 1e300) { } </script></body></html> Angående javascript/web... kan noen forklare meg logikken i at en kan åpne fildialoger og sende filer til server, men at disse ikke kan behandles direkte i browseren? Utrolig kjipt å måtte "sprette" filer mellom klienten og serveren. Lenke til kommentar
GeirGrusom Skrevet 5. mars 2008 Del Skrevet 5. mars 2008 Litt mye kode der hehe neida, men oppgaven var ikke å finne alle fibonaccitallene under 4 mill altså, eller prøvde du ikke å løse oppgaven? Prelude> let fibs = 1:1:zipWith (+) fibs (tail fibs) Prelude> sum $ filter even $ takeWhile (< 4000000) fibs 4613732 Skrev bare en kortere fib funksjon og gjøre den litt vanskeligere å lese så jeg så litt flinkere ut en jeg er Lenke til kommentar
DeadManWalking Skrevet 7. mars 2008 Del Skrevet 7. mars 2008 (endret) Er ferdig med enda en oppgave: The prime factors of 13195 are 5, 7, 13 and 29. What is the largest prime factor of the number 600851475143 ? Hvordan ville dere løst denne? Poster min kode, er åpen for hvordan den kan optimeres mer: Klikk for å se/fjerne innholdet nedenfor #include <iostream> #include <math.h> using std::cout; bool IsPrime(int); int main() { long long real = 600851475143LL; for (long long i=2LL; real > 1; i++) { if ((IsPrime(i)==1) && (real % i == 0)) { cout << i << "\n"; real = real / i; } } return 0; } bool IsPrime (int num) { if (num == 2) return true; else if (num % 2 == 0) return false; else { bool prime = true; int divisor = 3; int upperLimit = static_cast<int>(sqrt(num) + 1); while (divisor <= upperLimit) { if (num % divisor == 0) prime = false; divisor +=2; } return prime; } } Endret 7. mars 2008 av data_jepp Lenke til kommentar
DeadManWalking Skrevet 9. mars 2008 Del Skrevet 9. mars 2008 teflonpanne: Igjen, tusen takk for linken til ProjectEuler! Ikke bare lærer jeg litt mer matte, men programmering også <3 Har brent unna noen oppgaver ikveld, er ferdig til og med 7. Ganske gøy. Nei, nå er natta. =) Lenke til kommentar
Vipera Skrevet 9. mars 2008 Del Skrevet 9. mars 2008 Gled deg til du nermer deg 20, da begynner det å bli små komplisert Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå