Bu entropi kaybetmek kalmaması rastgele bir şamandıra işlevi uygulamak nasıl?

0 Cevap php

Ben / dev / urandom almak bayt ama bir şey kullanarak rastgele yüzen oluşturmak için çalışıyorum. Şu anda benim en iyi fikir gibi bir şey yapıyor platformu hassasiyet almak için:

$maximumPrecision = strlen('' . 1/3) - 2;

ve daha sonra bir döngü içinde $ maximumPrecision söyler sayısını 0-9 bir dize oluşturmak. Hassas 12 ise Examle için, ben 12 rasgele sayılar üretmek ve bunları birleştirmek istiyorum. Ben çirkin bir fikir olduğunu düşünüyorum.

Güncelleme: Bu mantıklı mı?

$bytes =getRandomBytes(7); // Just a function that returns random bytes.
$bytes[6] = $bytes[6] & chr(15); // Get rid off the other half
$bytes .= chr(0); // Add a null byte

$parts = unpack('V2', $bytes);

$number = $parts[1] + pow(2.0, 32) * $parts[2];
$number /= pow(2.0, 52);

0 Cevap