学习-Java数组之一维数值数组之随机数统计

任务描述

本关任务:统计数组中随机数出现的次数。

相关知识

在 Java 中有一个 Random 类,他可以在指定的取值范围内随机产生数字。

Random 类

要想使用 Random 类,第一步需要导入 java.util.Random 这个包。 import java.util.Random;

第二步需要创建 Random 对象。 Random random = new Random();

创建完 Random 对象之后,我们就可以使用它提供的方法来创建随机数了。

方法名 方法说明
nextDouble() 方法 返回 0.0 至 1.0 之间的 double 类型值
nextFloat() 方法 返回的是 0.0 至 1.0 之间的 float 类型值
nextInt(int n)方法 返回的是 0(包括)至 n(不包括)之间的 int 值

代码示例:

 
 
  1. public class RandomTest {
  2. public static void main(String[] args) {
  3. Random random = new Random();
  4. System.out.println(random.nextInt(10));
  5. System.out.println(random.nextFloat());
  6. System.out.println(random.nextDouble());
  7. }
  8. }

第一次运行结果:

 
 
  1. 4
  2. 0.60541
  3. 0.7046691676099207

第二次运行结果:

 
 
  1. 3
  2. 0.055246472
  3. 0.47445795351116005

我们可以看到第一次运行结果和第二次运行的结果是不一样的。当我们想要第一次和第二次运行结果一致的话,可以在创建 Random 对象的时候传入一个 Long 类型的数字,这个数字叫随机种子。具有相同随机种子的 Random 对象生成的随机数是一样的。

示例:

 
 
  1. public static void main(String[] args) {
  2. // 创建一个Random对象并传入随机种子
  3. Random random = new Random(10);
  4. System.out.println(random.nextInt(10));
  5. System.out.println(random.nextFloat());
  6. System.out.println(random.nextDouble());
  7. }

第一次运行结果:

 
 
  1. 3
  2. 0.44563425
  3. 0.2578027905957804

第二次运行结果:

 
 
  1. 3
  2. 0.44563425
  3. 0.2578027905957804

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 间编写程序代码,统计数组中每个随机数出现的次数,具体要求如下:

  • 接收给定的数据(如:4 88,其中第一个数代表数组长度,第二个数代表随机数种子);
  • 创建数组并添加随机数(随机数介于 0-19 之间);
  • 输出随机数出现的次数(出现次数大于 0 才输出);
  • 按随机数大小排序输出。

注意:数字分隔符为空格。

测试说明

平台将使用测试集运行你编写的程序代码,若全部的运行结果正确,则通关。

可在右侧 “测试结果”区查看具体的测试集详情。 例: 测试输入:

 
 
  1. 20 9

预期输出:

 
 
  1. 4出现了:1 次
  2. 6出现了:3 次
  3. 8出现了:2 次
  4. 9出现了:1 次
  5. 11出现了:1 次
  6. 13出现了:3 次
  7. 15出现了:2 次
  8. 16出现了:2 次
  9. 17出现了:1 次
  10. 18出现了:2 次
  11. 19出现了:2 次
    import java.util.Random;
    import java.util.Scanner;
    public class RandomTest {
        public static void main(String[] args) {
               // 请在Begin-End间编写代码
            /********** Begin **********/
            // 接收给定数据
            Scanner scanner = new Scanner(System.in);
            int z = scanner.nextInt();     // 数组长度
            long l = scanner.nextLong();     // 随机数种子
            // 创建Random对象,并设置随机种子
            Random random = new Random(l);
            // 定义数组添加数据
            int a[] = new int[z];
            for (int i = 0; i < a.length; ++i) {
                a[i] = random.nextInt(20);
            }
            // 统计每个数出现的次数
            int b[] = new int[z];
            for (int i = 0; i < b.length; ++i) {
                b[i] = 0;
            }
            for (int i = 0; i < a.length; ++i) {
                b[a[i]]++;
            }
            // 输出结果
            for (int i = 0; i < z; ++i) {
                if(b[i]>0) {
                    System.out.println(i + "出现了:" + b[i] + " 次");
                }
            }
            /********** End **********/
        }
    }

Guess you like

Origin blog.csdn.net/qq_53149358/article/details/121291477