本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

如何收集某个范围内生成的数字?

发布于2023-11-26 20:51     阅读(1038)     评论(0)     点赞(30)     收藏(5)


目前我有一个代码可以生成 0-100 之间的 200 个随机数(每行 10 个数字),但现在我陷入困境,因为我想让它计算 0-20,21-40,41-60,61- 之间的所有数字80,81-100 并告诉我这个范围内有多少个数字。我该怎么做呢?我已经尝试过,但我刚刚生成了这些范围之间的数字。这是我当前的代码:(如果可能的话如何使用数组来做到这一点?我是初学者,仍在学习)

import java.util.Random;

public class RandomStats1 {

public static void main(String[] args) {
    Random random = new Random ();

System.out.println("200 Generated numbers, 10 per line: ");
int numbersOnThisLine = 0;
    for (int i = 0; i < 200; i++)
{
int nextNumber = random.nextInt(100);
    System.out.print(nextNumber + " ");
    numbersOnThisLine++;

 if (numbersOnThisLine == 10)
 {
   System.out.print("\n");
   numbersOnThisLine = 0;
}

}
}
}

解决方案


由于您处于学习阶段并且应该使用数组,因此我只会给您建议:

  1. nextInt(100)给出 0 到 99 之间的值,而不是 100。
  2. 您的相同尺寸范围为 0-19、20-39、40-59、60-79、80-99。0-20是21个数字。

    (以上注释摘自Peter Lawrey 的评论)。

  3. 您可以使用一个数组来存储每个组的计数器。由于您有 5 个组,因此也将数组的大小定义为 5。

  4. 利用该语言的一些优点,两个数字的整数除法的结果是双精度结果的整数部分。换句话说,当除以 时int xint y结果int z将是结果的整数部分,不需要考虑模数和浮点部分。例如:
    • 15 / 20 = 0
    • 20 / 20 = 1
    • 21 / 20 = 1
  5. 通过上面的注释,您可以轻松获得将用作计数器的数组的索引,只需将生成的数字除以 0 到 100 之间,然后除以 20。

一个小伪代码:

int counterSize <- 5
int groupSize <- 20
int[] counter = new int[counterSize]
for i <- 0 to 200
    int nextNumber <- random(100)
    int index <- nextNumber / groupSize
    counter[index] <- counter[index] + 1
end for


所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/684982/89e7edc0e667611dae9e/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

30 0
收藏该文
已收藏

评论内容:(最多支持255个字符)