首页 文章

在Java中获取随机数[重复]

提问于
浏览
317

可能重复:Java:生成范围内的随机数

我想在Java中获得1到50之间的随机值 .

我怎么能在 Math.random(); 的帮助下做到这一点?

如何绑定Math.random()返回的值?

2 回答

  • 549
    int max = 50;
    int min = 1;
    

    1.使用Math.random()

    double random = Math.random() * 49 + 1;
    or
    int random = (int )(Math.random() * 50 + 1);
    

    如果是int或1.0(含)到50.0(不包括),这将为您提供1到50之间的值

    为什么? random()方法返回一个介于0.0和0.9之间的随机数...,你将它乘以50,所以上限变为0.0到49.999 ...当你加1时,它变成1.0到50.999 ......,现在当你截断对于int,你得到1到50.(感谢评论中的@rup) . leepoint对两种方法的精彩记录 .

    2.在Java中使用Random类 .

    Random rand = new Random(); 
    int value = rand.nextInt(50);
    

    这将给出0到49之间的值 .

    1至50: rand.nextInt((max - min) + 1) + min;

    Source的一些Java Random awesomeness .

  • 531

    第一个解决方案是使用 java.util.Random 类:

    import java.util.Random;
    
    Random rand = new Random();
    
    int n = rand.nextInt(50) + 1;
    //50 is the maximum and the 1 is our minimum.
    

    另一种解决方案是使用 Math.random()

    double random = Math.random() * 49 + 1;
    

    要么

    int random = (int)(Math.random() * 50 + 1);
    

相关问题