随机随机数(彩票概率原理)的详细说明

电脑杂谈  发布时间:2020-06-22 12:07:48  来源:网络整理

随机数生成原理_先天八卦数原理_短链接生成原理

java.util.Random是Java中的一个类,可以生成随机数,并且可以通过传入相关参数来控制随机数的范围,无论是在实际开发中还是在学习生活中,随机随机数都可以发挥相对大作用. 所以今天,让我们学习如何使用Random!

我相信您一定赢得了大奖!因此,作为一名程序员,您是否曾经想过抽奖活动的大转盘,或者如何实现九宫格?如何控制中奖的可能性?按照我的步骤,我将向您展示Random的魅力!

从源代码中可以看出,Random类具有两种构造方法,一种没有参数,另一种具有长型参数(称为: seed),那么这两种有什么区别?

没有参数: 完全随机

带参数: 具有输入参数()的随机对象生成的随机数是固定的

先天八卦数原理_随机数生成原理_短链接生成原理

对于栗子,当实例化两个Random对象时,如果参数()以10传递,则由这两个Random(random1和random2)对象生成的随机数,第一个由random1生成的随机数=由random2生成的第一个随机数,由random1生成的第二个随机数= random2生成的第二个随机数随机数生成原理,代码如下:

        //实例化Random对象
        Random random = new Random();
        Random random2 = new Random();
        
        Random random3 = new Random(10);
        Random random4 = new Random(10);
 
        for (int i = 0; i < 10; i++) {
            int number=random.nextInt();
            int number2=random2.nextInt();
            int number3=random3.nextInt();
            int number4=random4.nextInt();
            //输出格式是:  无随机数  无随机数  有随机数  有随机数
            System.out.println(number+"_"+number2+"___"+number3+"_"+number4);
        }

输出结果:

1075217332 -2135067742-1157793070 -1157793070

-944171219 -8378859421913984760 1913984760

短链接生成原理_先天八卦数原理_随机数生成原理

1314450533 14130881851107254586 1107254586

215653709 -3376126871773446580 1773446580

1737734575 1766714434254270492 254270492

从五组数字的输出中可以清楚地发现,由无核随机数生成的随机数是完全随机的(没有任何连接),并且由两个随机对象生成的随机数传递给了是相同的,并且得出结论随机数生成原理,由随机对象传递到中生成的随机数是固定的

注意: 不会影响随机数的范围

先天八卦数原理_随机数生成原理_短链接生成原理

Random的几种常见方法相对简单. 这只是最常用的三个.

这里是一种获取多种类型的int数据的方法: 默认范围[int最小值,int最大值],0〜最大范围[0,max),自定义范围[min,max),自定义范围[min, max],当然,这里仅展示一些最常用的,还有许多其他类型,可以通过不同的公开声明进行更改

//生成默认范围(int类型的范围)的随机数
int i = random.nextInt();//[int最小值,int最大值)
//生成自定义 0~最大范围(max)的正整数随机数 [0,max)
int i = random.nextInt(max);//[0,10)
//生成自定义范围随机数 [min , max) 
//公式:  .nextInt(max) % (max - min) + min
int i=random.nextInt(10)%(10-5)+5;//[5,10)
//生成自定义范围随机数 [min , max]
//公式:  .nextInt(max) % (max - min + 1) + min
int i = random.nextInt(10) % (10 - 5 + 1) + 5;//[5,10]

这很容易理解,它是以相同的概率直接生成是非题

boolean b = random.nextBoolean();

短链接生成原理_先天八卦数原理_随机数生成原理

nextDouble()生成的随机数范围是[0,1.0)的十进制数

double d = random.nextDouble();

随机数在许多地方使用. 我个人最常用的是抽奖方式. 想要控制各种奖励概率的彩票程序. 使用随机数更合适!

获胜概率控制的原理: 通过获得一个随机数,然后使用if语句首先定义获胜间隔,您可以达到公平的概率效果!

        //首先在 [1,100] 区间(100个数)随机获取一个数
        int i = random.nextInt(100) % (100 - 1 + 1) + 1;
        System.out.println("当前获取的随机数:" + i);
        //然后根据中间概率来设置 if 条件语句的区间,达到效果
        if (i >= 80) {// [80,100] 一等奖
            System.out.println("恭喜,一等奖!");
        } else if (i >= 50) { // [50,80] 二等奖
            System.out.println("恭喜,二等奖!");
        } else {//[1,50]  谢谢惠顾
            System.out.println("很遗憾,没有中奖!");
        }

        //首先在 [1,6] 区间(6个数)随机获取一个数
        int i = random.nextInt(6) % (6 - 1 + 1) + 1;
        System.out.println("骰子点数:" + i);  

的正面和背面也是如此. 随机数范围和中奖概率可以根据实际需要进行调整!


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-254487-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...