随机数

时间:2010-12-08 19:11:21

标签: java android random

我有一个问题: 如何在Java(android)中从0到4绘制一个数字? 如何使用随机函数?

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);