«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему `rand () % 14` возвращает конечную ценность на Apple MCG?

Почему `rand () % 14` возвращает конечную ценность на Apple MCG?

Опубликовано в 2025-04-14
Просматривать:892

Why Does `rand() % 14` Return Limited Values on Apple\'s MCG?

rand () % 14 Генератор возвращает ограниченные значения

. В недавней программе разработчик столкнулся с проблемой, где выражение Rand () % 14 последовательно создало значения только 6 или 13. Несмотря на попытку выполнить код во многом, результаты были согласованы. Проблема заключается в характере генератора случайных чисел, используемого MCG Apple.

, как объяснено Википедией, множитель MCG 16807 делится на 7. Это означает, что первое случайное число, генерируемое после Srand (), будет иметь только один бит энтропии, когда принимается модуль 14, в результате в результате ограниченного диапазона значений. Этот недостаток объясняется высококачественным генератором случайных чисел, используемого Apple.

простое решение этой проблемы состоит в том, чтобы вызовать Rand () несколько раз после srand () и отказаться от начальных результатов. Это улучшит энтропию сгенерированных чисел и решит проблему выхода ограниченного значения.

]
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3