eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingPojemnik na liczby losoweRe: Pojemnik na liczby losowe
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!.PO
    STED!not-for-mail
    From: Tubylerczyk <t...@d...pl>
    Newsgroups: pl.comp.programming
    Subject: Re: Pojemnik na liczby losowe
    Date: Thu, 23 Jun 2011 17:02:37 +0200
    Organization: http://onet.pl
    Lines: 27
    Message-ID: <itvki0$an8$1@news.onet.pl>
    References: <ittsd2$hm1$1@news.onet.pl> <itveib$jav$1@news.onet.pl>
    NNTP-Posting-Host: 194.117.241.254
    Mime-Version: 1.0
    Content-Type: text/plain; charset=UTF-8; format=flowed
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1308841344 10984 194.117.241.254 (23 Jun 2011 15:02:24 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Thu, 23 Jun 2011 15:02:24 +0000 (UTC)
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.9.2.18) Gecko/20110616
    Thunderbird/3.1.11
    In-Reply-To: <itveib$jav$1@news.onet.pl>
    X-Antivirus: avast! (VPS 110623-0, 2011-06-23), Outbound message
    X-Antivirus-Status: Clean
    Xref: news-archive.icm.edu.pl pl.comp.programming:191105
    [ ukryj nagłówki ]

    W dniu 2011-06-23 15:20, bartekltg pisze:
    > W dniu 2011-06-23 01:04, Tubylerczyk pisze:
    >> Jak inicjalizować generator pseudolosowy losową wartością? Jedną z
    >> możliwości jest odczyt zegara, ale tylko najmłodsze bity są losowe (jak
    >> określić - ile?). W Linuksie zdaje się, jest 512 bitowy pojemnik losowy
    >
    > Wszystkie. Przecież nie korzystasz z wartości [czas], tylko
    > (w uproszczeniu) z r_1 = F(czas) [a dalej r_n = F (r_{n-1})]
    > Jeśli czasy różnią się choć jednym bitem, to pierwsza liczba
    > pseudolosowa r_1 bdyie w obu przypadkach zupełnie różna.

    Owszem, jeśli chodzi o inicjalizację zmiennej a potem używa wartości
    pseudolosowych. Wtedy wystarczy jeden bit różnicy, podczas gdy skrót MD5
    czy SHA będą różniły się całkowicie.
    Ale weźmy czas w formacie Unixa zmieniający się co sekundę. Można
    powiedzieć że źle będzie tylko wówczas gdy wykonamy program dwa razy w
    ciągu tej samej sekundy, a gdy o jedną sekundę później to już dobrze.
    Jednak co co się stanie, gdy ktoś zna funkcję haszującą i wartość
    pierwszej chwili czasowej? Będziemy mieli 32 bity czasu, >130 lat ale
    tylko najmłodsze bity będą się różniły. Nawet te najmłodsze nie będą
    losowe, bo wiadomo że przy drugim odpaleniu będą miały wartość większą a
    nie mniejszą.
    Losowość rozumiem w ten sposób, że wciskam klawisz i za sekundę wciskam,
    sterownik oblicza między nimi ilość taktów procesora, to czy ta ilość
    jest parzysta czy nie jest czysto losową zmienną, również starsze bity,
    tak aż do pół sekundy, ten półsekundowy bit nie będzie tak już w pełni
    losowy, a starsze będą zerowe więc wcale nie losowe.

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: