Arrayelements作为计数器

时间:2017-08-15 07:23:00

标签: java

我正在学习java并对数组元素有一些误解:

import java.util.Random;
class One {
  public static void main (String[]args) {
    Random R1 = new Random();
    int mat [] = new int [6];
    for ( int chance =0; chance<99; chance++ ) {            
        ++mat[1+R1.nextInt(5)];         
    }
    System.out.println("M\tNumber");
    for(int M =1;M <mat.length;M++) {       
      System.out.println(M  + "\t" + mat[M]);
    }
  }
}

运行此代码后,我得到了类似的内容:

  M Number
    1   30
    2   15
    3   17
    4   23
    5   14

我做了很多尝试,通常是数字&lt; = 20,这对我来说有点混乱,因为我有机会&lt; 99因此我认为它应该是一个更大的数字。你能指出我的错误吗?

1 个答案:

答案 0 :(得分:0)

我认为没有错。 这个数字很可能大约是20,因为:

您重复以下序列99次: 1.从数组中获取一个随机(六个中的一个)元素。 2.增加元素值(加一)。

让我们假设(当然它并不是)随机方法以99执行的方式工作: 20次值0 20倍的价值1 20倍的价值2 20倍的价值3 20倍的价值4 19次值5

所以我们得到: 第一个数组元素为20 第二个数组元素为20 等等...

因此,要获得更大的数字,您需要减少数组长度或将for循环中的条件更改为更大的&#34;机会&#34;数字(在你的情况下:for(int chance = 0;机会&lt; 200;偶然++))。