[identity profile] newacct.livejournal.com posting in [community profile] useful_faq
У меня есть генератор случайных чисел, который генерирует случайное не целое число в диапазоне от 0 до 1 (Например, результат работы: 0,58). Используя результат работы такого генератора, мне нужно арифметическими действиями сделать генератор от 1 до 6 (только целые). Операцию округления я использовать могу.

Подскажите, пожалуйста.

Re

Date: 2008-12-03 08:53 pm (UTC)
From: [identity profile] granite-golem.livejournal.com
Странно, обычно все генераторы ПСЧ дают число в полуинтервале [0; 1). Чем не устраивает классическая формула "floor(Math.random() * (b - a)) + a"?

Date: 2008-12-03 09:05 pm (UTC)
From: [identity profile] besisland.livejournal.com
Нужно умножать на (b - a + 1). (Потому что Math.random() * (b - a) даст число в полуинтервале [0; 5); floor даст целое от 0 до 4 включительно.)

Я именно об этой формуле и говорю, на всякий случай дополняя условием для генераторов, которые дают число не в полуинтервале, а на отрезке.