Liczby losowe w JavaScript
Liczby losowe mają wiele zastosowań, od zabawy po praktyczne. Większość gier wiąże się z pewną przypadkowością w postaci kości lub potasowanych kart. Jeśli chcesz wyświetlać losowy cytat, gdy ktoś odwiedza twoją stronę, potrzebujesz źródła losowości. Liczby losowe to nie tylko zabawa i gry, liczby losowe są używane w kryptografii, do losowego próbkowania, do modelowania i do układania rzeczy w losowej kolejności (np. Kandydaci na kartach do głosowania). Niektóre z tych zastosowań nie używają liczb bezpośrednio , ale możesz konwertować liczby losowe na losowe, umieszczając rzeczy, które chcesz wybrać, w wierszach i losowo wybierając wiersz. W programowaniu tablice działają do tego dobrze. Liczby losowe nie zawsze są naprawdę losowe. Jeśli rzucisz zestawem uczciwych kości, otrzymasz losowe liczby, jednak metody stosowane przez komputery do wybierania liczb losowych są często liczbami pseudolosowymi, co oznacza, że ​​wydają się losowe na powierzchni, ale w rzeczywistości są albo przewidywalne, albo powtarzające się serie. W przypadku niektórych rzeczy nie jest to ważna różnica. Jeśli wyświetlasz losowy cytat lub żart za każdym razem, gdy ktoś ładuje twoją stronę, prawdopodobnie nie ma znaczenia, kto może przewidzieć, kiedy pojawi się konkretny cytat, i możesz bezpiecznie używać liczb pseudolosowych (w tym przypadku prawdopodobnie po prostu pokaż swoje cytaty w kolejności, w jakiej je zapisałeś.) Jeśli próbujesz wykonać losowe testy narkotykowe sportowców z Tour de France, ważne jest, aby sportowcy nie byli w stanie przewidzieć, kiedy i czy będą testowane.

Obiekt JavaScript Math zawiera metodę, która zapewnia liczby pseudolosowe. W przeciwieństwie do wielu innych języków programowania, JavaScript nie pozwala na zaszczepienie generatora liczb własnym źródłem losowości. Różne implementacje różnią się tym, jak bliskie są naprawdę losowe podane liczby, ale ogólnie powinny one być wystarczająco dobre, aby używać ich do celów rozrywkowych lub artystycznych, ale jeśli potrzebujesz losowych liczb do celów prawnych lub bezpieczeństwa, powinieneś znaleźć lepsze źródło losowość. The math.random () Metoda zwraca liczbę losową, która jest albo 0 albo między 0 a 1. Niektóre wersje przeglądarki Opera są niezgodne ze standardami math.random () metoda, która bardzo rzadko zwraca 1. Musisz jakoś poradzić sobie z tym nieoczekiwanym rezultatem - najłatwiejszą propozycją, jaką widziałem, jest użycie operatora modulo z jednym względem wartości zwracanej przez math.random (), to zwróci oryginalną wartość, jeśli liczba losowa jest w zdefiniowanym zakresie, a 0, jeśli masz 1. Ponadto, okazuje się, że nie potrzebuję losowej liczby dziesiętnej mniejszej niż jeden, ale raczej losową liczbę całkowitą. Aby uzyskać losową liczbę całkowitą, należy pomnożyć wartość z math.random () przez liczbę potencjalnych liczb losowych, jakie chcesz (X) i znalezienie poprzedniej lub następnej liczby całkowitej. Obiekt matematyczny zapewnia metody podłogowe i sufitowe, których można użyć do tego celu. Jeśli korzystasz z math.floor () otrzymasz numer od 0 do (X-1). Jeśli korzystasz z math.ceiling () metoda otrzymasz liczbę całkowitą od 1 do X.

Aby znaleźć losową liczbę od 0 do (X-1), użyj:

Math.floor ((Math.random ()% 1) * X)

Są one szczególnie przydatne do znajdowania losowego elementu tablicy.

Aby znaleźć losową liczbę od 1 do X, użyj:

Math.ceiling ((Math.random ()% 1) * X)

Takie zadania, które są dość powszechne, ale wymagają sporo pisania, są dobrymi kandydatami do przekształcenia się w funkcję.

W celu omówienia różnicy między liczbami prawdziwie losowymi a liczbami pseudolosowymi, których tu używamy, źródłem liczb naprawdę losowych oraz kilkoma przykładami zabawnych rzeczy, które możesz zrobić z liczbami losowymi lub pseudolosowymi, odwiedź www.random. org

Instrukcje Wideo: Losowanie liczb - program loteria w JavaScript (Może 2024).