Devo lavorare con un codice prodotto da un dipendente che ora è in pensione, e ho alcune strane cose riguardanti numeri casuali. In alcuni punti, ha spostato il valore restituito da un PRNG 10 bit a destra e quindi utilizza una maschera su questo valore.E 'sicuro prendere solo pochi bit da un numero ottenuto con un Mersenne Twister
Ho già visto su Internet che alcuni PRNG hanno scarse proprietà di casualità con alcuni bit nel numero che generano (come l'ultimo, semplicemente alternando tra 1 e 0), ma ho cercato se esistesse qualche litteratura per tali problemi sul Mersenne Twister, ma non ne ho trovato nessuno. Qualcuno sa qualcosa su questo?
Il principale di questo codice è generare rumore gaussiano, quindi rau è preso da un tavolo di rayleigh, l'indice è il numero di spostamento e maschera, mentre il teta è preso dallo stesso numero casuale, ma questa volta solo mascherato, non spostato . – Loufylouf
in C++ 11, dichiarando che un generatore gaussiano pulito prende due linee di codice. Se C++ 11 è un'opzione, la sostituzione di tutti i vecchi generatori personalizzati non failproof di STL potrebbe essere una buona opzione. – galinette
Buono da vedere: http://channel9.msdn.com/Events/GoingNative/2013/rand-Considered-Harmful – galinette