Итак, int random = (int) Math.ceil(Math.random() * 5);
возвращает значение 0,1,2,3,4, а не 1,2,3,4,5?Принимает ли math.random 0 целое число?
Я попытался проверить это, но он никогда не кажется, достиг 0 или 5 = х
Итак, int random = (int) Math.ceil(Math.random() * 5);
возвращает значение 0,1,2,3,4, а не 1,2,3,4,5?Принимает ли math.random 0 целое число?
Я попытался проверить это, но он никогда не кажется, достиг 0 или 5 = х
В теории, 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()
?
Хотя это должно дать вам 0 очень, очень редко. – rob
Я не знаком с Random.nextInt() - это лучший способ создать случайный номер #? – Sapp
@rob: Я просто добавлял это :) @Sapp: Да. Это дает вам намного больше контроля над семенами и т. Д., * И * полезные методы для получения целых чисел в диапазоне и т. Д. –