rand () % 14 Генератор возвращает ограниченные значения
. В недавней программе разработчик столкнулся с проблемой, где выражение Rand () % 14 последовательно создало значения только 6 или 13. Несмотря на попытку выполнить код во многом, результаты были согласованы. Проблема заключается в характере генератора случайных чисел, используемого MCG Apple.
, как объяснено Википедией, множитель MCG 16807 делится на 7. Это означает, что первое случайное число, генерируемое после Srand (), будет иметь только один бит энтропии, когда принимается модуль 14, в результате в результате ограниченного диапазона значений. Этот недостаток объясняется высококачественным генератором случайных чисел, используемого Apple.
простое решение этой проблемы состоит в том, чтобы вызовать Rand () несколько раз после srand () и отказаться от начальных результатов. Это улучшит энтропию сгенерированных чисел и решит проблему выхода ограниченного значения.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3