我有一个问题: 如何在Java(android)中从0到4绘制一个数字? 如何使用随机函数?
答案 0 :(得分:9)
以下内容将满足您的需求。
Random r = new Random();
int randomInt = r.nextInt(5);
如果您在循环中执行此操作,请确保初始化循环外的Random
。
Random r = new Random();
for(int i = 0;i < someThing; i++) {
System.out.println(r.nextInt(5));
}
请参阅Random
课程的文档:http://download.oracle.com/javase/6/docs/api/java/util/Random.html
答案 1 :(得分:3)
请付费 - 每次拨打电话:
Random r = new Random();
可能会给你返回相同的数字(我猜你们很少注意到那些phanamona)。
我猜它以某种方式与随机数的Java问题联系起来: Java: Can (new Random()).nextInt(5) always return the same number? 并且:Java random always returns the same number when I set the seed?
无论如何,我的解决方案是在我的类中添加一个静态变量:
static Random sRandomGen = new Random();
当我需要随机数时,从相关方法调用nextInt。那么我接受了结果之间的平等分配。
int rnd = sRandomGen.nextInt(numofmatches - 1);
这个解决方案对我很有用。
答案 2 :(得分:2)
有一点需要注意的是,每次想要一个新数字时都不应该创建一个新的Random对象。应用程序启动时应该执行一行:
Random r = new Random();
每次你想要一个新的随机数时都应该调用它:
int x = r.nextInt(5);
答案 3 :(得分:2)
System.out.println(""+(int) (Math.random()*5.0));
如果你只需要生成一个随机数,我相信使用Math.random()比制作一个对象要便宜一些。
注意:要生成0到n之间的任意随机整数,(0包含,n独占),只需使用:
(int) (Math.random()*n);
要生成从m到m + n的任意随机整数,(m包含,m + n不包括),只需使用:
m + (int) (Math.random()*n);