如何使用Math类填充0到99之间随机数的数组?

时间:2014-09-10 14:44:57

标签: java arrays random

我编写了代码,但没有从double转换为int。

public class Array {
    public static void main(String[] args) {
        int i;
        int[] ar1 = new int[100];
        for(int i = 0; i <  ar1.length; i++) {
            ar1[i] = int(Math.random() * 100);
            System.out.print(ar1[i] + "  ");
        }
    }
}

如何纠正?

5 个答案:

答案 0 :(得分:6)

 ar1[i] = (int)(Math.random() * 100);

Java中的转换看起来像是C中的强制转换。

答案 1 :(得分:4)

应该是

 ar1[i] = (int)(Math.random() * 100);

当你施放时,施法类型应该在括号中,例如(cast type)value

答案 2 :(得分:4)

试试这个:

package studing;

public class Array {
    public static void main(String[] args) {
        Random r = new Random();
        int[] ar1 = new int[100];
        for(int i = 0; i < ar1.length; i++) {
            ar1[i] = r.nextInt(100);
            System.out.print(ar1[i] + "  ");
        }
    }
}

为什么呢?

  1. 使用Math.random()可以返回1,这意味着Math.random()*100可以返回100,但OP要求最多99!使用nextInt(100)是100,它只能返回0到99之间的值。
  2. Math.random()无法返回-0.000001 <{1}} 0 1.0000001无法返回1 }}。因此,获得099的机会比获得099的机会少。通过这种方式,猜测&#34;它不是198&#34;比#34更真实;它不是strictfp或{{1}}&#34;。
  3. 此外,它不会通过您不需要的铸造和数学操作来绕道而行,嘿,您不需要{amd-cpus上的{{1}}或旧的intel-cpus。

答案 3 :(得分:1)

这实际上并没有使用java.lang.Math类,但在Java 8中,也可以这种方式创建随机数组:

int[] random = new Random().ints(100, 0, 100).toArray();

答案 4 :(得分:0)

我的解决方案使用随机类而不是Math.random。这里是。

private static int[] generateArray(int min, int max) {          // generate a random size array with random numbers
    Random rd = new Random();                                   // random class will be used
    int randomSize = min + rd.nextInt(max);                     // first decide the array size (randomly, of course)
    System.out.println("Random array size: " + randomSize);     
    int[] array = new int[randomSize];                          // create an array of that size
    for (int i = 0; i < randomSize; i++) {                      // iterate over the created array 
        array[i] = min + rd.nextInt(max);                       // fill the cells randomly
    }
    return array;
}