RTV forum PL | NewsGroups PL

Jak stworzyć funkcję pseudolosową o mocnym rozrzucie wartości w zakresie 1-100?

Wzór funkcji pseudolosowej

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak stworzyć funkcję pseudolosową o mocnym rozrzucie wartości w zakresie 1-100?

PC
Guest

Wed Jun 03, 2009 6:58 am   



Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś
rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?

PC

Grzegorz Kurczyk
Guest

Wed Jun 03, 2009 7:48 am   



Użytkownik PC napisał:
Quote:
Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś
rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?


Taki prosty generator pseudolosowy, to rejestr przesuwający ze
sprzężeniem zwrotnym XOR. Klepałem coś takiego na AVR-y w C. Poszukam
dzisiaj i podeślę.

Pozdrawiam
Grzegorz

Artur Miller
Guest

Wed Jun 03, 2009 7:53 am   



"PC" <p_c_h@poczta.onet.pl> wrote in message
news:h053e4$qjh$1@news.task.gda.pl...
Quote:
Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś
rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?

PC


1: http://ag.bocznica.org
2: http://en.wikipedia.org/wiki/Xorshift (ten o którym pisał grzegorz)
3: http://en.wikipedia.org/wiki/List_of_pseudorandom_number_generators

pozdr

@

Grzegorz Kurczyk
Guest

Wed Jun 03, 2009 8:02 am   



Użytkownik Artur Miller napisał:
Quote:

Oooo ciekawie zrobione :-)

P.S. Jednak algorytm rzeźbiłem w assemblerze AVR. Jak ktoś
zainteresowany to zapraszam.

Pozdrawiam
Grzegorz

Adam Dybkowski
Guest

Thu Jun 04, 2009 12:11 am   



PC pisze:

Quote:
Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś
rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?

Wykorzystaj biblioteczną funkcję rand(), ograniczając wynik do
interesującego Cię zakresu, np. tak:

x = rand() % 100;

A naprawdę mocny rozrzut wartości (i co ważniejsze, brak korelacji z
poprzednimi wynikami) daje dopiero fizyczny generator szumu losowego:
http://home.comcast.net/~orb/index.html

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

roxy
Guest

Thu Jun 04, 2009 6:02 am   



Użytkownik "Adam Dybkowski" <adybkows12@45wp.pl> napisał w wiadomości
news:h06vul$o7l$1@news.wp.pl...
Quote:
PC pisze:

Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś
rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?

Wykorzystaj biblioteczną funkcję rand(), ograniczając wynik do
interesującego Cię zakresu, np. tak:

x = rand() % 100;

A naprawdę mocny rozrzut wartości (i co ważniejsze, brak korelacji z
poprzednimi wynikami) daje dopiero fizyczny generator szumu losowego:
http://home.comcast.net/~orb/index.html

--
Adam Dybkowski
http://dybkowski.net/

Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.

Nie wiem czy pomysl jest dobry ale moja propozycja jest taka aby przed
wykonaniem rand ustawic zarodek (chyba funkcja srand(arg)) a jako zarodek
dac wartosc odczytana z przetwornika AD linii ktora "wisi w powietrzu". moze
troche to poprawi rozklad prawdopodobienstwa?

J.F.
Guest

Thu Jun 04, 2009 6:33 am   



On Thu, 04 Jun 2009 01:11:17 +0200, Adam Dybkowski wrote:
Quote:
PC pisze:
Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś
rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?

Wykorzystaj biblioteczną funkcję rand(), ograniczając wynik do
interesującego Cię zakresu, np. tak:

x = rand() % 100;

Uwaga - statystycznie niezbyt poprawne.
Jesli rand() ma zakres np do 65535, to wyniki 0-35 maja wieksze
prawdopodobienstwo niz 36-99

J.

PC
Guest

Thu Jun 04, 2009 7:42 am   



Ja nie piszę w C a potrzebuję tylko formułę matematyczną, zeby napisać coś
samodzielnie.

PC

Darek
Guest

Thu Jun 04, 2009 8:56 am   



Quote:
Ja nie piszę w C a potrzebuję tylko formułę matematyczną, zeby napisać coś
samodzielnie.

no to najprosciej bedzie Ci oprogramowac automat
a ktorym pisal Grzegorz na xor. Pod asemblerem bedzie to
prosto wykonac.
Rozklad losowy jest dosc przyzwoity i prawdopodobnie w Twoich
zastosowaniach wystarczajacy.
Gdybys potrzebowal cos wymyslnego prawdopodobnie nie
nie pytał bys na grupie.

Pzdr
Darek

PC
Guest

Thu Jun 04, 2009 9:01 am   



Dzięki wszystkim za pomoc.

PC

elektroda NewsGroups Forum Index - Elektronika Polska - Jak stworzyć funkcję pseudolosową o mocnym rozrzucie wartości w zakresie 1-100?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map