首页 > 解决方案 > 需要帮助来创建一个范围内随机生成的数字数组,然后显示该范围内每个数字的频率

问题描述

正如标题所暗示的那样,我在编写可以按要求执行的代码时遇到了麻烦。我所拥有的是:

public static void main(String[] args) {
       int[] runs = new int[24];  
       for(int i = 0; i < runs.length; i++) {
          runs[i] = (int)(Math.random()*3 + 1);
          int count = 1;
          for (int j = i+1; j<i;j++) {
              if (runs[i] == runs[j]) {
                  count++;
              }
          }
          System.out.println(runs[i] + " " + count);          
        }   
   }

但是,每当我运行我的程序时,它只会列出随机生成的数字,然后在它们旁边列出一个 1。任何帮助表示赞赏,谢谢!

标签: javaarraysrandomfrequency

解决方案


int count1 = 0;
int count2 = 0;
int count3 = 0;
int count4 = 0;    

for(int i = 0; i < runs.length; i++) {
     runs[i] = (int)(Math.random()*3 + 1);
     if (runs[i] == 1) {
         count1++;
     } else if (runs[i] == 2) {
         count2++;
     } else if (runs[i] == 3) {
         count3++;
     } else {
         count4++;
     }
}


System.out.println("1's Frequency is: " + count1);
System.out.println("2's Frequency is: " + count2);
System.out.println("3's Frequency is: " + count3);
System.out.println("4's Frequency is: " + count4);
     

我上面提供的代码块应该可以工作。您的代码的问题之一是在搜索数组以查找每个数字的频率之前,您没有生成数组中的所有数字。此外,代码嵌套循环中的代码块不会完成找出每个数字频率的任务。

我在这里所做的是它通过循环并为数组中的每个空格分配一个随机数。而且,每次它分配一个随机数时,它还会通过一系列条件语句来计算或增加该范围内每个数字的频率。


推荐阅读