Problem #43
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