Telegram Group & Telegram Channel
Наверное все использовали или видели такую конструкцию для генерации случайного числа в нужном диапазоне (в данном случае от 0 до 123):

a = $urandom % 123

Но не все обращают внимание на то, что такое выражение выдаст случайное число не с равномерным распределением (не всегда). Конкретно в этом случае вероятность получения чисел от 0 до 36 будет выше, чем всех остальных. При этом, чем меньше отношение интервала к максимальному случайному числу, тем больше будет неравномерность.

Функция $urandom выдаёт 32-битное число, т.е. максимальное значение 2^32 и неравномерность в примере выше будет настолько маленькая, что ни в каких реальных применениях вы её не заметите. Однако, если интервал сделать, например, 0.1 от максимального случайного числа, то неравномерность будет заметна уже на тысячах выборок.

Как можно догадаться, чтобы распределение не ломалось, нужно выбирать интервал равный степени двойки, чтобы весь интервал случайных чисел делился на него нацело.



group-telegram.com/enginegger/7
Create:
Last Update:

Наверное все использовали или видели такую конструкцию для генерации случайного числа в нужном диапазоне (в данном случае от 0 до 123):

a = $urandom % 123

Но не все обращают внимание на то, что такое выражение выдаст случайное число не с равномерным распределением (не всегда). Конкретно в этом случае вероятность получения чисел от 0 до 36 будет выше, чем всех остальных. При этом, чем меньше отношение интервала к максимальному случайному числу, тем больше будет неравномерность.

Функция $urandom выдаёт 32-битное число, т.е. максимальное значение 2^32 и неравномерность в примере выше будет настолько маленькая, что ни в каких реальных применениях вы её не заметите. Однако, если интервал сделать, например, 0.1 от максимального случайного числа, то неравномерность будет заметна уже на тысячах выборок.

Как можно догадаться, чтобы распределение не ломалось, нужно выбирать интервал равный степени двойки, чтобы весь интервал случайных чисел делился на него нацело.

BY Arnold Enginegger


Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260

Share with your friend now:
group-telegram.com/enginegger/7

View MORE
Open in Telegram


Telegram | DID YOU KNOW?

Date: |

The Securities and Exchange Board of India (Sebi) had carried out a similar exercise in 2017 in a matter related to circulation of messages through WhatsApp. Artem Kliuchnikov and his family fled Ukraine just days before the Russian invasion. Although some channels have been removed, the curation process is considered opaque and insufficient by analysts. The regulator said it has been undertaking several campaigns to educate the investors to be vigilant while taking investment decisions based on stock tips. Oh no. There’s a certain degree of myth-making around what exactly went on, so take everything that follows lightly. Telegram was originally launched as a side project by the Durov brothers, with Nikolai handling the coding and Pavel as CEO, while both were at VK.
from tr


Telegram Arnold Enginegger
FROM American