Obecnie piszę kod do generowania danych binarnych. W szczególności muszę wygenerować liczby 64-bitowe przy określonej liczbie ustawionych bitów; dokładniej, procedura powinna zająć około i zwrócić pseudolosową 64-bitową liczbę z dokładnie bitami ustawionymi na , a resztą ustawioną na 0.
Moje obecne podejście obejmuje coś takiego:
- Wygeneruj pseudolosowy 64-bitowy numer .
- Policz bity w , przechowując wynik w .
- Jeśli , wyprowadza ; w przeciwnym razie przejdź do 1.
To działa, ale wydaje się nieeleganckie. Czy istnieje jakiś algorytm PRNG, który może generować numery z bitów ustawionych bardziej elegancko niż to?