Portál AbcLinuxu, 4. prosince 2025 02:36
Ja mam podobnej filozofickej problem s gitem, kde se k identifikaci souboru pouzivaji hashe, a muze tam dochazet ke kolizim.
Nedavno jsem delal neco podobnyho pro sestru a delal jsem to jednoduse hrubou silou:
- vygeneruju prvni cislo
- druhy cislo
- zkontroluju jestli vysledek je v nejakym rozsahu; kdyz ne tak zahodim a opakuju
Zadnyho zasekavani jsem si nevsiml. Ono i kdyz bys musel udelat treba 1000 pokusu nez se trefis, tak na dnesnich pocitacich jsou to radove mikrosekundy...
Kdyz by k tomu dochazelo tak bych tam asi dal pocitadlo a po N pokusech nahlasil chybu
Pamatuju na přednášku na UPOL od Drdy...Toto je stezi uveritelna historka, ... protoze Dr.Dla na prednasky zasadne nechodil.
Reálné výsledky na Nexus 4: během jedné milisekundy zvládne 5 cyklů nalezení jedné rovnice (obsahující 2x generování náhodného čísla, dvě matematické operace, pár porovnání a hlavně několik volání funkcí).
Parametry:
FormulaDefinition{unknowns=[RESULT], operators=[+], result=Values{minValue=null, maxValue=null, listing=[10, 11, 12]}, operandDifference=null, rightOperand=Values{minValue=3, maxValue=60, listing=null}, leftOperand=Values{minValue=0, maxValue=90, listing=null}}Moje optimalizovaná verze najde v 10 případech řešení do 3 pokusů 6x, do 5 pokusů 1x, do 9 pokusů 2x a jednou potřebovala 35 pokusů (což zabralo 7 ms). To je docela slušné 
Například u uvedeného příkladu si k náhodnému výsledku (13) náhodně vygeneruju první operand (2) a vypočtu druhý (11).Já jsem na to šel opačně, vždy jsem vygeneroval operandy, z nich jsem vypočítal výsledek. Pokud byly příklady sčítání a násobení, vypsaly se operandy, pokud byly odčítání a dělení, vypsal se výsledek a první operand, bez ohledu na to jestli je větší nebo menší. Tak jsem se vždycky vešel do zadaného limitu. Nedělaly se před třiceti lety takovéhle věci v BASICu na dvacet řádků?
Koupil bych dceři papír a tužku a místo věnování spousty času sezení u počítače nad pochybným programem využil čas k osobnímu kontaktu.
Nicméně připomínka Aleše Kapicy a JD míří k otázce, zda to děláte pro sebe nebo pro dceru.
Pokud pro dceru, opusťte tablet a matematiku se učte skutečně rovnou s ní. Mimo kontakt, který má význam pro vás oba, to může být zajímavé i pro Vás - existují třeba pozoruhodné metody jak matematiku učit pomocí hudby (je využit rytmus a opakování), kreslení (je využita geometrie a vizuální vnímání), navlékání provázků (je využita topologie), ve skupině pomocí cvičení (kombinace všeho předešlého) atd. Viz montessori, waldorfská a intuitivní pedagogika.
Dopad na člověka se pak nedá porovnat s hraním nejaké hry na tabletu, které může malé děti spíš poškodit (chápu, že tím řadu lidí zde pobouřím, ale jsem o tom přesvědčen, mimo jiné vzhledem ke své zkušenosti s lidmi s postižením). Něco jiného je učit matematiku pomocí programování lidi v pozdějším věku - gymnázium a dál., tam je člověk už plně vybaven na uvažování v abstrakcích a je to naopak to pravé. Tam už ale programuje přímo ten člověk - žák.
Omlouvám se za delší příspěvek - ale podle mě to je přímo k tématu.
I. a >= 2
II. a <= 9
III. b >= 11
IV. c >= 12 ---> a + b >= 12
V. c <= 14 ---> a + b <= 14
------------------------------------
b <= 12 V. - I.
a <= 3 V. - III.
------------------------------------
2 <= a <= 3
11 <= b <= 12
Nyni postupuji tak, ze si postupne volim promenne z intervalu a dopocitam ostatni. Pro a = 2 a dosazeni do zbytku mi zadna omezujici podminka nepribude, takze mam reseni [2; 11], [2; 12]. Pro a 3 mi pribude b <= 11 (z V.), takze tam je jedno reseni [3; 11]. Pote dopocitam c a opakuji pro c = 18.
Dalsi moznost je resit to graficky a reseni generovat nahodnym vzorkovanim pres obdelnikovou obalku vysledneho utvaru.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.