那么,int random = (int) Math.ceil(Math.random() * 5);
是否返回值0,1,2,3,4而不是1,2,3,4,5?
我试过测试一下,但它似乎永远不会达到0或5 = x
答案 0 :(得分:5)
理论上,Math.random()
将始终返回大于或等于0且严格小于1的值。
所以使用(int) Math.ceil(Math.random() * 5)
实际上应该给你0,1,2,3,4,5。但是,除了 0之外的Math.random()
返回的任何值都将是在致电Math.ceil()
后给出1或更多的值 - 所以你会经常看到0消失。 (如果你曾经看到它,你会很幸运,但它肯定是可能的。)看到5很容易 - 你会在Math.random()
返回时得到它值大于0.8。
您是否有任何理由不使用Random.nextInt()
?