Top.Mail.Ru
Ответы

Генератор случайных чисел в диапазоне с заданной вероятностью в swift

Всем добрый вечер!
Подскажите, пожалуйста, как можно реализовать данный генератор?

Очень нужен генератор случайных чисел в диапазоне от 0 до 10 с заданной вероятностью

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

var percent = arc4random_uniform(100)
var per1 = 0...10

switch percent {

case 0...10:
percent = 1
case 11...20:
percent = 2
case 21...30:
percent = 3
case 31...40:
percent = 4
case 41...50:
percent = 5
case 51...60:
percent = 6
case 61...70:
percent = 7
case 71...80:
percent = 8
case 81...90:
percent = 9
case 91...100:
percent = 10

default:
percent = 0
}

print(percent)

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

Учу swift всего дней пять . ранее не занимался программированием )

После того, как я начну дальнейшее обучение языку swift, хотелось бы попрактиковаться с уже полученными знаниями и для этого мне очень нужен такой генератор)

буду очень благодарен за оказанную помощь !
thx

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Простейший вариант: создать массив из 100 элементов и выбирать случайный элемент из этого массива. Если вероятность единицы 13% - число 1 записываем в 13 ячеек массива, если вероятность двойки 7% - записываем число 2 в 7 ячеек и т. д.

Аватар пользователя
Просветленный
7лет

на пальцах. допустим есть 2 числа, которые должны генерироваться. допустим число 1 должно выпадать в 3 раза чаще чем 1, тогда всего у нас "частот" 4 (3 части на единицу и 1 часть на 2)
генерим рандомно число от 0 до 3 (от 1 до 4) и смотрим: если от 0 до 2, то тогда у нас единица, если 3, то двойка.
какой такой процент я не понял. если имеется ввиду вероятность выпадение, то менять можно.
имеем массив с заданной вероятностью для каждого числа
вер ((1,3)(2,1)) и т. д. ну дальше несложно вычислить сумму вероятностей и на какое число укажет рандом

Аватар пользователя
Высший разум
7лет

если вас устроит ответ в excel, тогда уточните:
1. минимальный/максимальный диапазон чисел ?
2. Числа все целые или десятичные ?