java - 需要帮助来创建一个范围内随机生成的数字数组,然后显示该范围内每个数字的频率
问题描述
正如标题所暗示的那样,我在编写可以按要求执行的代码时遇到了麻烦。我所拥有的是:
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。任何帮助表示赞赏,谢谢!
解决方案
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);
我上面提供的代码块应该可以工作。您的代码的问题之一是在搜索数组以查找每个数字的频率之前,您没有生成数组中的所有数字。此外,代码嵌套循环中的代码块不会完成找出每个数字频率的任务。
我在这里所做的是它通过循环并为数组中的每个空格分配一个随机数。而且,每次它分配一个随机数时,它还会通过一系列条件语句来计算或增加该范围内每个数字的频率。
推荐阅读
- node.js - 类型错误:socket.listen 不是函数
- flutter - Flutter 中的通用 CRUD Http 函数
- javascript - angualr 10 中的 iframe-resizer 实现(使用 loader.js 动态添加 iframe)
- javascript - 在没有 fs 的情况下保存到 JSON?
- angular - Angular mat-form-field 在标签之间添加空格
- python - 从 OrderedDict 中移除 {}
- libcurl - 如何将 CURLU_ALLOW_SPACE 与 curl_easy_perform 一起使用
- c# - 使用全球化更改为剑道网格创建按钮文本
- angular - 无法读取未定义的属性(读取“已检查”)
- git - 错误:错误的 DVC 文件名 'my_server\models\*.tar.gz.dvc' 被 git 忽略