Problem #43
✰ - click to bookmark
★ - in your bookmarks
Tags:
games
floating-point
random
arithmetic
c-0
simple
Программируя настольные или ролевые игры, новички часто испытывают затруднения с превращением случайных чисел в значения очков игральных костей. Цель этой задачи - попрактиковаться в программном выбрасывании костей используя значения от генератора случайных чисел.
Пусть наш генератор выдаёт случайные вещественные числа в диапазоне от 0 (включительно) до 1 (не включая) -
вы можете встретить такой в языках вроде Basic, Java, Matlab и т.п.
Нам нужно преобразовать эти дробные значения в целые, в диапазоне от 1 до 6. Это можно сделать например так:
N - число различных значений которые нам нужны - т.е. в данном случае умножим на 6,
так что результат будет вещественным числом от 0 (включая) до 6 (не включая)floor или преобразовав в int) -
значение станет одним из 0, 1, 2, 3, 4, 5 с равной вероятностью.1 до 6 просто добавим 1 к полученному результату.Итак, даны несколько вещественных значений в диапазоне [0 .. 1) (полученные как раз от генератора случайных чисел) -
их нужно преобразовать в значения очков игрального кубика с помощью вышеописанного алгоритма.
Входные данные содержат в первой строке число значений, которые нужно преобразовать.
Остальные строки содержат по одному вещественному случайному числу каждая (в виде 0.142857 и т.п.)
Ответ должен содержать числа от 1 до 6 для каждого из входных тестов, через пробел.
Пример:
входные данные:
6
0.59558786964
0.861037873663
0.385597702116
0.246237673331
0.808033385314
0.0544673665427
ответ:
4 6 3 2 5 1