Задать вопрос

Rand с различной вероятностью?

Здравствуй мой любимый хаб «ненормальное программирование»

Сейчас я вам подкину задачку на сообразительность.

Условие: есть последовательность, от 1 до 100, необходимо выбрать случайным образом число из этой последовательности, но так, что бы у 1 был наименьший приоритет выбора а у 100 максимальный.



Решение у меня есть (даже два, одно программистское (нашел сам), второй математическое (это уже подсказали товарищи)

Вот картинка демонстрирующая:

graf.png

по X последовательность от 1 до 100

по Y шанс выпадения

белая — чистый рандом

красная — прог решение

зеленая — математическая

серая — ноль, для чистоты эталона



Как оказалось, когда привлек знакомых разработчиков к решению этой задачи, многим она стала не по зубам.

Все предложения могу добавить на график. для проверки.

Завтра к вечеру покажу что у меня есть за варианты.



upd: добавил время затраченное на просчет.
  • Вопрос задан
  • 10690 просмотров
Подписаться 7 Оценить 1 комментарий
Ответ пользователя MiXei4 К ответам на вопрос (6)
MiXei4
@MiXei4
Генерируем число от 1 до суммы арифметической прогрессии от 1 до 100 = 5050.
Получаем x. Далее считаем при каком минимальном числе y число x окажется меньше суммы арифметической прогрессии от 1 до y.

Смысл такой — выпадает 1 — ответ 1, выпадает 2 или 3 — ответ 2, выпадает 4, 5, 6 — ответ 3 и тд
Ответ написан