Racjonalista - Strona głównaDo treści
Liczby losowe

Ten wątek jest przedawniony

Działy Forum » O wszystkim i o niczym
NapisanoAutorTytuł
15-12-2013 20:11Ivy77 (12 punktów)Liczby losowe
Witam,

Mam pytanie, ponieważ jestem laikiem w tym temacie i będę wdzięczna za pomoc, tudzież sugestie.
Czy ktoś z forumowiczów orientuje się jaki jest najlepszy sposób/ program/ storna generująca liczby losowe (pseudolosowe).

Z tego co kojarzę, większość serwerów oferująca generowanie randomów jest niedoskonała.
Czego najlepiej używać?
Autor wątku ma uprawnienia do usuwania wypowiedzi, jeżeli łamią regulamin Forum lub znacznie odbiegają od tematu.

hamp (3461 punktów)
>Czego najlepiej używać?

Małe wymagania hardware'owe, ale ogromna losowość i wysoka konfigurowalność - w zależności od ilości kości operacyjnych - od równomiernego rozkładu prawdopodobieństwa do krzywej Gaussa.
Odpowiedź jest jednocześnie niepoważna i całkowicie poważna.
15-12-2013 20:28 
 Ocena 1 na 1
Ivy77 (12 punktów)
Dziękuję bardzo za rozwiązanie problemu!

Jedyne czego teraz potrzebuję to humanoidalny robot, który powtórzy losowanie 10 kostkami 10000 razy, i zapisze wyniki
Arystyp z Cyreny (6368 punktów)
Mogłabyś dostarczyć więcej informacji, np. do czego dokładnie, na jaki poziom edukacji, itd.?

Jeśli jesteś programistką albo masz programistę pod ręką cuRAND to świetna biblioteka na karty Nvidii z CUDA (praktycznie wszystkie, które nie są nieprzyzwoicie stare) dla wybranego rozkładu.

MatLab i Octave też się nadadzą.

Jeśli szukasz narzędzia i programowanie nie wchodzi w grę to zarówno excel jak i calc wygenerują liczby pseudolosowe dopasowane do wybranego rozkładu.

"Mądrość jest dobrem, aczkolwiek jest pożądana nie sama dla siebie, ale z uwagi na konsekwencje"
Ivy77 (12 punktów)
Dzięuję!

Bardzo przydatna odpowiedź!
Tak jak napisałam jestem laikiem, ale chodziło mi o narzędzie programistyczne.
Bo gdy używam typowej funkcji losowania w c++ (tj. time) to na pierwszy rzut oka widzę, że liczby losowe nie są...

Sugestia z matlabem też się przyda.
15-12-2013 21:46 
 Ocena 3 na 3
Arystyp z Cyreny (6368 punktów)
Generatory pseudolosowe działają niestety w ten sposób, że dla danego wejścia x zawsze wygenerują ciąg y,z,... dla x' wygenerują y',z',...

Jeśli korzystałaś z rand ze standardowej biblioteki i pamiętałaś o umieszczeniu srand z parametrem odpowiadającym obecnemu czasowi poza pętlą wypisującą kolejne losowe liczby, to za każdym razem powinnaś otrzymać zbiór liczb zbliżony do rozkładu normalnego.

Możesz wrzucić swój kod np. na pastebin i pokazać co chcesz osiągnąć.

Jeśli piszesz w C++ i używasz unixa (linux, OS X, itd.), żeby dostać najbardziej przypadkowy ciąg liczb możesz skorzystać z dev/random, który generuje sekwencję na podstawie danych ze sterowników urządzeń. Te dane są wysoko losowe i używa się ich do generowania kluczy w kryptografii.

Jeśli korzystasz z Windowsa możesz użyć CryptoAPI.

Ale to oczywiście zależy od tego, czy chcesz wygenerować najbardziej losowe liczby, czy najbardziej zbliżone do jakiegoś rozkładu. Biblioteka nvidii, którą poleciłem wymaga jednak średnio zaawansowanej wiedzy z programowania, a CUDA C jest bardziej zbliżone do C niż C++ i ma trochę własnych udziwnień językowych.

Myślę że programistę C++ bardziej zainteresuje random number library ze zbioru bibliotek boost.

"Mądrość jest dobrem, aczkolwiek jest pożądana nie sama dla siebie, ale z uwagi na konsekwencje"
Ivy77 (12 punktów)
Dziękuję raz jeszcze.
Rzadko zdarza mi się otrzymać tak rzeczową i konkretną odpowiedź.
Kod jest dopiero w fazie przygotowań, ale wiedziałam, że prędzej czy później będę musiała rozwikłać ten problem.
Faktycznie ostatnie rozwiązanie jest najłatwiejsze do wdrożenia, zwłaszcza, że nie zajmuję się profesjonalnie programowaniem i chodziło mi o metody przy średniej znajomości C++.

Jednakże w przyszłości będę mieć na uwadze również pozostałe możliwości.
Pozdrawiam.

Wróć do listy wątków działu O wszystkim i o niczym
Aby pisać w tym wątku, musisz się zalogować

  

Zaloguj przez OpenID..
Jeżeli nie jesteś zarejestrowany/a - załóż konto..

Szukaj na Forum  Przewodnik  Regulamin i instrukcja obsługi Forum  Kolegium Moderatorów

 


[ Regulamin publikacji ] [ Bannery ] [ Mapa portalu ] [ Reklama ] [ Sklep ] [ Zarejestruj się ] [ Kontakt ]
Racjonalista © Copyright 2000-2018 (e-mail: redakcja | administrator)
Fundacja Wolnej Myśli, konto bankowe 101140 2017 0000 4002 1048 6365