广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java案例实现不重复的随机数
  • 604
分享到

Java案例实现不重复的随机数

2024-04-02 19:04:59 604人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

需求:获得十个1-20的随机数,要求随机数不能重复,存储到集合中并遍历 分析: 1.创建Set集合对象,可以使用HashSet也可以使用TreeSet,区别在于TreeSet是排序后

需求:获得十个1-20的随机数,要求随机数不能重复,存储到集合中并遍历

分析:

  • 1.创建Set集合对象,可以使用HashSet也可以使用TreeSet,区别在于TreeSet是排序后的
  • 2.创建随机数对象,获取一个随机数
  • 3.判断集合长度是否大于10,是停止生成、存储并遍历
  • 否:继续生成直到长度大于10停止生成、存储并遍历
  • 4.输出

代码:

public class SetDemo {
    public static void main(String[] args) {
        //创建Set集合对像
        Set<Integer> s=new TreeSet<Integer>();
        //创建随机数对象
        Random r=new Random();
        while(s.size()<10){
            int num= r.nextInt(20)+1;
            s.add(num);
        }
        for (Integer i:s){
            System.out.println(i);
        }
    }
}
​

补充:

通过单个数组简易实现不重复随机数生成,先上源码。


public static int[] getRandomRes(int[] source,int size){
    if (source == null && size > source.length) {
        return;
    }
    int[] result = new int[size];
    Random random = new Random();
    for (int i = 0; i < size; i++) {
        int randomIndex = random.nextInt(source.length - 1 - i);
        int randomRes = source[randomIndex];
        result[i] = randomRes;
        int temp = source[randomIndex];
        source[randomIndex] = source[source.length - 1 - i];
        source[source.length - 1 - i] = temp;
    }
    return result;
}

下面看图解,数字为数组的index。

黑色数字表示能随机到的数,红色代表不能随机到数。
因此只能随机到index:0~4的数,假设是2,然后将2与index5互换位置。

此时结果result[] = {2}

继续循环

从前index:0~3中循环,假设取出index0,与index4互换,此时结果为result = {2,0},依次类推。

优点:简单快捷
缺点:每次无法取到最后一个数。

不断随机,使用Set去重


public Set<Integer> getRandomSet(int size,int max){
    Random random= new Random();
    Set<Integer> result= new LinkedHashSet<Integer>();
    while (generated.size() < size)
    {
        Integer next = rng.nextInt(max) + 1;
        generated.add(next);
    }
}

此处使用LinkedHashSet保证插入顺序与结果相同。

到此这篇关于Java案例实现不重复的随机数的文章就介绍到这了,更多相关Java不重复随机数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java案例实现不重复的随机数

本文链接: https://www.lsjlt.com/news/144736.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java案例实现不重复的随机数
    需求:获得十个1-20的随机数,要求随机数不能重复,存储到集合中并遍历 分析: 1.创建Set集合对象,可以使用HashSet也可以使用TreeSet,区别在于TreeSet是排序后...
    99+
    2022-11-13
  • java生成不重复的随机数
    java中要使生成的随机数不重复可以将已经生成的随机数放入到数组中,每次生成随机数时与数组的内容比较是否相等,相等则重新生成,不相等则存入数组。示例代码如下(生成10之内的4个不相等的整数): (推荐学习:java课程)p...
    99+
    2017-09-04
    java入门 java
  • 用Java生成N个不重复的随机数,3种实例
    1、Random类和Set集合来完成 Java实现生成n个不重复的随机数可以使用Java中的Random类和Set集合来完成 具体代码如下: import java.util.HashSet;import java.util.Rand...
    99+
    2023-08-19
    java 算法 数据结构
  • php range 不重复随机数怎么实现
    本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php range 不重复随机数怎么实现?PHP生成不重复随机数的几种方法方法一:<php $numbers = range (1,50); //shuff...
    99+
    2022-10-26
  • php range不重复随机数如何实现
    这篇文章主要介绍“php range不重复随机数如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php range不重复随机数如何实现”文章能帮助大家解决问题。php range实现不重复随机...
    99+
    2023-07-04
  • java生成不重复随机数的方法
    Java中产生随机数调用java.lang下面Math类中的random()方法产生随机数新建一个文件后缀名为java的文件,文件名取为MyRandom,该类中编写如下的代码:public class MyRandom { public s...
    99+
    2016-11-18
    java基础 java
  • java怎么生成不重复随机数
    java中要使生成的随机数不重复可以将已经生成的随机数放入到数组中,每次生成随机数时与数组的内容比较是否相等,相等则重新生成,不相等则存入数组。 (推荐学习:java课程)示例代码如下(生成10之内的4个不相等的整数):pub...
    99+
    2022-04-18
    java入门 java
  • java中产生随机不重复数的方法
    java中产生随机不重复数的方法:根据min和max,生成n个不重复的随机数。(注:范围[min,max],n ...
    99+
    2021-01-15
    java
  • 使用java怎么实现每次生成不重复的随机数
    使用java怎么实现每次生成不重复的随机数?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发;3...
    99+
    2023-06-14
  • java生成不重复的随机数方法总结
    本文给大家介绍如何在JAVA中实现随机无重复数字的功能。(相关视频课程推荐:java视频教程)为了更好地理解这个题意,我们先来看下具体内容:生成一个1-100的随机数组,但数组中的数字不能重复,即位置是随机的,但数组元素不能重复。在这里呢,...
    99+
    2018-12-23
    java
  • java取不重复随机数的方法是什么
    在Java中,可以使用Random类和HashSet来生成不重复的随机数。具体步骤如下:1. 导入Random类和HashSet类:...
    99+
    2023-08-24
    java
  • java随机生成1~15之间不重复的数字
    函数说明:random()方法用于返回一个随机数,随机数范围为 0.0 =< Math.random < 1.0。例如:产生一个0~9之间的整数为:(int)(Math.random()*10);产生一个1~10之间的整数则可以写成:(in...
    99+
    2016-03-22
    java 随机 不重复 数字
  • Java编程实现从给定范围内随机N个不重复数生成随机数的方法小结
    本文实例讲述了Java编程实现从给定范围内随机N个不重复数生成随机数的方法。分享给大家供大家参考,具体如下:一、JAVA中生成随机数的方式在j2se中使用Math.random()令系统随机选取一个0~1之间的double类型小数,将其乘以...
    99+
    2023-05-31
    java 随机数 ava
  • java中使用什么方法生成不重复随机数
    方法一:调用java.lang下面Math类中的random()方法产生随机数新建一个文件后缀名为java的文件,文件名取为MyRandom,该类中编写如下的代码:public class MyRandom { public sta...
    99+
    2016-03-21
    java基础 java 方法 不重复 随机数
  • java语言实现权重随机算法完整实例
    前言现在app就是雨后春笋,嗖嗖的往外冒啊,有经验的、没经验的、有资历的、没资历的都想着创业,创业的90%以上都要做一个app出来,好像成了创业的标配。做了app就得推广啊,怎么推,发券送钱是最多用的被不可少的了,现在好多产品或者运营都要求...
    99+
    2023-05-30
    java 权重随机算法 算法
  • Java编程实现生成给定范围内不重复随机数的方法小结
    本文实例总结了Java编程实现生成给定范围内不重复随机数的方法。分享给大家供大家参考,具体如下:在Java中的Math类中存在一个random()方法,该方法默认生成0.0到1.0之间的double型随机数;经过稍微处理,就可以产生我们需要...
    99+
    2023-05-31
    java 随机数 ava
  • c语言如何生成不重复的随机数
    在C语言中,可以使用以下步骤生成不重复的随机数:1. 引入头文件 `stdlib.h` 和 `time.h`。```c#include #include ```2. 在程序的开始处使用 `srand` 函数初始化随机数种子,以确保每次运...
    99+
    2023-08-11
    c语言
  • 生成8位随机不重复的数字编号的方法
    复制代码 代码如下: package com.jjinfo.common.util; import java.util.Arrays; import java.util.Random...
    99+
    2022-11-15
    8位随机 数字编号
  • Python带权重随机数的简单实现
    该方法是常用的带权重随机数生成方法,思路是先将权重值求和total,在0与权重和total之间获得一个随机数rd,遍历权重字典,累加其权重值weight_sum, 当rd小于或等于weight_sum时,返回当前的权重key值,示例代码如下...
    99+
    2023-01-31
    随机数 权重 简单
  • Java生成的随机数靠谱吗?多少次会重复?
    目录一、前言二、利用Math.random()生成六位随机数测试三、利用new Random().nextInt(999999)生成随机数四、利用ThreadLocalRandom....
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作