 |
Czy istnieje miara losowości w równaniach? Działy Forum » Nauka
| Napisano | Autor | Tytuł | | 08-06-2026 12:38 | wadinyade (3 punktów) | Czy istnieje miara losowości w równaniach? | Na przykład, gdybym poprosił komputer o wylosowanie liczby z zakresu 1–10, komputer użyłby algorytmu, aby określić wybraną liczbę. Nie jest to w pełni losowe. Ale ją przybliża. Jak można określić, jak bardzo jest to zbliżone do czystego losu? Czy można porównać to z algorytmem innego komputera i powiedzieć, że jest o 5% bliższe losowości?
Czy w tym przypadku losowość jest równa entropii? | (Aby odpowiedzieć, musisz się zalogować)Autor wątku ma uprawnienia do usuwania wypowiedzi, jeżeli łamią regulamin Forum lub znacznie odbiegają od tematu.
| Lolek_Salambek (2673 punktów) | Proponuję byś zadał czatowi GPT ( chatgpt.com/) odpowiednie pytania. Wówczas uzyskasz interesujące Cię informacje oraz czat GPT zaproponuje Ci, że poszuka jeszcze określonych-dodatkowych informacji, które mogą Cię zainteresować. S pozdravemZwierzęta podobnie jak ludzie mają bardzo silny instynkt życia oraz odczuwają CIERPIENIAIm więcej myślę o tym jak powstał Wszechświat tym bardziej utwierdzam się w swoim AGNOSTYCYŹMIE
|
|
| alsor (3292 punktów) | >Na przykład, gdybym poprosił komputer o wylosowanie liczby z zakresu 1-10, komputer użyłby >algorytmu, aby określić wybraną liczbę. Nie jest to w pełni losowe. Ale ją przybliża. Jak można >określić, jak bardzo jest to zbliżone do czystego losu? Czy można porównać to z algorytmem innego >komputera i powiedzieć, że jest o 5% bliższe losowości?
Tu nie jest potrzebny algorytm. Procesory mają instrukcję rand, i tu otrzymasz full losowy wynik (to jest realizowane z szumów wewnętrznych procesora).
A gdy procesor nie posiada instrukcji rand, wtedy można to nadal realizować, np. z szumów na wejściu mikrofonu.
Algorytmicznie otrzymamy wynik pseudolosowy, no ale to i tak jest full losowe, tyle że tak się mówi:
algorytmy są inicjowane - randomizowane np. aktualnym czasem, co jest dostatecznie losowe, więc finalny wynik jest także losowy.
>Czy w tym przypadku losowość jest równa entropii?
Ta entropia w sensie numerycznym, jest tym samym co losowość... znaczy maksymalna entropia oznacza czysty random; jeśli jest mniej wtedy to nie jest random, np. tekst, czy inne dane nie może mieć full entropii, bo wtedy nie mógłby zawierać żadnych danych - jedynie chaos, szum.
|
|
 | | homopitek (1541 punktów) | >algorytmy są inicjowane - randomizowane np. aktualnym czasem, >co jest dostatecznie losowe, więc finalny wynik jest także losowy.
Pod warunkiem, że czas działania algorytmu jest dłuższy niż stosowana jednostka czasu, po której następuje zmiana aktualnego czasu.
Nie stosuję emoticonów
|
|
|  | | alsor (3292 punktów) | >>algorytmy są inicjowane - randomizowane np. aktualnym czasem, >>co jest dostatecznie losowe, więc finalny wynik jest także losowy. >Pod warunkiem, że czas działania algorytmu jest dłuższy niż stosowana jednostka czasu, po której następuje zmiana aktualnego czasu.
Czas w komputerze jet podawany w mikrosekundach, zatem mamy już dostatecznie dobrą losową.
t = gettime; w mikrosekundach
zatem:
losowa = t mod milion; jest w praktyce czysto przypadkową liczbą - 0 do milion.
|
|
| |  | | homopitek (1541 punktów) | >>>algorytmy są inicjowane - randomizowane np. aktualnym czasem, >>>co jest dostatecznie losowe, więc finalny wynik jest także losowy. >>Pod warunkiem, że czas działania algorytmu jest dłuższy niż stosowana jednostka czasu, po której następuje zmiana aktualnego czasu. >Czas w komputerze jet podawany w mikrosekundach, zatem mamy już dostatecznie dobrą losową. >t = gettime; w mikrosekundach >zatem: >losowa = t mod milion; jest w praktyce czysto przypadkową liczbą - 0 do milion.
Czy dostatecznie dobrą to nie jestem pewien. Już od dawna CPU są taktowane na poziomie GHz, a nie MHz. Procek taktowany 3 GHz w czasie jednej mikrosekundy zalicza 3000 taktów. Jeśli procedura obliczenia liczby pseudolosowej zajmie tylko np. 1000 cykli to w ciągu jednej mikrosekundy komp może wygenerować kolejno 3 identyczne wartości. "Z palca" nie da się tego zrobić, ale programowo pewnie tak. Kiedyś trafiłem na taki efekt w praktyce. Na ile pamiętam, generator liczb pseudolosowych czasami produkował mi dwie kolejne liczby identyczne.
Nie stosuję emoticonów
|
|
| | |  | 1 na 1 | alsor (3292 punktów) | >Czy dostatecznie dobrą to nie jestem pewien. >Już od dawna CPU są taktowane na poziomie GHz, a nie MHz. Procek taktowany 3 GHz w czasie jednej mikrosekundy zalicza 3000 taktów. Jeśli procedura obliczenia liczby pseudolosowej zajmie tylko np. 1000 cykli to w ciągu jednej mikrosekundy komp może wygenerować kolejno 3 identyczne wartości. >"Z palca" nie da się tego zrobić, ale programowo pewnie tak. Kiedyś trafiłem na taki efekt w praktyce. Na ile pamiętam, generator liczb pseudolosowych czasami produkował mi dwie kolejne liczby identyczne.
Tym lepiej że procesory są szybkie.
Teraz mogę użyć dodatkowo liczbę taktów jako losową, co zwiększy precyzję z 20 bitów do 31.
To jest tylko inicjalizacja generatora, potem jest to generowane algorytmicznie, i stąd nazwa generator pseudolosowy.
Full losowa jest tylko ta liczba do zainicjowania - posiania generatora, co robimy tylko raz.
w najprostszym przypadku:
randomize(x=losowa); // seed
a potem dopiero tworzymy te pseudolosowe:
los1 = rand; los2 = rand; los3 = rand; ...
po zainicjowaniu tym samym numerem otrzymamy potem identyczne wyniki - serię pseudolosowych, co jest niekiedy nawet korzystne.
i taki pseudo rand jest bardzo szybki - kilka taktów, co pozwala generować miliony liczb w krótkim czasie; natomiast ten hardwerowy sposób jest bardzo wolny - tysiące taktów zapewne, więc to jest mało efektywne.
W praktyce - w symulacjach komputerowych na losowych danych, nie ma różnicy, czy użyjemy prawdziwe losowe czy pseudo, więc po co mi te losowe, skoro są z 1000 razy wolniejsze w pozyskaniu - czas kosztuje!
|
|
| | | |  | | homopitek (1541 punktów) | >po zainicjowaniu tym samym numerem otrzymamy potem identyczne wyniki - serię pseudolosowych, >co jest niekiedy nawet korzystne. >i taki pseudo rand jest bardzo szybki - kilka taktów, co pozwala generować miliony liczb w krótkim czasie;
Skoro jest tak szybki to generuje bardzo długie ciągi identycznych wyników. Zatem jest nieefektywny, bo marnuje czas procesora. Wszystkie wyniki poza pierwszym są całkowicie przewidywalne od drugiego aż do zmiany danej wejściowej.
>natomiast ten hardwerowy sposób jest bardzo wolny - tysiące taktów zapewne, >więc to jest mało efektywne.
Moim zdaniem efektywność zależy od celu, do którego potrzebujemy liczby losowej/pseudolosowej. Czasami reguła "langsam, langsam aber sicher" jest nieodzowna. Inna sprawa, czy generatory sprzętowe są oparte o procesy rzeczywiście dające prawdziwie losowe wyniki.
>W praktyce - w symulacjach komputerowych na losowych danych, > nie ma różnicy, czy użyjemy prawdziwe losowe czy pseudo, więc po co mi te losowe, skoro są z 1000 razy wolniejsze w pozyskaniu - czas kosztuje!
No właśnie, a one mogą go marnować produkując gigantyczne ciągi identycznych wyników.
Nie stosuję emoticonów
|
|
| | | | |  | | alsor (3292 punktów) | > >po zainicjowaniu tym samym numerem otrzymamy potem identyczne wyniki - serię pseudolosowych,> >co jest niekiedy nawet korzystne.> >i taki pseudo rand jest bardzo szybki - kilka taktów, co pozwala generować miliony liczb w krótkim czasie;> Skoro jest tak szybki to generuje bardzo długie ciągi identycznych wyników. Zatem jest nieefektywny, bo marnuje czas procesora. Wszystkie wyniki poza pierwszym są całkowicie przewidywalne od drugiego aż do zmiany danej wejściowej.> >natomiast ten hardwerowy sposób jest bardzo wolny - tysiące taktów zapewne,> >więc to jest mało efektywne.> Moim zdaniem efektywność zależy od celu, do którego potrzebujemy liczby losowej/pseudolosowej. Czasami reguła "langsam, langsam aber sicher" jest nieodzowna.> Inna sprawa, czy generatory sprzętowe są oparte o procesy rzeczywiście dające prawdziwie losowe wyniki.> >W praktyce - w symulacjach komputerowych na losowych danych,> > nie ma różnicy, czy użyjemy prawdziwe losowe czy pseudo, więc po co mi te losowe, skoro są z 1000 razy wolniejsze w pozyskaniu - czas kosztuje!> No właśnie, a one mogą go marnować produkując gigantyczne ciągi identycznych wyników.Nie ma takiej wady. Ciągi liczb produkowane przez generatory pseudolosowe są nieodróżnialne od 'rzeczywistych' losowych. To jest sprawdzane i testowane. Przykładowo: w ciągu losowych cyfr 0-9 o długości np. milion, masz praktycznie pewne że wystąpi ciąg 6 cyfr pod rząd. Sprawdź sobie np. cyfry liczby pi albo e [niewymierne mają losowe cyfry], i tam będzie z pewnością seria 666666, 999999, 000000, itd. dotyczy to oczywiście dowolnej serii cyfr, np. 12345 także tam będzie prawie na 100%. tu jest 100 000 cyfr pi: www.geom.u(*)ty/math5337/groupe/digits.htmlsprawdź czy występuje 66666, 44444, itd. log(100000) = 5, dlatego 5 cyfr, a dla miliarda będzie tam prawie na 100% seria 666666666, i inne 9-cyfrowe. Po tym można rozpoznać czy ciąg jest losowy, czy pisany ręcznie; ludziom się wydaje że w losowej serii nie powinno być powtórek, no ale z tym jest akurat dokładnie odwrotnie: im dłuższy ciąg tym dłuższe serie muszą się pojawiać! Przypadek do sprawdzenia w praktyce: rzuć 1000 razy monetą, a zdarzy się tam seria nawet 10 orłów pod rząd, co wydaje się nieprawdopodobne, jednak: 1/2^10 = 1/1000, więc to jest prawie pewne - szansa jest bliska 1. W milionie rzutów otrzymamy serię aż 20 orłów lub reszek, co już zupełnie wygląda na nierealne, no ale jednak.
|
|
Aby pisać w tym wątku, musisz się zalogować
Zaloguj przez OpenID.. Jeżeli nie jesteś zarejestrowany/a - załóż konto..
Szukaj na Forum Przewodnik Regulamin i instrukcja obsługi Forum Kolegium Moderatorów 
|
 |
|