Forum Gry Hobby Sprzęt Rozmawiamy Archiwum Regulamin

Forum: Jak działa generator liczb losowych?

13.08.2021 08:08
1
VanSol
23
Konsul

Jak działa generator liczb losowych?

Czytam ten artykuł i nie mogę zrozumieć. Komputer działa na zasadzie poleceń, czyli wykonuje określone zadania. Taki generator liczb losowych każe mu wybrać dowolną liczbę z jakiegoś zestawu. Czyli wychodzi na to, że komputer musi sam podjąć decyzję. No i tego właśnie nie rozumiem. Jak to jest możliwe? W jaki sposób on to robi? Przecież komputer nie podejmuje decyzji. Czy mógłby mi ktoś to wytłumaczyć tak na chłopski rozum, bardzo prostymi słowami, można by rzec jak dziecku? :)

https://pl.wikipedia.org/wiki/Generator_liczb_losowych

13.08.2021 08:29
elathir
2
4
odpowiedz
7 odpowiedzi
elathir
97
Czymże jest nuda?

To proste.

Określasz zestaw parametrów, względnie nieprzewidywalnych z których stosując określony algorytm komputer ma wyliczyć pseudolosową liczbę.

Najczęścieś stosuje się:
- zmienne czasu
- input z jakiś akcji użytkownika, najczęściej ruchu myszy ale nie tylko
- w grach, głównie turowych, często za źródlo robi historia naszych akcji np. historia ruchu naszych postaci po planszy
- inne inputy sprzętowe, jak np. zestawienie obecnego taktowania procesora, zużycia RAM, temperatur i kilku innych czynników
- oraz mieszaninę różnych, sam czas jest slabym ziarnem, ale zestawienie czasu z zużyciem pamięci aktualnym w bajtach już całkiem niezłym

Parametry wejściowe wpływające na wynik nazywamy ziarnem, w wypadku prosty algorytmów jest to pojedyncza wartość, w wypadku tych bardziej złożonych ich zestaw.
Drugim parametrem wejścioym w większosci algorytmów może być zakres jaki nas interesuje (są algorytmy sztywne jak i takie, którym możemy podać czy interesuje nas wynik 0-10 czy 0-10000)
Na tym ziarnie wykonuje się algorytm, który wylicza nam naszą pseudolosową wartość (jest to z reguly liczba z dużego zakresu, lub ciąg liczb) a potem operacją modulo (ale są też bardziej wyrafinowane w tym takie operujące na ciągach wartości) dostosowuje do wymaganego zakresu.

W rezultacie przy tym samym ziarnie dla tego zamego zakresu ten sam algorytm da zawsze ten sam wynik. Z tego powodu kluczem tutaj jest dobranie zmieniającego się ziarna (stąd czas lub zewnętrzny input).

Czy to oznacza, że znając kilka wyników łatwo jest przewidzieć następny rezultat? Nie. Zwłaszcza jeżeli zakres jest niski (jak np. wyniki w loteriach). Algorytmy losowe wykorzystywane tam gdzie nie chcemy by ktoś je rozgryzł mają z reguły wysoki poziom złożoności (np. są problemem NP-trudnym) przez co potrzeba naprawdę wiele wyników by móc przeprowadzić inżynierię wsteczną a i tak jeżeli ziarno jest bardziej złożone niż np. zmienna czasu to rozgryzienie go jest bardzo trudne. Metody softwarowe nie dają rady dopiero w wypadku zaawansowanej kryptografii gdzie ktoś może poświęcić olbrzymie zasoby na łmanie algorytmu oraz gdy korzystamy z niego bardzo często generując olbrzymią liczbę próbki do wstecznej inżynierii.

PRzyklad masz w niektorych grach turowych (Ciwilizacja chyba od cześci czwartej czy X-kom) gdzie w ustawieniach mozesz określić czy ziarno ma byc wybrane z góry na rozgrywkę, czy za każdym razem po wczytaniu gry. Jak będzie z góry to powtarzanie tej samej akcji zaraz po wczytaniu gry da za każdym razem ten sam efekt, jak zmienne to efekty będą różne. W pierwszym wypadku by zmienic efekt, trzeba najpierw wykonać inne akcje, które w jakiś sposób zmienią inne parametry wejściowe algorytmu (np. odległość od celu wpływająca na interpretację wyniku losowania, wynik losowania będzie ten sam ale zostanie inaczej zinterpretowany).

post wyedytowany przez elathir 2021-08-13 08:37:48
13.08.2021 09:16
2.1
zanonimizowany1198751
52
Generał

Najlepiej można to sprawdzić właśnie w nowych X-COMach. Wczytywanie gry nic nie daje, bo ziarno opierane jest właśnie na wcześniejszych ruchach gracza. Wczytywanie gry i wykonanie tych samych akcji da zawsze da ten sam wynik, np. pudło.

post wyedytowany przez zanonimizowany1198751 2021-08-13 09:17:37
13.08.2021 10:17
Fett
2.2
Fett
233
Avatar

Czyli liczba losowa tak naprawde nie jest losowa? Czy w taki sposób można np. organizować loterie gier losowych bez zezwolenia lub koncesji na gry losowe i hazardowe?

post wyedytowany przez Fett 2021-08-13 10:23:24
13.08.2021 10:41
2.3
1
krykry
42
Generał

Fett
Dopóki istnieją prawa fizyki to nic nie jest losowe, bo jest ciąg przyczynowo-skutkowy.
Inną sprawą jest generowanie losowych liczb. Tutaj już zależy od tego jak skomplikowany jest algorytm.

Przykładem takiego algorytmu byłby taki który bierze czas w danym dniu, liczony w milisekundach (86 400 000 milisekund) i mnożenie obecnego czasu x-nej milisekundy w danym dniu, razy dzień miesiąca, razy miesiąc w roku.

W ten sposób masz liczbę która "losuje się" co milisekundę (jedną tysięczną sekundy). Czy jest to w losowe? Nie, bo można przewidzieć że w xnej sekundzie x dnia x miesiąca wyjdzie taka a nie inna liczba. Choć w praktyce tylko inny algorytm mógłby to wykorzystać. I to tylko jeden przykład budowy generatora liczb losowych. Developerzy biorą różne czynniki, nie tylko czas, ale też pozycje, koordynaty, stany maszyn, procesorów, grafik, pozycje myszki i tak dalej. Im więcej źródeł zmienności tym trudniejszy do przewidzenia wyniik.

post wyedytowany przez krykry 2021-08-13 10:42:56
13.08.2021 15:23
Fett
😃
2.4
Fett
233
Avatar

krykry - cieakwe jak to rzeczywiście prawnie wygląda. Czy dąłoby się legalnie uzasadnić aplikację konkursową, która ma mechanizm losujący, ale przecież nie losuje liczb losowych? :D

13.08.2021 15:39
madmec
😃
2.5
madmec
88
Generał

krykry

Tylko czy fizycy kwantowi zgodzą się z twoim pierwszym zdaniem o braku losowości. Raczej nie.

13.08.2021 17:39
2.6
krykry
42
Generał

Fett
Jeśli mówisz o lotto i innych tego typu kulkowych zabawach, to sprawa jest prosta.

Nigdy nic nie jest dokładnie takie same. Warunki się zmieniają, struktura mechanizmu się zmienia, materiał się męczy, kształt elementów się zmienia od uderzeń. Różne temperatury, różne oddziaływanie grawitacji, siła z jaką elementy wypadają... najmniejsze czynniki sprawiają że pojawia się losowość. Gdybyś zrobił symulację lotto na komputerze, tylko wtedy dostał byś za każdym razem taki sam wynik.

post wyedytowany przez krykry 2021-08-13 17:40:15
13.08.2021 17:52
maciell
2.7
maciell
115
Senator

elathir
No i dla tekich postow jeszcze tu wchodze. Nie mialem pojecia, ze Civka i X-com maja ustawienia ziarna.

13.08.2021 08:51
3
odpowiedz
VanSol
23
Konsul

elathir

Dziękuję Ci serdecznie. Co prawda nie jest to dla mnie zbyt prosty język ale jakąś tam część zrozumiałem i to w sumie mi wystarczy. Najlepszy ten przykład z ruchami myszki. To do mnie najbardziej przemówiło, nie wpadłbym na coś takiego. Ale to też pokazuje jak ludzie różnią się inteligencją i zdolnościami umysłowymi. Jeśli sam napisałeś ten tekst w odpowiedzi do mnie to naprawdę ogromny szacunek. Twoje IQ w porównaniu z moim jest ogromne. Podziwiam takich ludzi.

post wyedytowany przez VanSol 2021-08-13 08:52:25
13.08.2021 11:44
suicidal
4
odpowiedz
1 odpowiedź
suicidal
17
Baldurs Gate III

Tylko pamiętajcie, że problem generacji prawdziwych liczb losowych pozostaje nierozwiązaną zagadką w informatyce do dziś.

13.08.2021 13:56
elathir
4.1
elathir
97
Czymże jest nuda?

Ależ jest rozwiązany, starczy niedeterministyczne wejście możliwie jak tylko się da. A że masę zawartości internetu generują ludzie, którzy nie są w pełni przewidywalni to można wykorzystać nas input jako źródło.
I tak, wiem że użytkownikami się w pewien sposób kieruje (choćby materiał w TvGry o sterowaniu graczem) ale odchyły są na tyle duże, że jest to wystarczające.
Inną ciekawostką jaką widziałem była obserwacja stanów kwantowych w odniesieniu do elektronów, które według naszej obecnej wiedzy są niedeterministyczne (chodzi o to, że jest to w zasadzie chmura prawdopodobieństwa w nie konkretny stan do momentu obserwacji).

Tylko fakt, mamy tutaj masło maślane, bo wykorzystujemy input losowych liczb do wygenerowania losowej liczby ;P

post wyedytowany przez elathir 2021-08-13 13:57:12
13.08.2021 15:29
5
odpowiedz
Blugkolf
122
Pretorianin

https://pl.wikipedia.org/wiki/Chaos_(matematyka)

Polecam też bloga prof Kierula:

https://kierul.wordpress.com/2016/06/18/robert-m-may-mitchell-feigenbaum-i-poczatki-teorii-chaosu-1975-1978/

Odwzorowaniem logistycznym można pobawić się nawet w arkuszu kalulacyjnym, używając różnych seedów r, zgodnie z opisem z powyższego artykułu w celu uzyskania liczb pseudolosowych. Tu masz linka, co prawda bez publicznych uprawnień, ale można sobie ten wzór przepisać do innego arkusza i pociągnąć formułę w dół kolumny

https://docs.google.com/spreadsheets/d/1dfOI3erbJr11sp1BeVPFQCe_4noxNJNJ52ZdTpXP4Ko/edit#gid=176796708

post wyedytowany przez Blugkolf 2021-08-13 15:43:51
09.09.2021 15:24
6
odpowiedz
6 odpowiedzi
VanSol
23
Konsul

elathir

Mam jeszcze prośbę do Ciebie. Wytłumacz mi jak działa Lotto. Jest sobie ta maszyna i przed losowaniem te kule są w jakiś sposób ułożone. Maszyna kręci ileś sekund tym bębnem i masz wynik. Czyli teoretycznie wszystko według praw fizyki, powtarzalnie, przewidywalnie. Gdzie jest losowość w takiej sytuacji? Na czym to bazuje?

09.09.2021 15:59
elathir
6.1
elathir
97
Czymże jest nuda?

Nie wiem jak teraz, bo nie śledzę, ale kiedyś działało to na zasadzie wpuszczenie sprężonego powietrza o zmiennym natężeniu, może tez i kierunku (tego nie jestem pewien) w bęben i zasysania podciśnieniem.

Jest to proces jak najbardziej deterministyczny, nie jest to prawdziwa losowość, jednak o tak skrajnie złożonej strukturze, że nie jesteśmy w stanie przewidzieć wyników w żaden sposób. Teoretycznie można by zasymulować taki proces, jednak trzeba by znać wszystkie parametry wejściowe, od siły dmuchającego powietrza, czas, pozostałe drobne siły oddziaływujące na układ, temperaturę powietrza, ciśnienie atmosferyczne, naprężenia na kulach w momencie zwolnienia blokady (mogą się różnić zależnie od przechylenia), czas itd.

A i tak pewnie byłaby to robota dla superkomputera na tygodnie.

post wyedytowany przez elathir 2021-09-10 08:40:20
09.09.2021 16:09
Persecutor
6.2
Persecutor
43
Tosho Daimosu

Laik widzi to co napisałeś, niestety na wynik wpływa jeszcze sporo zmiennych. Weź pod uwagę temperaturę powietrza, ciśnienie atmosferyczne, ciśnienie i wydajność dmuchawy wprawiającej kule w ruch, wagę kul, różnice tychże kul, bo identyczne co do atomu nie będą, powierzchnia kul ma znaczenie, jak tarcie wpływa na odbijanie się kul itd. Można wymieniać jeszcze bardzo długo, tak więc zakładając że kule są naprawdę bardzo mocno zbliżone do siebie wagą można spokojnie mówić o pełnej losowości.
Tak to jest jak się pisze post 20 minut :) ktoś cie wyprzedzi :)

post wyedytowany przez Persecutor 2021-09-09 16:11:33
10.09.2021 06:38
6.3
zanonimizowany1341139
10
Generał
Wideo

A czy na pewno te wszystkie lotto nie są ustawione? Pewnie jakieś sposoby mają, żeby wylosować te kuleczk, nawet w kolejności.
https://www.youtube.com/watch?v=PAi_35BFbn0

Albo losowania w Bułgarii - 6 i 10 września 2009 wylosowano tam takie same liczby ;)

post wyedytowany przez zanonimizowany1341139 2021-09-10 06:46:48
10.09.2021 06:53
6.4
zanonimizowany1341139
10
Generał
10.09.2021 08:44
elathir
6.5
elathir
97
Czymże jest nuda?

Ależ oczywiście, że można to oszukać, starczy wpakować w te kule które chcemy wylosować kawałki metalu i zamiast podciśnieniem wyciągać kule elektromagnesem.
Można też, ale to dużo trudniejsze, zamiast zasysać kule ciągle lub losowo robić to w momencie gdy pożądana kula jest w zasięgu.

Jednak mówimy tutaj o jawnych oszustwach, zmieniających układ a nie o przewidywaniu wyników w uczciwym układzie.

post wyedytowany przez elathir 2021-09-10 08:46:05
10.09.2021 08:46
Persecutor
6.6
Persecutor
43
Tosho Daimosu

Przecież tu mowa o uczciwych maszynach, jeśli są ustawiane w jakikolwiek sposób, to już nie jest losowe :P Sporo jest sposobów na ustawianie takich losowań :)

post wyedytowany przez Persecutor 2021-09-10 08:48:10
09.09.2021 16:23
7
odpowiedz
1 odpowiedź
VanSol
23
Konsul

Panowie dzięki za odpowiedzi. Teraz już rozumiem. A to sprężone powietrze które jest wpuszczane o zmiennym natężeniu, rozumiem że o tym jaka to będzie wartość decyduje jakiś program komputerowy, który działa mniej więcej tak jak opisałeś w poście nr. 2?

10.09.2021 09:04
Persecutor
7.1
Persecutor
43
Tosho Daimosu

OMFG Budowa takiej maszyny jest prosta, to co opisujesz to jakiś koszmar :P Masz pojemnik w który wtłacza się powietrze, pewnie za pomocą dmuchawy, powietrze tworzy wiry powietrza w których latają kule. Pojemnik jest tak zaprojektowany że przy włączonej dmuchawie panuje tam nadciśnienie i w momencie otwarcia "kanału losowania" nadciśnienie to wypycha kule najbliższą wylotowi. Taką maszynę można ustawić, a chyba najprościej za pomocą zjawiska elektromagnetyzmu odpowiednia konstrukcja kul + kanał wychwytujący, pewnie da się w 100% ustawić wynik, a czy to robią ciężko stwierdzić.

post wyedytowany przez Persecutor 2021-09-10 09:10:59
10.09.2021 08:14
8
odpowiedz
VanSol
23
Konsul

pieprz99

Raczej nie może być ustawione bo jest jakaś komisja która to nadzoruje. Ale w tym kraju to nie wiadomo :)

17.05.2022 10:43
9
odpowiedz
VanSol
23
Konsul

elathir

Podałbyś do siebie kontakt, bo chciałbym o parę rzeczy dopytać na priv?

Forum: Jak działa generator liczb losowych?