|
| | |
| | |
| | |
MaJJ
Uživatel
Založen: 12.09.2008 |
Příspěvky: 71 |
Bydliště: Jablunkov |
|
Zaslal: pá, 7.listopad 2008, 18:46 |
|
|
|
ten time limit bych z 30 zvýšil jen na 60 ... to je totiž podmínka (ikdyž nikdo tě nezastaví, pokud tam dáš řešení, co ti běželo celou noc ) těch programů, co tam máš dělat... alokaci paměti bych samozřejmě zvýšil, o tom žádná
http://dl.getdropbox.com/u/146899/level1.PNG
konečně!
chvíli jsem dělal programy v céčku, ale jelikož se ho teprve učíme ve škole a na project euler jsou "příklady" takové, jaké jsou, často mi ty programy padaly kvůli buffer overflow (jinak si to nedokážu vysvětlit)... takže php, které už umím déle, bylo pro mě jasná volba
kdybyste někdo měli zájem se podívat na moje zdrojáky (a kdyžtak poradit ) tak se podívejte na http://project-euler.howto.cz/ ...
btw jinak mě docela dostávají ty řešení lidí, co dělají v J takové jednořádkové řešení, naprosto nečitelné, ale fakt fungují
a jinak pro trina mám jen jedno slovo RESPEKT
|
|
^RimmeR^
Bot fora
|
|
|
MaJJ
Uživatel
Založen: 12.09.2008 |
Příspěvky: 71 |
Bydliště: Jablunkov |
|
Zaslal: st, 12.listopad 2008, 20:43 |
|
|
|
mám takový pocit, že si přečtu The Art Of Computer Programming...
protože když ten program nějak zbastlím, většinou ten problém chroupe tak pět vteřin, a pak když se dívám na ty příspěvky, kde lidi hážou jejich řešení za 0.1s - v podstatě můj algoritmus, jen vylepšený o nějakou prkotinu, která to 50x urychlí , tak mě chytá závist
sice je fakt, že to dělám v PHPčku, které se nekompiluje (a tak je nejspíš trochu pomalejší), ale asi to je chabá výmluva ti borci na PE.net by to určitě dokázali i v PHP napsat skvěle
|
|
Trin
Pad builder
Založen: 12.03.2005 |
Příspěvky: 643 |
Bydliště: Praha - Stodulky |
|
Zaslal: st, 12.listopad 2008, 21:07 |
|
|
|
MaJJ napsal: | mám takový pocit, že si přečtu The Art Of Computer Programming... |
doporucuji http://book.realworldhaskell.org/read/
nejsou potreba zadne zaklady, jede se hezky od nuly
|
|
MaJJ
Uživatel
Založen: 12.09.2008 |
Příspěvky: 71 |
Bydliště: Jablunkov |
|
Zaslal: pá, 14.listopad 2008, 0:52 |
|
|
|
takže haskell hmm, proč ne ... můžu zkusit něco nového
dík za odkaz...
mimochodem, urychluje to zkrácené vyhodnocování (to je specialita haskellu, ne?) hodně rekurzi? jako jestli ji má smysl používat místo iterace ...
např. je generování fibonacciho čísel pomocí rekurze v haskellu rychlejší než pomocí iterace třeba v C++ nebo PHP?
|
|
| | |
| | |
Trin
Pad builder
Založen: 12.03.2005 |
Příspěvky: 643 |
Bydliště: Praha - Stodulky |
|
Zaslal: pá, 14.listopad 2008, 23:27 |
|
|
|
MaJJ napsal: | takže haskell hmm, proč ne ... můžu zkusit něco nového
dík za odkaz...
mimochodem, urychluje to zkrácené vyhodnocování (to je specialita haskellu, ne?) hodně rekurzi? jako jestli ji má smysl používat místo iterace ...
např. je generování fibonacciho čísel pomocí rekurze v haskellu rychlejší než pomocí iterace třeba v C++ nebo PHP? |
I v haskellu je rozdil mezi rekurzi a iteraci ...
Zatimco rekurzivni reseni:
fib1 0 = 0
fib1 1 = 1
fib1 n = fib1 (n-1) + fib1 (n-2)
ma exponencialni slozitost O(exp(n)), "iterativni" reseni:
fib2 = 0 : 1 : ( zipWith (+) fib2 (tail fib2))
ma linearni slozitost O(n) (a bude velmi podobne rychle jako cecko).
Zatimco fib1 je funkce, fib2 je nekonecny seznam fibonacciho cisel.
Vysvetlivky:
tail - jako parametr bere seznam, vraci seznam bez prvniho prvku
zipWith - jako parametr bere funkci dvou promennych a 2 seznamy. Bere vzdy po jednom z obou seznamu, aplikuje funkci a vytvari novy seznam.
fib2 !! n - vypsani n-teho prvku v seznamu fib2
fib2 = 0 : 1 : 1 : 2 : 3 : 5 : ...
+ + + + + +
tail fib2 = 1 : 1 : 2 : 3 : 5 : ...
= = = = = =
zipWith ... = 1 : 2 : 3 : 5 : 8 : ...
fib2 = 0 : 1 : 1 : 2 : 3 : 5 : 8 : ... |
|
|
| | |
MaJJ
Uživatel
Založen: 12.09.2008 |
Příspěvky: 71 |
Bydliště: Jablunkov |
|
Zaslal: so, 15.listopad 2008, 15:08 |
|
|
|
Takže ... výhoda Haskellu je to funkcionální programování - intuitivní zápis? Jakože tak, jak to myslíš, to i zapíšeš?
No, ... čtu ten Real World Haskell, třeba se na to dám (nejspíš určitě)
edit: tak už ty výhody chápu
v tom RWH jsem někde u 3. kapitoly, vypadá to super
|
|
| | |
MaJJ
Uživatel
Založen: 12.09.2008 |
Příspěvky: 71 |
Bydliště: Jablunkov |
|
Zaslal: so, 10.leden 2009, 4:29 |
|
|
|
@trin: Heh, tak byl jsem zvědavý na ten tvůj #110 - nejdřív jsem zkusil #108 (vyluštilo mi ho to do 2 sekund - abych neprozradil ostatním moc, používal jsem tam počet dělitelů (tau funkci)), a teďka zkouším stejným způsobem tu #110. Akorát je trochu masakr, že nejdřív po mně chtěli číslo, které má nad 1000 řešení, a teď chcou nad 4 000 000 řešení Docela rozdíl (v časové náročnosti), ikdyž hodím do iterace toho hádaného čísla místo 10 třeba 10**7.
Edit: další googlování vyhodilo další algoritmus
http://tr.im/3pxa
Nejspíš to bude více efektivní. Zítra to zkusím
Edit 2: Yay! Level 2!
Zajímavé, že co jsem začal používat Python a Google, naráz se mi u hodně úloh zdá, že jsou moc snadné Ten Python je fakt perfektní jak na učení se programování, tak (IMHO) na reálné použití
|
|
Nemůžete odesílat nové téma do tohoto fóra. Nemůžete odpovídat na témata v tomto fóru. Nemůžete upravovat své příspěvky v tomto fóru. Nemůžete mazat své příspěvky v tomto fóru. Nemůžete hlasovat v tomto fóru.
|
Časy uváděny v GMT + 2 hodiny
Strana 2 z 3
|
|
|
| |