У меня проблемы с генерацией случайных чисел, которые не подчиняются дискретному равномерному распределению.
Так, например, скажем, у меня есть 5 чисел (для простоты), вероятность того, что будет сгенерировано число k, будет равна k/15. (k = от 1 до 5)
Моя идея состоит в том, чтобы сгенерировать случайное число j с помощью rand(), и если это число j равно:
1 =>, то генерируется число 1
2 или 3 => число 2
4 или 5 или 6 => число 3
7 или 8 или 9 или 10 => число 4
11 или 12 или 13 или 14 или 15 => число 5
Теперь масштабируйте это для генерации 1-10, 1-100, 1-1000. Это работает так, как я задумал? Я построил цикл, который в значительной степени делает это каждый раз, когда нужно сгенерировать число, я думаю, что это, вероятно, неэффективно, так как оно идет вверх, пока не найдет число j, сгенерированное в одном из диапазонов... Что может быть лучше? сделать это?
РЕДАКТИРОВАТЬ: или, может быть, создать массив один раз с правильными числами, а затем вытащить с помощью rand() лучшее решение?