Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?
PC
Potrzebuję "wylosować" liczbę w zakresie 1-100 (lub 0-99). Ma ktoś jakieś rozwiązanie matematyczne, które zapewni mocny rozrzut wartości?
PC
Użytkownik PC napisał:
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
1:
Użytkownik Artur Miller napisał:
Oooo ciekawie zrobione :-)
P.S. Jednak algorytm rzeźbiłem w assemblerze AVR. Jak ktoś zainteresowany to zapraszam.
Pozdrawiam Grzegorz
PC pisze:
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:
Użytkownik "Adam Dybkowski" snipped-for-privacy@45wp.pl napisał w wiadomości news:h06vul$o7l$ snipped-for-privacy@news.wp.pl...
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?
Uwaga - statystycznie niezbyt poprawne. Jesli rand() ma zakres np do 65535, to wyniki 0-35 maja wieksze prawdopodobienstwo niz 36-99
J.
Ja nie piszę w C a potrzebuję tylko formułę matematyczną, zeby napisać coś samodzielnie.
PC
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
Dzięki wszystkim za pomoc.
PC
ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.