The RationalistSkip to content
Liczby losowe

This plot has expired

Sections of Forum » O wszystkim i o niczym
Date of addingAuthorTitle
15-12-2013 20:11Ivy77 (12 points)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ć?
Author can remove replies violating regulations or out of topic.

hamp (3461 points)
>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.
Ivy77 (12 points)
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 points)
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 points)
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.
Arystyp z Cyreny (6368 points)
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 points)
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.

Back to the list of plots działu O wszystkim i o niczym 
To write in this plot, you have to sign in


 


[ Cooperation ] [ Advertise ] [ Map of the site ] [ F.A.Q. ] [ Store ] [ Sign up ] [ Contact ]
The Rationalist © Copyright 2000-2018 (English section of Polish Racjonalista.pl)
The Polish Association of Rationalists (PSR)