-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Liczby losowe
Date: Fri, 04 Jul 2014 02:27:50 +0200
Organization: ATMAN - ATM S.A.
Lines: 89
Message-ID: <lp4se6$u65$1@node2.news.atman.pl>
References: <53b45bdb$0$2241$65785112@news.neostrada.pl>
NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1404433670 30917 89.73.81.145 (4 Jul 2014 00:27:50 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Fri, 4 Jul 2014 00:27:50 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101
Thunderbird/24.6.0
In-Reply-To: <53b45bdb$0$2241$65785112@news.neostrada.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:206156
[ ukryj nagłówki ]On 02.07.2014 21:22, slawek wrote:
> Problem jest natury rozrywkowej.
>
> Zadanie brzmi: "napisać program, który wypisuje 1000 liczb losowych".
> Rozwiązanie jest dokładnie takie:
>
> for n in range(0,1000):
> print("42");
>
> I teraz pytanie: jak udowodnić, że te liczby NIE są losowe? Wartość 42
> wybrano przecież przypadkowo, a to że powtarza się ona 1000 razy... no
> cóż, to też może być przypadek, prawda? Czym takie rozwiązanie jest
> gorsze od jakiegokolwiek innego? Przecież w realnym życiu też można 1000
> wygrać w kolejnych losowaniach Lotto, czyż nie?
>
> A jak się nie da udowodnić że nie są, to trzeba założyć że są, prawda
> ?!? ;)
Nie da się udowodnić, bo zawsze mona mieć takiego pecha, ale da się
policzyć, jakiego pecha trzeba by mieć.
Sytacja jest tym lepsze, jeśli mamy nie tylko 1000 liczb,
ale jak dalej piszesz, generator, który mozemy testować do woli.
Buduje się pewną funkcję zależną od tych liczb. W najprostszym
przypadku niech daje jedną liczbę rzeczywistą.
Może to być średnia, wariancja, cześć wymienionych testów stąd
http://en.wikipedia.org/wiki/Diehard_tests (pozostałe zwracają
pewien rozkład, więc trzeba porównać rozkład z oczekiwanym - znów
liczba), procent liczb parzystych, procent liczby równych 42...
Nasza liczba (powstała z funkcji nakarmionej n zmiennymi losowymi,
liczbami z naszego generatora) też jest zmienną losową.
Ma swoją wartość oczekiwaną oraz swój rozkład.
Wpuszczasz swoją próbkę liczb pierwszych w taką maszynkę,
dostajesz wynik, oddalony oczywiście od wartości oczekiwanej.
Teraz patrzymy na rozkład i odczytujemy, jakie jest
prawdopodobieństwo, że z liczb losowych dostaniemy wynik
taki lub gorszy (bardziej oddalony od wartości oczekiwanej).
Jeśli wyniki są abstrakcyjne duże, odrzucamy.
Można się przy tym podeprzeć stwierdzeniem, że bardziej
prawdopodobne jest to, że coś się popsuło albo ktoś nas w jajo robi ;-)
Zakładam, że oczekujemy rozkładu [0..100]
Test na średnią:
Średnia 50000
odchylenie (z ctg) 913
nasz wynik 42000
jesteśmy prawie 10 odchyleń standardowych za średnią (tak, to
już bardzo mocno przypomina rozkład normlany).
Przy założeniu, że liczby były losowe wynik taki lub gorszy dostajemy
z prawdopodobieństwem 1.5*10^-23.
Test na wynik równy 42. (Zmienna losowa Y =1 jeśli wylosowana
X==42, 0 w przeciwmy wypadku) Zakładamy rozkła dyskretny na [0,99].
Dostaliśmy 1000.
Przy założeniu losowości jest to rozkład dwumianowy
z p=1/100 i n=1000.
średnia = 10
odchylenie 3.1
Jesteśmy absurdalne 314 odchyleń standardowych od oczekiwanego
wyniku.
Prawdopodobieństwo tego zdarzenia to 3.6 *10^-21413
O ile pierwszy wynik sugerował wygraną w totolotka... bez grania,
po prostu znajdując kupon totalizatora sportowego na ulicy...
w Kairze podczas powodzi, to drugi wynik sugeruje kreowanie
wszechświatów za pomocą beknięcia.
:-)
> I jeszcze drobiazg: przecież nie ma pewności, że za każdym razem będą te
> same (sic!), bo może się popsuć komputer i wtedy będą inne. Więc są
> losowe! ;)
Skoro może się popsuć, to są losowe. Ale z bardzo nieprzydatnym
rozkładem skupionym na 42;-)
pzdr
bartekltg
Następne wpisy z tego wątku
- 04.07.14 03:48 A.L.
- 04.07.14 09:27 slawek
- 04.07.14 09:32 slawek
- 04.07.14 09:38 slawek
- 04.07.14 10:03 slawek
- 04.07.14 14:26 IDKrzych
- 04.07.14 14:36 IDKrzych
- 04.07.14 18:55 bartekltg
- 04.07.14 19:00 bartekltg
- 04.07.14 20:02 IDKrzych
- 04.07.14 21:28 A.L.
- 05.07.14 17:25 slawek
- 05.07.14 17:39 slawek
- 05.07.14 18:04 IDKrzych
- 05.07.14 18:05 slawek
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-03-12 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-12 Poznań => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-12 Warszawa => Programista C <=
- 2025-03-12 Chrzanów => Spedytor Międzynarodowy (handel ładunkami/prowadzenie f
- 2025-03-12 64 proc. kierowców zrobi dodatkowo maks. 500 m, aby przy okazji zatankować pojazd
- 2025-03-12 Warszawa => Generative AI Engineer <=
- 2025-03-12 Dęblin => Node.js / Fullstack Developer <=
- 2025-03-12 Warszawa => Gen AI Engineer <=
- 2025-03-12 Warszawa => Data Engineer (Tech Lead) <=
- 2025-03-12 Gdańsk => PHP Developer <=
- 2025-03-12 China-Kraków => Production Coordinator / Representant Product Dev <=
- 2025-03-12 Warszawa => JavaScript / Node / Fullstack Developer <=
- 2025-03-12 China-Kraków => Key Account Manager IT <=
- 2025-03-12 Warszawa => Java Developer <=
- 2025-03-12 Warszawa => Junior Digital Product Manager <=