170 похожих чатов

Здравствуйте. Я пытаюсь сделать функцию которая возвращает мне случайные числа

определённым образом. Я беру диапазон случайных чисел от 0 до 100 и нужно чтобы числа от 0 до 30 встречались реже, а от 31 до 100 чаще, то есть с какой-то вероятностью. Например у чисел [0; 30] шанс выпасть равен 20%, а у [31;100] 80% и при грубой оценке будет 20 чисел с первым диапазоном, и 80 чисел со вторым. Даже не знаю как подобраться к этому. Можете помочь?

6 ответов

7 просмотров

Нельзя ли сделать так (псевдокод) double p = rnd.Next(); return p <= 0.2 ? rnd.Next(0.0 ... 0.3) : rnd.Next(0.31 ... 1);

ну можно просто сгенерить 20 чисел в одном диапазоне, 80 в другом и перемешать массив

Я бы сделал 2 вариант. 1, делает получение случайного значения, с каким диапазоном работаем. Допустим у вас разделение процентов 20 на 80. узнаем выпавший процент. И потом, узнаем отдельно, случайное число, для диапазона 80%, т.е 2 броска. Второй вариант с искуственным увеличением диапазона, допустим взять 10000 вместо 100. и резделить на отрезки так, чтобы один отвечал за определенный диапазон. т.е смещаем вероятности. при больших количествах цифр, это будет сделать проще.

Dmitry
ну можно просто сгенерить 20 чисел в одном диапазо...

Не, я грубо привёл про 20 чисел. Вероятность же не работает что если 20%, то выпадет 20 раз из 100, может же выпасть и меньше. А за идею спасибо.

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Добрый день. Хочу сделать отрисовку по команде на панели. Почему-то рисуется только при втором вызове. С чем может быть связано, не подскажете? procedure TForm1.FormDblClick(...
Kirill Filippenok
20
Всем доброго дня! Подскажите может кто использовал связку Pagebuilder + Clientsetting. Сами параметры с типом pagebuilder в модуле Clientsetting работают нормально, можно такж...
Александр Добриков
12
А почему в си некоторые вещи работают с двойными кавычками некоторые с одинарными? Нельзя было все сделать с одними или чтоб работало с разными? например чтоб выводить строки ...
.
15
Всем привет! Нужен совет от опытных. Переношу свой проект с Делфи 10.2 Токио на Лазарус 3.2 установленный через инсталлятор fpcupdeluxe-x86_64-win64. При импортировании проект...
Дмитрий Завгородний
7
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Good afternoon, I just started learning php in conjunction with mysql. I am registering a system on a local Mamp server using phpMyAdmin. It seems to be stored normally in the...
ManGo
1
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Добрый день! Такая проблема возникла, написал код на Python, который компилирует, собирает и запускает файлы .s А в случае работы нужно то же самое делать для .asm Чем эти фа...
A Mori
5
Всем привет! procedure TForm1.FormCreate(Sender: TObject); type TStartEnd = record S: Byte; E: Byte; end; var a, b: TStartEnd; begin {1} a.S := 1; {2} a.E := 2; ...
Руслан Михайлович
10
Карта сайта