Предполагает ли math.random 0 целым числом? - PullRequest
0 голосов
/ 22 ноября 2010

Итак, int random = (int) Math.ceil(Math.random() * 5); возвращает значение 0,1,2,3,4 вместо 1,2,3,4,5?

Я пытался проверить это, но это никогдакажется, ударил 0 или 5 = х

1 Ответ

5 голосов
/ 22 ноября 2010

Теоретически, Math.random() всегда будет возвращать значение, большее или равное 0, и строго меньшее, чем 1.

Так что использование (int) Math.ceil(Math.random() * 5) должно фактически дать вам 0, 1, 2, 3,4, 5. Однако любое значение, возвращаемое из Math.random(), отличное от точно 0, будет иметь значение 1 или более после вызова Math.ceil() - так что вы будете часто видеть 0 исчезающе.(Вам повезет, если вы когда-либо увидите это, но это определенно возможно .) Видеть 5 легко - вы получите, что в любое время Math.random() вернет значение, превышающее0.8.

Есть ли причина, по которой вы не используете Random.nextInt() вместо этого?

...