精华内容
下载资源
问答
  • 使用JPEG图像作为熵源的Java随机数生成器(TRNG)。 这个怎么运作 它使用两个不同的输入图像(具有相同的分辨率)。 这些图像被认为是独立的,因为它们是在两个不同的时刻捕获的。 它使用,因此,如果两个图像的...
  • 每天的日期宜和忌是怎么决定的。肯定不是这种。 public static void main(String[] args) { //数据源 String f = "搬家、装修、结婚、入宅、领证、动土、出行、旅游、破土、修造、嫁娶、移徙、盖屋、冠笄、开池...

    每天的日期宜和忌是怎么决定的。肯定不是这种。

    public static void main(String[] args) {

    //数据源

            String f = "搬家、装修、结婚、入宅、领证、动土、出行、旅游、破土、修造、嫁娶、移徙、盖屋、冠笄、开池、竖柱、归宁、放水、针灸、置产、开业、开工、订婚、安葬、开张、求嗣、赴任、祈福、祭祀、开市、纳财、启钻、除服、纳采、立券、求医、塞穴、斋醮、招赘、行丧";

            String[] a = f.split("、");

    //生成不重复的s个数量的[0-n)区间的随机数
            ArrayList<Integer> list=getDiffNO(40, 5);
            
            //取值-赋值
            String[] aa = new String[list.size()];
            for (int i = 0; i < list.size(); i++) {
                aa[i]=a[list.get(i)];
            }
            //结果
            System.out.println(Arrays.toString(aa));

            System.out.println("结束");
        }

        /**
         * 生成不重复的s个数量的[0-n)区间的随机数
         * @param n 取值的数字区间[0-n)
         * @param s 获取的随机数数量
         * @return
         */
        private static ArrayList<Integer> getDiffNO(Integer n, Integer s) {
            //返回的list
            ArrayList<Integer> list = new ArrayList<Integer>();
            Random rand = new Random();
            boolean[] bool = new boolean[n];
            int num = 0;
            for (int i = 0; i < s; i++) {
                do {
                    // 产生的数相同继续循环
                    num = rand.nextInt(n);
                } while (bool[num]);
                bool[num] = true;
                list.add(num);
            }
            return list;
        }

    展开全文
  • Java 随机数

    2020-07-08 23:39:10
    Java里的随机数怎么生成的?Java 随机数生成的两种方式java.lang.Mathjava.util.Random Java 随机数生成的两种方式 在开发过程可能会用到随机数的生成,一般我们通过在网上进行简单搜索都可以找到答案,但是有...

    Java 随机数生成的两种方式

    在开发过程中可能会用到随机数的生成,一般我们通过在网上进行简单搜索都可以找到答案,但是有时候用到Math类提供的方法,有时候又是用到Random类提供的方法,那在Java中到底有几种生成随机数的方式?

    Java 里用于生成随机数的方式有两种,通过 java.lang.Mathjava.util.Random 两个类可以生成随机数。

    这里做一下笔记:

    java.lang.Math

    • Math.random()
      Math.random() 返回 [0.0 , 1.0) 的double值

    • 如果想指定范围怎么办?
      (Math.random() * ((max - min) + 1)) + min

      可以一步一步的拆解下这个表达式:
      Math.random() * ( max - min ) 返回的数值范围应该是 [ 0, (max-min) ),比如要获取 [5,10] 之间的随机数,放在这个表达式里,应该是 Math.random() * 5 = [ 0, 5 ) , 为了达到 [ 5, 10 ] 的范围,这里需要加上 min 的值, 即 Math.random() * (max - min) + min, 但是这个表达仍然不能达到 10 这个范围,所以要再 加1,最后的结果就是 (Math.random() * ((max - min)+1) + min

    java.util.Random

    Random 类可以用于获取多种类型的随机数,int, float, double, long, boolean.

    拿 int 来说,我们可以通过调用 nextInt() 来获得随机数

    • nextInt() 返回的是[-2^32 , 2^32]
    public int nextInt() {
        return next(32);
    }
    
    protected int next(int bits) {
    	long oldseed, nextseed;
    	AtomicLong seed = this.seed;
    	do {
    	    oldseed = seed.get();
    	    nextseed = (oldseed * multiplier + addend) & mask;
    	} while (!seed.compareAndSet(oldseed, nextseed));
    	return (int)(nextseed >>> (48 - bits));
    }
    
    • nextInt(int bound) 返回的是 [0. bound )
    public int nextInt(int bound) {
        if (bound <= 0)
            throw new IllegalArgumentException(BadBound);
    
        int r = next(31);
        int m = bound - 1;
        if ((bound & m) == 0)  // i.e., bound is a power of 2
            r = (int)((bound * (long)r) >> 31);
        else {
            for (int u = r;
                 u - (r = u % bound) + m < 0;
                 u = next(31))
                ;
        }
        return r;
    }
    

    总结: 对于简单的生成随机数来说,直接使用现成的方法就可以,如果希望获取某一范围内的随机数的话可以通过这两种方式:

    1. Math.random() * ((max - min)+1) + min
    2. random.nextInt(max - min) + min
    展开全文
  • 产生 1-100 数字随机数 new Random() Random 类有两个构造器,一个空的构造器是以当前时间为随机种子,另一个可以传一个 long 类型的种子。 以后产生的每个随机数都与前一个随机数有关 Random rm = new Random()...


    在这里插入图片描述

    目标

    产生 1-100 数字中的随机数

    new Random()

    Random 类有两个构造器,一个空的构造器是以当前时间为随机种子,另一个可以传一个 long 类型的种子。

    以后产生的每个随机数都与前一个随机数有关

    Random rm = new Random();
    
    for (int i = 0; i < 5; i++) {
    	int num = rm.nextInt(100)+1;
    	System.out.println(num);
    }
    

    Math.random()

    这个做法本来返回的是 double 类型的范围在[0.0,1.0)之间的随机数,可以借助强制转化得到 int

    int max = 100;
    int min = 1;
    
    int num = (Math.random() * (max - min) + min);
    System.out.println(num);
    

    currentTimeMillis()

    准确的来说这不是产生随机数的接口,却是产生随机数的一种思路,思路就是通过当前时间戳(精确到毫秒级别),然后取模。这样就相当于随机了

    int max = 100;
    int min = 1;
    
    int num = (int) (randomNum % (max - min) + min);
    System.out.println(num);
    

    写在后面

    一般第一种和第二种最常用,我个人喜欢第二种,代码最少

    展开全文
  • java中,使用Random类可以生成随机数,通常是int item = ran.nextInt(33); item的值在[0,33)之间,假如我们想生成指定区间的随机数,我们该怎么操作呢,比如指定生成 [10,32)之间的随机数:int item = ran.nextInt...

    在java中,使用Random类可以生成随机数,通常是int item = ran.nextInt(33); item的值在[0,33)之间,假如我们想生成指定区间的随机数,我们该怎么操作呢,比如指定生成 [10,32)之间的随机数:

    int item = ran.nextInt(22)+10; 

    巧用范围,即可满足我们的需求。

    再有一个例子,比如我们想生成[1,32)之间,不重复的7个随机数,我们该怎么操作呢:

    方法:

    package javapjt;
    import java.util.ArrayList;
    import java.util.Random;
    import java.util.Scanner;
    
    public class rannum {
    	public static void main(String[] args) {
    		ArrayList<Integer> list = new ArrayList<Integer>();
    		Random ran = new Random();
    		Scanner sc = new Scanner(System.in);
    		int num = 7;
    		while(list.size() < 7){
    			int item = ran.nextInt(32)+1;
    			boolean addflag = true;
    			for(int i = 0;i<list.size();i++) {
    				int itemnum = list.get(i);
    				if(item == itemnum) {
    					addflag = false;
    				}
    			}
    			if(addflag) {
    				list.add(item);
    			}
    		}
    		for(int i = 0;i<list.size();i++) {
    			int itemnum = list.get(i);
    			System.out.println(itemnum);
    		}
    	}
    }
    
    不断的运行测试,可验证上述代码的正确性。


    展开全文
  • Java生成不重复随机数

    2015-04-16 14:32:35
    在开发常常会遇到要生成随机数,要求不重复并且效率又高,怎么实现呢,自己的一些算法设计分享给大家。以生成8位数的随机值为例: import java.util.Random; public class RadomUtil { ...
  • php生成不重复随机数的方法:首先利用range函数创建一个包含指定范围的元素的数组;然后利用shuffle函数把数组的元素按随机顺序重新排列;最后取出数组的一段元素即可。实现原理:将数组顺序随即打乱 ,然取该...
  • JAVA中利用Math.random生成随机数

    千次阅读 2016-09-25 01:35:52
    吹水环节:刚升大二 刚学习JAVA 此前学过C的基础 据说写博客能帮自己复习 还能发现很多有相同经历的人 完 我实在编不下去了 开始吧 之前没写过博客 也不知道代码片怎么用 我就先随便写了 如果有什么不对的地方 你他...
  • java类程序可以使用UUID、UNID生成永不重复的32位随机数,但在页面上的js文件可以有什么方法生成类似的随机数呢?另外Math.random()方法生成随机数包含0和1么?求大神支招!不胜感激!
  • 一、产生随机数 1、Java.lang.Math包中的random( )方法 static double random() 伪随机数返回带正号的... 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 ...
  • java随机数random怎么

    2021-06-24 22:13:46
    Java中生成随机数有几种方式 Java.util.UUID-生成唯一的字符串 可以通过UUID类生成唯一的字符串,并且是全局唯一,所有的电脑产生的字符串都是不同的。它的使用方式如下: String uuid = UUID.randomUUID()....
  • @Test public void test24(){ //假如要获取1-10位的随机数,每一位由a-z或A-Z组成 Random random = new Random(); StringBuffer sb = new StringBuffer(); //获得随机位数1-10 int weishu =...
  • 毕业至今两年一直在A金融公司做Java开发,在一个公司时间长了我也想换个环境,于是在网上投了简历,选择公司我的目标很明确还是金融领域,最好能进大一点的公司(这一点人各有志,有的人喜欢在小型公司),我一共...
  • 怎样生成随机数

    2012-10-22 20:41:00
    突然脑海有一个念头:如果不用库函数,我们怎么生成随机数? 如果是在现实生活当中,我会这样做: 几张白纸分割成很多小份,然后每张写上数字, 隐藏数字,形成纸球,放在一个瓶子里, 摇几下,然后用手抽一张...
  • 今天在做一个Java项目, 用到了使用一组不重复的随机数问题, 不管怎么随机数里面总有几个是重复的. 于是上网去找资料, 在网上找到的资料大部分都是一个思路: 网上的思路一:(性能不理想) 先生成一个随机数, ...
  • 相反,它是有关一个不太常见的锁争用问题的帖子,该问题隐藏在Java API的随机数生成。 要打开该主题,让我们开始研究如何在java.util.Random类处理并发。 java.util.Random的实例是线程安全的。 ...
  • 分析怎么把int型添加到集合去 ArrayList<...生成6个1-33之间的随机数,并且添加到集合,并遍历集合 package cn.itcast.day04.demo02; import java.util.ArrayList; import java.util.Ran...
  • Java调用Matlab生成的jar包中的函数

    千次阅读 2019-01-08 15:54:23
    在网上没发现这方面的文章,对于初学者来说是很不友好滴,故作此文,以便自己和萌新查阅。...这是我matlab的函数,传入一个数值,返回根据数值生成随机数向量 将所需jar包都导入依赖后,实例一...
  • 方案一: 如果没有并发的话,订单号只在一个线程中产生,不同订单的时间戳不同, 时间戳+随机数(自增数)区分订单 如果有并发的话,并且订单号在同一台主机产生多个进程,只要把进程的ID添加到序列号中... java中获取
  • 在软件开发中有时会遇到使用随机数的情况(部分验证码就是...Java中包含两类Random,一种是java.util.Random中的,采用的是伪随机(有规则的随机),相同种子数的Random对象,相同次数生成的随机数字是完全相同的。此R
  • 日常开发,Git的基本常用命令 Git进阶之分支处理 Git进阶之处理冲突 Git进阶之撤销与回退 Git进阶之标签tag Git其他一些经典命令 美团面试经历(还原最真实的4面) 美团一面: 1、自我介绍 2、聊项目相关 介绍...
  • Java项目通常是通过Math.random方法和Random类来获得随机数。Random类不含参构造方法每次都使用当前时间作为种子,而含参构造方法是以一个固定值作为种子。 随机数是种子经过计算生成的。 不含参的构造函数...
  • 列举一下不会的 ...3.java中volatile 4.算法: 1,2,3的随机数生成器都是三分之一 设计一个1-7都是 七分之一的随机数生成器 5.算法二: 二位数组: 一个人从左上到右下的情况有多少种? ...
  • java 简单模拟抢红包

    千次阅读 2016-10-01 13:03:44
    那么,怎么利用随机数做到公平了,想到两种比较好的办法,假如是5个人,抢10块钱1,首先生成5个随机数,然后利用每个随机数在5个随机数中所占的比例分配钱数。 2,首先生成4个随机数,然后排序,将这4个随机数放在0~...
  • java 简单模拟抢红包2

    千次阅读 2016-10-01 13:17:22
    那么,怎么利用随机数做到公平了,想到两种比较好的办法,假如是5个人,抢10块钱1,首先生成5个随机数,然后利用每个随机数在5个随机数中所占的比例分配钱数。 2,首先生成4个随机数,然后排序,将这4个随机数放在0~...
  • java 抢红包的随机钱数分配问题

    千次阅读 2016-09-29 21:40:21
    那么,怎么利用随机数做到公平了,想到两种比较好的办法,假如是5个人,抢10块钱 1,首先生成5个随机数,然后利用每个随机数在5个随机数中所占的比例分配钱数。 2,首先生成4个随机数,然后排序,将这4个随机数放在...
  • JAVA程序员来说,我们都知道java.lang.Math类有一个random的静态方法来生成随机数。这个方法生成一个double的随即数,这个数的范围在(0.0,1.0)之间,通过乘上某个数来完成0至某个数之间的随机数。    可是...
  • 如何在各种编程语言中生成安全的随机数如何在各种编程语言中生成安全的随机数 C语言产生有范围随机数需要random函数。 random即随机数发生器,使用之前需要使用Randomize语句进行随机数种子的初始化。RANDOM产生的是...
  • 我用的echart模板想生成两个相似的图表,一个在左一个在右,但是有一个显示不出来,随便将哪一个注释掉,另外一个都能正常显示,不过显示的数据一闪一闪的,像是程序将两个数据...
  • 1.验签流程:后台生成签名,时间戳,随机数给前端,前端怎么验签。是用同样的验签规则,也生成一个签名,与后台比较吗 2.入参url是个啥:前端调用该接口的域名 3.下图这个鸟玩意,要不要填,填什么 三,依赖 ...

空空如也

空空如也

1 2
收藏数 33
精华内容 13
关键字:

java中随机数怎么生成

java 订阅