Как сгенерировать результаты за тест случайным образом, с заданной вероятностью каждого результата?
Необходимо написать функцию которая будет заполнять оценки за тест случайным образом, так чтобы вероятности были: оценка < 50% — 12,5%, оценка < 75% — 37,5%, оценка < 90% - 37,5%, оценка <= 100% - 12,5%. При этом оценка может быть только целым числом процентов из заданного промежутка, и по возможности нужно сделать это не используя дополнительные таблицы.
Помогите, вообще не понимаю как это сделать
Шансы 1:3:3:1. Генерируйте случайное число от 0 до 7. При 0 - выдавайте случайное число < 50. При 1-3 - случайное число от 50 до 74, при 4-6 - выдывайте ответ от 75 до 89, при 7 выдавайте число от 90 до 100.
Какие именно числа из промежутка выдавать в задании не сказано. Можете как-то случайно равновероятно или как-то нормально генерировать или вообще выдывать середину промежутка всегда.
Да, я вроде поняла этот алгоритм, но теперь не понимаю как его реализовать, тк для условий число от 0 для 7 будет каждый раз генерироваться заново...
В общем буду думать над реализацией, спасибо)
AnnyB_009, О госпади. Ну тогда можно так - сначала если случайное число от 0 до 7 равно нулю, то первый вариант. Потом, если случайное число от 0 до 6 равно 0,1,2 - то второй варинат, потом случайное число от 0 до 4 должно попасть в 0,1 или 2, и в конце всегда остается четвертый вариант.
AnnyB_009, Да. Первый вариант выберется с вероятностью 1/8. Второй - с вероятность 7/8*3/7 = 3/8, как надо. Третий с вероятностью 7/8*6/7*3/6 = 3/8. Именно поэтому последующие разы вы генерируете не от 0 до 7, а от 0 до сколько там осталось вариантов.