Potrzebuje zrobić taki projekt losującej maszyny takiej jak np jednoreki bandyta ale z jednym kolem. Na tym kole bedzie iles tam numerow i kolo musi sie krecic minute. I teraz wchodzac na strone ruszam kolem i ono sie kreci. Kolejne osoby wchodzac na te strone powinny widziec jak kolo sie kreci w trakcie. Czyli takie losowanie na zywo jakby. Mysle sobie ze kolo musialoby zapisywac swoj stan do bazy czyli gdzie sie znajduje. A osoba laczaca sie widzi aktualnie stan tego kola. Ale czy to sie da tak szybko zapisywac do bazy aktualny stan losowania i pobierac przez uzytkownikow. Czy to zrobic w javie czy we flashu ? Da sie to jakos zrobic ?
Wystarczy, że stworzysz funkcję, która na podstawie:
- seeda generatora liczb pseudolosowych
- czasu jaki minał od rozpoczęcia losowania do wejścia użytkownika na stronę
wyznaczy pozycję koła. Wtedy zapisujesz do bazy te parametry tylko przy rozpoczęciu losowania, a pozycje koła generujesz w locie dla każdego usera, który odwiedza stronę.
Nawiasem mówiąc w aplikacjach webowych są efektywniejsze metody przechowywania globalnego stanu niż baza danych.
Alt to bym musial znac wynik losowania z gory ? a jakie to metody do przechowywania ?
Jak znasz seeda to oczywiście, że znasz wynik z góry. Komputer to przecież deterministyczna maszynka. Natomiast ze względów bezpieczeństwa seeda powinieneś ustalać w sposób mało przewidywalny, jak to robić to jest skomplikowany temat i jest masa artykułów o tym na sieci.
0x200x20 napisał(a):
Nawiasem mówiąc w aplikacjach webowych są efektywniejsze metody przechowywania globalnego stanu niż baza danych.
Na 90% po stronie serwera stoi PHP...
No dzieki wielkie wiec tak trzeba bedzie zrobic. Czyli seed czas trwania krecenia kolem, czas rozpoczecia i powinno byc ok. + Wyliczenie seeda.
By bezpiecznie wyznaczyć seeda trza by jakiegoś hardware użyć IMHO.
Demonical Monk napisał(a):
By bezpiecznie wyznaczyć seeda trza by jakiegoś hardware użyć IMHO.
Można skorzystać ze stron, które oferują (podobno dobre) losowe liczby. Znam np. taką: http://www.random.org/
Komputer to przecież deterministyczna maszynka
Jednym z wielu sposobów na pobranie niedeterministycznych danych jest podłączenie mikrofonu i zbieranie najmłodszego bitu na wejściu.
Przydałoby się, żeby mikrofon coś słyszał, np. szum wiatraczka wewnątrz obudowy.
Ruletka znaczy się? Pytanie na ile to co wskazuje koło powinno pokrywać się z rzeczywistością? Inaczej mówiąc skoro widzę, że na animacji koło zatrzymało się na 3 to czy wynik powinien być też 3 czy też może być inny?