Odpovědět Programovanie makier v LibreOffice: Funkcia Rnd (2) – vlastná tipovacia hra LOTO 31. 08. 2017, 09:10:56
Celkem zajímavý příspěvek. To je správně - příklady mají být motivační a pro kombinatoriku je hazard typickou aplikací snad už od starověku. Relativně moderní kombinatorika byla postupně definována od 16-19 století kdy dostaly například název kombinace a tím také celá disciplína.
Píšu to proto, že kombinatoriku mám už 40 let jako koníčka. nejsem doma a tak jsem si to nemohl spustit jako kód, ale komentoval bych hned několik věcných nedostatků.
- Zadávání čísel postačuje jedinou podmínkou ve Val(InputBox())
-------------------
Cyklus začátek
Endes:
IF císlo > 0 AND cislo < 50 Then
..zápis jako proměnné číslo X
Else
GoTo Endes
End If
Cyklus konec
-------------------
To znamená že v případě chyby se provede skok tak aby se volba opakovala bez inkrementace. (Může tam být dotaz zda uživatel nechce proces ukončit). Prémiové číslo může být vyhodnoceno například jako poslední 7. tipované číslo ap.
- Shodnost čísel se testuje cyklem pro dvojice (kombinace dvojic) :
-------------------
For i = 1 To 5
For j = i+1 To 6
...porovnání + případný návrat
Next j
Next i
-------------------
Protože Váš cyklus vyhodnocuje variace s opakováním tak nutně musí dojít k porovnávání stejných čísel - měla by vzniknout chyba. V případě variací s opakováním je to chyba na každém čísle.
-------------------
For i = 1 To 6
For j = 1 To 6
...porovnání
next j
Next i
-------------------
- Vyhodnocení tahu by mělo být v jiném makru nežli zadání čísel a jejich následné vyhodnocení podle tahu - je to asynchronní časová následnost.
Odpovědět Re:Programovanie makier v LibreOffice: Funkcia Rnd (2) – vlastná tipovacia hra LOTO 31. 08. 2017, 11:20:31
Áno, uznavám že algoritmus ktorým generujem náhodné čísla pre LOTO, nie je najlepší ani zďaleka. Pretože viac krát bude musieť vygenerovať čísla, aby neboli rozdielne. Našťastie, procesory sú dnes tak výkonné, že prodlevu 1-2 sekundy spracovania celého programu nie je nič tragické :) Vďaka za názor
Odpovědět Re:Re:Programovanie makier v LibreOffice: Funkcia Rnd (2) – vlastná tipovacia hra LOTO 31. 08. 2017, 11:22:14
Jaj som sa pomýlil :) edit minulého komentára: Pretože viac krát bude musieť vygenerovať čísla, aby neboli rovnaké.
neutr
Odpovědět Re:Re:Re:Programovanie makier v LibreOffice: Funkcia Rnd (2) – vlastná tipovacia hra LOTO 31. 08. 2017, 18:05:12
Už jsem doma a mohl bych to otestovat a opravit. Mám podobných věcí opravdu hodně. V celku to není špatně jen tam schází právě ošetření případů kdy vznikne nějaká chyba.
Pro běžného uživatele dodám, že generátory náhodných čísel je celá věda a dost se o tom mlčí - tedy o principu generátoru. Těch principů je více a jsou různě "dobré". Mlčí se o tom podobně jako o šifrách protože generátory náhodných nebo pseudonáhodných čísel se používají například pro číslování losů a podobně. Tedy všude kde má být zaručena náhoda. Ve skutečnosti je za vším algoritmus a jeho postup se musí tajit aby nešlo získat výhodu (například šifrovací klíč).
Ale i generátory náhodných a pseudonáhodných čísel je kombinatorika. Takže si troufám tvrdit že o těch záležitostech vím dost - více nežli běžný programátor. Eda dělá dobrou práci a i když já vidím nedostatky, tak musím ocenit celý obsah. Účelu výuky to slouží dobře i s těmi chybičkami.
Odpovědět Re:Re:Re:Re:Programovanie makier v LibreOffice: Funkcia Rnd (2) – vlastná tipovacia hra LOTO 31. 08. 2017, 23:43:10
Vďaka za podporu. Mám v pláne sa ešte k programu vrátiť, ale nie v budúcom článku ale po ňom. Chcem vysvetliť jeden triediaci algoritmus a tento príklad je skvelý, kde ho môžem demonštrovať. Program už upravím tak, aby stále negeneroval nové čísla pri chybe, ale rovno kontroloval či nie je chyba pri vytvorení náhodného čísla. Samozrejme rád prijmem rady a postrehy ako to vylepšiť ;)