Robusztus Random szám generálás

szavazat
34

Keresem a eredményes, ésszerűen robusztus RNG nem használ speciális hardvert. Meg tudja használni a matematikai módszerek (Mersenne Twister, stb.), Akkor az „összegyűjti entrópia” a gép, akármi. Linux / etc van egy drand48()generáló 48 bitet. Szeretnék hasonló funkciót / osztály C ++ vagy C # amely képes létrehozni több, mint 32 bit véletlenszerűség és amely alacsony helyiértékű bit egyformán például random, mint magas helyiértékű bit.

Nem kell biztonságosan titkosított, de nem használja, vagy alapulhat a C-nyelv rand()vagy a .NET System.Random.

Forráskódot, linkek forrás stb lenne méltányol! Ennek hiányában, milyen típusú RNG kéne keresni?

A kérdést 03/08/2008 03:05
a forrás felhasználó
Más nyelveken...                            


5 válasz

szavazat
27

C ++, Boost.Random talán, amit keres. Ezt támogatja az MT (sok más algoritmusok), és összegyűjti az entrópia keresztül nondet_randomosztályban. Check it out! :-)

Válaszolt 03/08/2008 03:18
a forrás felhasználó

szavazat
8

GNU Scientific Library (GSL) egy elég kiterjedt RN generátorok, teszt hám, stb Ha a linux, akkor valószínűleg már elérhető a rendszeren.

Válaszolt 03/08/2008 03:26
a forrás felhasználó

szavazat
7

Vigyázz a GNU Scientific Library. Ez GPL alatt licencelt helyett LGPL.

Mint más emberek említettük, a kiemelés véletlenszerű osztály egy jó kezdet. Ezek végrehajtása megfelel a PRNG kód pala TR1:

http://www.boost.org/doc/libs/1_35_0/libs/random/index.html http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1452.html

Ha van egy újabb verziója a g ++ fordító, akkor megtalálja a TR1 könyvtárak már benne

Válaszolt 13/08/2008 19:08
a forrás felhasználó

szavazat
2

Boost.Random az első választás RNG

http://www.boost.org/doc/libs/random

Válaszolt 29/03/2012 11:32
a forrás felhasználó

szavazat
5

C ++ 11 fogadott robusztus véletlen számot alapuló könyvtárat boost.random. Érheti számos véletlenszerű számot használó motorok különböző algoritmusok, hogy megfeleljen a minőség, a gyorsaság és a méret követelményeknek. Minőségi implementáció még hozzáférést biztosít bármilyen nem-determinisztikus RNG a platform kínál keresztül std::random_device.

Ezen kívül sok adapterek nincsenek konkrét disztribúció, így nincs szükség a teendő ilyen manipuláció útján (valami gyakran helytelenül végzett).

#include <random>

Válaszolt 26/06/2012 17:05
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more