0

0

Java 统计随机数出现次数及找出出现频率最高的数

聖光之護

聖光之護

发布时间:2025-11-02 21:17:15

|

204人浏览过

|

来源于php中文网

原创

java 统计随机数出现次数及找出出现频率最高的数

本文旨在帮助 Java 初学者理解如何统计随机数生成过程中每个数字出现的次数,并找出出现频率最高的数字。我们将通过数组存储随机数,并利用 Java 8 的 Stream API 简化统计过程,最终提供一个清晰、易懂的解决方案。

在很多编程场景中,我们需要生成随机数并进行统计分析。例如,模拟硬翻转、抽奖活动等。本教程将引导你完成一个 Java 程序,该程序可以生成指定数量的 1 到 10 之间的随机数,并统计每个数字出现的次数,最终找出出现频率最高的数字。

1. 生成随机数数组

首先,我们需要生成一个包含指定数量随机数的数组。以下代码实现了这个功能:

立即学习Java免费学习笔记(深入)”;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class RandomNumberCounter {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要生成的随机数数量:");
        int amount = scanner.nextInt();

        int[] randomNumberArray = new int[amount];
        Random random = new Random();

        for (int i = 0; i < amount; i++) {
            randomNumberArray[i] = random.nextInt(10) + 1; // 生成 1 到 10 的随机数
            System.out.print(randomNumberArray[i] + " ");
        }
        System.out.println();

        // 后续统计代码将添加到此处
    }
}

这段代码首先获取用户输入的随机数数量,然后创建一个对应大小的整型数组 randomNumberArray。接着,使用 Random 类生成 1 到 10 之间的随机数,并将它们存储到数组中。

2. 统计每个数字出现的次数

接下来,我们需要统计数组中每个数字出现的次数。 Java 8 的 Stream API 提供了一种简洁高效的方式来实现这个功能。我们可以使用 Arrays.stream() 将数组转换为流,然后使用 filter() 方法过滤出特定数字,最后使用 count() 方法统计数量。

        // 统计每个数字出现的次数
        for (int i = 1; i <= 10; i++) {
            long count = Arrays.stream(randomNumberArray)
                    .filter(n -> n == i)
                    .count();
            System.out.println("数字 " + i + " 出现的次数: " + count);
        }

这段代码循环遍历 1 到 10,对于每个数字,使用 Stream API 过滤出数组中等于该数字的元素,并统计数量。

fortran语言语法 WORD版
fortran语言语法 WORD版

本文档主要讲述的是fortran语言语法;FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看

下载

3. 找出出现频率最高的数字

最后,我们需要找出出现频率最高的数字。 一种方法是创建一个数组来存储每个数字的出现次数,然后找到数组中的最大值及其对应的索引。

        // 找出出现频率最高的数字
        int[] counts = new int[11]; // 索引 1-10 对应数字 1-10 的出现次数
        for (int number : randomNumberArray) {
            counts[number]++;
        }

        int maxCount = 0;
        int mostFrequentNumber = 0;
        for (int i = 1; i <= 10; i++) {
            if (counts[i] > maxCount) {
                maxCount = counts[i];
                mostFrequentNumber = i;
            }
        }

        System.out.println("出现频率最高的数字是: " + mostFrequentNumber + ",出现了 " + maxCount + " 次");

这段代码首先创建一个长度为 11 的整型数组 counts,用于存储每个数字的出现次数(索引 0 不使用,索引 1-10 分别对应数字 1-10)。然后,遍历随机数数组 randomNumberArray,统计每个数字的出现次数。最后,遍历 counts 数组,找到出现次数最多的数字及其对应的次数。

完整代码示例:

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

public class RandomNumberCounter {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入要生成的随机数数量:");
        int amount = scanner.nextInt();

        int[] randomNumberArray = new int[amount];
        Random random = new Random();

        for (int i = 0; i < amount; i++) {
            randomNumberArray[i] = random.nextInt(10) + 1; // 生成 1 到 10 的随机数
            System.out.print(randomNumberArray[i] + " ");
        }
        System.out.println();

        // 统计每个数字出现的次数
        for (int i = 1; i <= 10; i++) {
            long count = Arrays.stream(randomNumberArray)
                    .filter(n -> n == i)
                    .count();
            System.out.println("数字 " + i + " 出现的次数: " + count);
        }

        // 找出出现频率最高的数字
        int[] counts = new int[11]; // 索引 1-10 对应数字 1-10 的出现次数
        for (int number : randomNumberArray) {
            counts[number]++;
        }

        int maxCount = 0;
        int mostFrequentNumber = 0;
        for (int i = 1; i <= 10; i++) {
            if (counts[i] > maxCount) {
                maxCount = counts[i];
                mostFrequentNumber = i;
            }
        }

        System.out.println("出现频率最高的数字是: " + mostFrequentNumber + ",出现了 " + maxCount + " 次");
    }
}

注意事项:

  • Random.nextInt(10) 生成的是 0 到 9 的随机数,所以需要加 1 才能得到 1 到 10 的随机数。
  • Stream API 的 filter() 方法接受一个 Predicate 函数式接口,用于过滤流中的元素。
  • 统计出现频率最高的数字的方法可以进行优化,例如使用 HashMap 存储每个数字的出现次数,可以提高查找效率。

总结:

本教程介绍了如何使用 Java 生成随机数数组,并统计每个数字出现的次数,最终找出出现频率最高的数字。 通过学习本教程,你将掌握以下知识点:

  • 生成指定范围内的随机数
  • 使用数组存储数据
  • 使用 Java 8 Stream API 简化统计过程
  • 找出数组中的最大值

希望本教程能够帮助你更好地理解 Java 编程,并应用于实际项目中。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
counta和count的区别
counta和count的区别

Count函数用于计算指定范围内数字的个数,而CountA函数用于计算指定范围内非空单元格的个数。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

198

2023.11.20

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1133

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

213

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1819

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

20

2026.01.19

java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

1

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

2

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

0

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

0

2026.01.29

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Kotlin 教程
Kotlin 教程

共23课时 | 3万人学习

C# 教程
C# 教程

共94课时 | 7.9万人学习

Java 教程
Java 教程

共578课时 | 53.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号