随机生成的数字

时间:2010-01-24 20:47:23

标签: java random

如何使用Java设置程序以使用以下语句生成5位数字:

int n = (int)Math.floor(Math.random()*100000+1)

还必须打印生成的数字。我尝试过这种不同的方式,并不断出现错误。

5 个答案:

答案 0 :(得分:6)

有两种方法可以查看您的问题。您需要确保随机数生成器仅生成具有五位数的数字(在10000 - 99999范围内),或者当生成的数字太低时,您需要打印带前导0的数字。

使用Java的Random类最好地满足第一种方法。

Random rand = new Random();
int n = rand.nextInt(90000) + 10000;
System.out.println(n);

如果你以某种方式限制你必须使用你问题中的陈述,那么第二种方法可能就是你所追求的。您可以使用Java的DecimalFormat类在打印前格式化带前导零的随机数。

n = (int)Math.floor( Math.random() * 100000 + 1 );
NumberFormat formatter = new DecimalFormat("00000");
String number = formatter.format(n);
System.out.println("Number with lading zeros: " + number);

答案 1 :(得分:2)

有人可能会这样做:

public class Test {
    public static void main(String[] args) {
        int n = (int)Math.floor(Math.random()*100000+1);
        System.out.println(n);
    }
}

但是,这确实不是生成随机整数的首选方法。查看Random课程。

答案 2 :(得分:2)

Random r = new Random();
for (;;) {
  System.out.println(10000 + r.nextInt(90000));
}

答案 3 :(得分:0)

更好的想法是通过连续生成5个随机数字来生成数字。使第一个数字不为零可确保生成的数字始终为5位数。我在下面发布伪代码,应该很容易将其转换为Java代码。

A = List(1,2,3,4,5,6,7,8,9)
B = List(0,1,2,3,4,5,6,7,8,9)

output = 0

output=random.choice(A) //first digit from A, no zeros

for i=0 to 4
   output=output*10
   output=output+random.choice(B) //next digits from B, can have zero

return output

如果您遇到困难,请查看随机的API文档。

答案 4 :(得分:0)

获取随机数00000 - 99999的方法是使用以下内容。

Random r= new Random();
// possibly too obtuse for most readers. ;)
System.out.println((""+(100000+r.nextInt(100000))).substring(1));