eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingLiczby losoweRe: Liczby losowe
  • Data: 2014-07-04 02:27:50
    Temat: Re: Liczby losowe
    Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie 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




Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: