Код: Выделить всё
byte[] myTrulyRandomBytes = MyEntropyHardwareEngine.GetBytes(8);
Простая передача массива из 8 случайных байтов в BitConverter.ToDouble() может привести к странным результатам, но самое главное, результат почти никогда не будет меньше 1.
Я хорошо разбираюсь в битовых манипуляциях, но форматирование чисел с плавающей запятой всегда было для меня загадкой. Я пробовал много комбинаций битов, чтобы применить случайность, и всегда в конечном итоге обнаруживал, что числа либо чуть больше 1, всегда ОЧЕНЬ близки к 0, либо очень большие.
Может кто-нибудь объясните, какие биты следует сделать случайными в двойном числе, чтобы сделать его случайным в диапазоне 0 и 1?
Подробнее здесь: https://stackoverflow.com/questions/435 ... en-0-and-1