`
xysuxiaoguang
  • 浏览: 2422 次
社区版块
存档分类
最新评论

随机数

    博客分类:
  • java
阅读更多
package com.Annual.util;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.Random;
import java.util.Set;

public class AnnualUtil {

/**
* 产生 0 到 max 的随机数
* @param max
* @return
*/
public static int random(int max) {
Random random = new Random();
return random.nextInt(max);
}

/**
* 产生  min 到 max 的随机数 min不能为0
* @param min
* @param max
* @return
*/
public static int random(int min, int max) {
Random random = new Random();
return random.nextInt(max) % (max - min + 1) + min;
}


/**
     * 生成drawPeople个不同的随机数,且随机数区间为[0,numPeople)
     * @param n
     * @return
     */
    public static Set<Integer> getDiffSetNO(int drawPeople  , int numPeople){
     
    Set<Integer> randomSet = new HashSet<>();
    //随机生成drawPeople个随机数
//用set加死循环保证生成 {drawPeople} 个不重复的随机数
while (true) {
randomSet.add(new Random().nextInt(numPeople));
if(randomSet.size() >= drawPeople){
break;
}
}
        return randomSet;
    }

/**
     * 生成n个不同的随机数,且随机数区间为[0,10)
     * @param n
     * @return
     */
    public static ArrayList getDiffNO(int n){
        // 生成 [0-n) 个不重复的随机数
        // list 用来保存这些随机数
        ArrayList list = new ArrayList();
        Random rand = new Random();
        boolean[] bool = new boolean[n];
        int num = 0;
        for (int i = 0; i < n; i++) {
            do {
                // 如果产生的数相同继续循环
                num = rand.nextInt(n);
            } while (bool[num]);
            bool[num] = true;
            list.add(num);
        }
        return list;
    }
   

public static void main(String[] args){
System.out.println(AnnualUtil.random(4));
System.out.println(AnnualUtil.random(3,4));

Random ran1 = new Random(11);
        System.out.println("使用种子为10的Random对象生成[0,10)内随机整数序列: ");
        for (int i = 0; i < 10; i++) {
            System.out.print(ran1.nextInt(1000) + " ");
        }
       
        System.out.println();
        Random ran2 = new Random(11);
        System.out.println("使用另一个种子为10的Random对象生成[0,10)内随机整数序列: ");
        for (int i = 0; i < 10; i++) {
            System.out.print(ran2.nextInt(1000) + " ");
        }
       
        // 另外,直接使用Random无法避免生成重复的数字,如果需要生成不重复的随机数序列,需要借助数组和集合类
        ArrayList list=AnnualUtil.getDiffNO(20);
        System.out.println();
        System.out.println("产生的n个不同的随机数getDiffNO:"+list);
       
        Set<Integer> randomSet = AnnualUtil.getDiffSetNO(20, 100);
        System.out.println();
        System.out.println("产生的n个不同的随机数getDiffSetNO:"+randomSet);
}
}
分享到:
评论

相关推荐

    verilog产生高斯随机数

    在数字电路设计中,有时我们需要模拟随机事件,这就需要用到随机数生成器。Verilog作为一种硬件描述语言,可以用来实现这样的功能。本篇文章将探讨如何在Verilog中生成高斯随机数,具体步骤包括利用移位寄存器产生...

    抽取柯西分布随机数_matlab_柯西_生成柯西分布随机数_

    在MATLAB中生成柯西分布随机数是一项常见的统计模拟任务,尤其在处理异常值或噪声数据时,柯西分布常被用作一个有用的模型。本文将深入探讨如何使用MATLAB来生成柯西分布的随机数,同时解释其背后的数学原理。 柯西...

    易语言取不重复随机数

    在易语言中,生成不重复随机数是一项常见的需求,特别是在游戏开发、数据分析或者算法设计等场景。本文将深入探讨如何在易语言中实现取不重复随机数的功能。 首先,我们需要了解易语言中的随机数生成函数。在易语言...

    生成随机数小程序

    在IT领域,生成随机数是一项基础且重要的任务,广泛应用于各种场景,如模拟实验、密码学、游戏开发、数据分析等。本项目名为“生成随机数小程序”,它提供了一个便捷的工具,能够根据用户需求生成指定数量的随机数,...

    易语言取指定位数的随机数

    在编程领域,生成随机数是一项常见的任务,尤其在游戏开发、加密算法、模拟实验和测试用例中。易语言作为一款中国本土开发的、面向普通用户的编程语言,它提供了丰富的函数和模块来帮助用户实现各种功能,其中包括...

    MFC实现产生随机数

    总结起来,通过MFC在VC++中实现生成随机数的功能,你需要创建一个MFC对话框应用程序,添加一个按钮控件,处理按钮点击事件,然后在事件处理函数中使用C++的标准库生成随机数。这个过程涉及了MFC的消息映射、控件交互...

    VB随机数小程序

    在VB(Visual Basic)编程语言中,生成随机数是一项基础且重要的技能,尤其对于初学者而言,理解并能熟练运用随机数生成函数是提升编程能力的关键步骤。"VB随机数小程序"这个项目正好为我们提供了一个学习和实践的...

    随机数自检-扑克检测

    在IT行业中,随机数生成是许多算法和应用的基础,如模拟、加密、游戏开发等。在C#编程语言中,生成随机数的过程涉及到System.Random类的使用。本项目"随机数自检-扑克检测"旨在通过一个实际的扑克牌检测案例来验证...

    易语言猜随机数源码

    "易语言猜随机数源码"是一个教学示例,旨在帮助用户理解如何在易语言中生成随机数并实现一个简单的猜数字游戏。在这个游戏中,计算机将生成一个随机数,然后让用户尝试猜测这个数字,直到猜对为止。 首先,我们需要...

    java 求最大的随机数

    在Java编程语言中,生成随机数是一项常见的任务,特别是在各种算法和模拟场景中。要找到“最大的随机数”,首先我们需要了解Java中生成随机数的方法。Java提供了`java.util.Random`类来生成随机数。下面我们将深入...

    计算统计学课程作业30种随机数发生器(组合随机数发生器)matlab代码

    在计算统计学中,随机数生成器是一种至关重要的工具,特别是在模拟实验、数据分析以及建模等领域。本课程作业聚焦于30种不同的随机数发生器,其中包括5种基础的随机数发生器及其两两组合形成的25种组合随机数发生器...

    excel中批量设置随机数

    默认情况下,Excel提供的RAND()函数会生成0到1之间的随机浮点数,每次打开工作簿时,这个函数都会重新计算,产生新的随机数。然而,这并不符合某些场景下对稳定随机数的需求。这时,我们可以借助VBA(Visual Basic ...

    汇编语言产生随机数并运算

    在“汇编语言产生随机数并运算”这个主题中,我们将探讨如何利用汇编语言生成随机数以及如何对这些随机数进行算术运算。 随机数在各种应用程序中都有广泛的应用,比如模拟、加密、游戏、统计计算等。在汇编语言中,...

    S7-300生成随机数.rar

    这个“S7-300生成随机数.rar”压缩包很可能包含了关于如何在S7-300 PLC中实现随机数生成的详细教程或代码示例。 生成随机数在工业控制中有多种用途,例如模拟真实世界的不确定性、进行测试与调试、或者在一些随机化...

    Winform-随机数生成器

    在这个"Winform-随机数生成器"项目中,我们关注的核心是利用编程技术来生成各种类型的随机数,包括序列号、纯数字以及字符串。这个工具的灵活性在于用户能够自定义生成纯数字时的位数,以满足不同场景的需求。 首先...

    微信小程序源码(随机数块生成)

    在这个项目中,我们关注的是一个基于微信小程序的源码,它涉及到随机数块生成的功能。源码是开发者自研的,采用了一种名为uni-app的框架来构建。 uni-app是一个跨端开发框架,它允许开发者用一套代码同时适配iOS、...

    0-100随机数生成器

    【随机数生成器详解】 随机数在计算机科学中扮演着重要的角色,特别是在模拟、加密、游戏开发、统计分析等领域。"0-100随机数生成器"是一个使用JAVA编程语言实现的工具,它能够生成0到100之间(包括0和100)的随机...

    国密认证随机数测试工具rnd-20190527.zip

    《国密认证随机数测试工具详解》 在信息安全领域,随机数生成器是至关重要的组件,广泛应用于加密、签名、安全协议以及POS机交易验证等多个环节。国密认证的随机数测试工具,如"rnd-20190527.zip",是确保随机数...

    产生随机数的一个小程序

    在IT领域,随机数生成是计算任务中常见且至关重要的部分。随机数广泛应用于各种场景,包括模拟与仿真、加密算法、游戏开发、统计分析、机器学习等。在这个"产生随机数的一个小程序"中,我们可以从不同的文件名推测出...

Global site tag (gtag.js) - Google Analytics