Tak tak...
|
20.3.2006 11:08
Jakub Jochec
|
Jsou napr. problemy ktere se celkem bezproblemu daji resit vzorcem - vyrazem, misto casove narocneho cyklu, jiste clovek mavne rukou a rekne si boha par milisekund navic ... no jo, ale co kdyz jsou takovyhle cyklu v jednom programu tisice a ten program je navic casove kriticky, tj. ze urcite operace musi vykonat v urcitem presne danem case ... to je potom programovani ;-) |
|
|
Re: Tak tak...
|
20.3.2006 11:49
Petr Zajíc
|
Znal jsem člověka, co testoval, zda jedno z deseti čísel není nula pomocí deseti podmínek a OR. Když jsem mu vysvětlil, že to může znásobit a použít pravidlo "nula krát jakékoli číslo rovná se nula", jenom zíral ;-))) Je to extrém, ale hezky to ukazuje, že ta matika fakt k něčemu je... |
|
|
Re: Tak tak...
|
20.3.2006 11:54
MaReK Olšavský
|
To si děláš prču?? Uffff, to je palba... |
|
|
Re: Tak tak...
|
20.3.2006 12:11
Petr Zajíc
|
Ne, to je bohužel pravda ;-( |
|
|
Re: Tak tak...
|
20.3.2006 12:53
MaReK Olšavský
|
Tý vole... To se jinak komentovat nedá |
|
|
Re: Tak tak...
|
20.3.2006 14:16
Ondrej Holecek
|
Jen mala pripominka, "nula krát jakékoli číslo rovná se nula" v aritmetice modulo 2^n jaxi neplati. A btw, neni 10 nasobeni vyrazne pomalejsi nez 10 porovnani na 0? |
|
|
Re: Tak tak...
|
20.3.2006 15:57
Petr Zajíc
|
To jsem nepobral. Promiň, mám jen střední školu a v programování u mě zatím vždycky platilo, že nula krát jakékoli číslo je nula. Mluvil jsem o racionálních číslech, jejichž interpretaci zpracovávám programem. Rychlost? Nejsem odborník na instrukční sady, ale tipnu, že to násobení sežere míň cyklů procesoru. Je to ale rozhodně MNOHEM přehlednější na zápis snad ve všech programovacích jazycích, co (ne)znám. |
|
|
Re: Tak tak...
|
20.3.2006 16:28
Ondrej Holecek
|
{int i=2; while(i) i*=2;} kupodivu cyklit nebude. Takze, nasobit 10 cisel jen proto, abysme zjistili jestli jedno znich nahodou neni 0 je blbost. Tva demonstrace tvrzeni, ze "programovat bez matematiky nelze" timto selhava :-)
Ale muzu te uklidnit, tohle se na stredni skole neuci a vlastne nam to implicitne nerekli ani na univerzite :-) |
|
|
Re: Tak tak...
|
20.3.2006 17:06
Jakub Jochec
|
Panove prectete si laskave ten clanek a pokud mozno cely.
Pane Holecku jiste mate pravdu, na jakychkoliv ceskych skolach se uci prakticky vsechno mozne jen nic uzitecneho. Vyjimkou zacinaji snad byt jen nektere obory na UTB. |
|
|
Re: Tak tak...
|
20.3.2006 23:08
Ondřej Čečák
|
na jakychkoliv ceskych skolach se uci prakticky vsechno mozne jen nic uzitecneho
To zni docela silene ... doufam, ze je v tom nejaka skrita ironie ...
BTW: CEO spolecnosti Unicorn (vystudoval CVUT FJFI) pro rozhovor v Business Worldu rekl krasnou vetu: "Je pravda, ze to byla takova petileta sachova partie, ktera v zasade k nicemu neni, ale clovek to porad pouziva ..."
Takze treba tak ...
|
|
|
Re: Tak tak...
|
21.3.2006 10:02
Jakub Jochec
|
Jiste ze je v tom trocha ironie, ale bohuzel ne tolik kolik bych si sam pral... |
|
|
Re: Tak tak...
|
3.4.2006 09:52
GeBu
|
Hodně pěkně vyjádřené - člověk znalosti ze školy používá ani o tom neví. |
|
|
Re: Tak tak...
|
21.3.2006 08:21
Ondrej Holecek
|
Nereagoval sem na clanek ale na prispevek do diskuse. Clanek je tak dlouhy, ze si cas na jeho precteni vyhradim jen velmi tezko :-( "pane Holecku" mne oslovuje stevartka v autobusech studentagenci a kdyz mi tak rekne, mam chut jim probodat gumy. ;-) Myslim ze bude mnohem prijemnejsi a v koncinach i "normalnejsi" kdyz si propriste potykame. |
|
|
Re: Tak tak...
|
21.3.2006 10:40
Jakub Jochec
|
Dobra, sem zvykly vykat, ale tykani mi problemy nedela :-). Jiste sak tak sem to bral. |
|
|
Re: Tak tak...
|
20.3.2006 19:22
Jan Němec
|
Když už se tady bavíme o maličkostech, tak se připojím. Já osobně bych tam taky dal těch deset podmínek na nulu (pokud by to bylo 10 proměnných a ne např. pole, kde bych použil cyklus). Jednak kvůli té aritmetice modulo 2^n tj. např. 16 != 0 && 16 != 0, ale 16 * 16 == 256 a 256 == 0, pokud počítáme v C charech. A v reálných číslech bych zase musel řešit, jestli epsilon * epsilon, kde epsilon != 0.0, ale je velmi malé není náhodou podtečení nebo 0.0 atd. Takže v počítači součin dvou nenul je nenula jen někdy. A taky ten kód s deseti testy na nulu pochopí i blb, což může být výhoda. |
|
|
Re: Tak tak...
|
20.3.2006 19:24
Petr Skovron
|
Co se tyce porovnani rychlosti, neni nic snazsiho nez si to zkusit. Nasledujici programy 100.000.000x provedou zmineny vypocet pomoci zminenych algoritmu:
http://pikomat.mff.cuni.cz/petr/multip.c 1,44s
result = ((a*b*c*d*e*f*g*h) == 0);
http://pikomat.mff.cuni.cz/petr/or.c 0,81s
result = ((a==0) || (b==0) || (c==0) || (d==0) || (e==0) || (f==0) || (g==0) || (h==0));
A jeste jeden,
http://pikomat.mff.cuni.cz/petr/or2.c 0,66s
result = ((a|b|c|d|e|f|g|h)==0);
(Kompilovano gcc bez optimalizaci, pousteno na cca dva roky starem pocitaci.)
A jak tady uz padlo, ten multip ma navic hroznou nevyhodu, ze treba na (lehce vykonstruovane) hodnoty 32 64 64 4 2 64 8 16384 dava chybny vysledek (nulu najde). |
|
|
Re: Tak tak...
|
20.3.2006 19:32
Petr Skovron
|
[uh, ten posledni algoritmus ma taky nevyhodu, ze dava blbe vysledky :-\] |
|
|