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);

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

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-254487-1.html

c语言如何产生彩票随机数,随机随机数(彩票概率原理)的详细说明相关推荐

  1. c语言随机产生100个字母,C语言实现生成1到100随机数的方法

    C语言实现生成1到100随机数的方法 发布时间:2020-06-29 14:08:59 来源:亿速云 阅读:7054 作者:Leah 本篇文章为大家展示了C语言实现生成1到100随机数的方法,代码简明 ...

  2. c语言 等概率随机数,随机数函数取样与概率

    非常感谢原版作者! 转自:http://www.cnblogs.com/wuyuegb2312/p/3141292.html#title4 本节主要受到<编程珠玑>第12章随机取样问题的启 ...

  3. html语言随机数,产生随机数的常用方法

    简单随机抽样是一种最简单.最基本的抽样方法,简单随机抽样有两种选取个体的方法:放回和不放回,我们在抽样调查中用的是不放回抽样,常用的简单随机抽样方法有抽签法和随机数法.例:人们打桥牌时,将洗好的扑克牌 ...

  4. python生成指数分布随机数_Nim 语言入门之实现指数分布的随机数

    这一节,我们使用 Nim 语言来实现符合指数分布的随机数. Nim 语言是一门高效而优雅的系统级编程语言,可以编译成 C, C++, javascript 等后端. 官网如下:https://nim- ...

  5. Java生成随机数原理_Java中随机数的产生方式与原理详解

    Java中随机数的产生方式与原理 查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0- ...

  6. java如何写1 6的随机数_随机数的产生方法 关于Java里产生1-6随机数的方法

    11. 在一个双链表中结点p之后插入一个结点s的操作是( ). A. s->right=p只有一条路不能选择--那就是放弃的路:只有一条路不能拒绝--那就是成长的路.有些事,有些人,就应该忘记, ...

  7. R语言使用caret包构建随机森林模型(random forest)构建回归模型、通过method参数指定算法名称、通过ntree参数指定随机森林中树的个数

    R语言使用caret包构建随机森林模型(random forest)构建回归模型.通过method参数指定算法名称.通过ntree参数指定随机森林中树的个数 目录

  8. R语言决策树、bagging、随机森林模型在训练集以及测试集的预测结果(accuray、F1、偏差Deviance)对比分析、计算训练集和测试集的预测结果的差值来分析模型的过拟合(overfit)情况

    R语言决策树.bagging.随机森林模型在训练集以及测试集的预测结果(accuray.F1.偏差Deviance)对比分析.计算训练集和测试集的预测结果的差值来分析模型的过拟合(overfit)情况 ...

  9. 随机森林c语言编程,一种基于随机森林的C语言源代码静态评分方法与流程

    本发明涉及评分领域及机器学习领域,它特别涉及一种基于随机森林的c语言源代码静态评分的构建方法. 背景技术: c语言源代码静态评分是指对根据一定的题目描述做出解答的c语言源代码进行评分.目前,主要流行的 ...

最新文章

  1. 使用Maven+Nexus+Jenkins+Svn+Tomcat+Sonar搭建持续集成环境
  2. PHP实现RPC(简版)
  3. pascal行人voc_在Pascal VOC 数据集上训练YOLOv3模型
  4. 剑指Offer之平衡二叉树
  5. IE和Windows系统中的彩蛋
  6. Vmware虚拟机win10详细安装之自定义安装
  7. 案例|工业物联网解决方案•泵站智慧云平台
  8. c语言俩小时不挂科——全程高能,没有废话
  9. Windows最值得安装的小众软件
  10. Win10下Wireless-AC 3165无法开启热点
  11. php 小偷程序 图片,一个图片地址分解程序(用于PHP小偷程序)
  12. 用Python和类的方法模拟新浪微博的批量虚假粉丝
  13. 小米手机6X简单刷成开发版启用Root权限的流程
  14. Deep Learning and the Information Bottleneck Principle 深度学习与信息瓶颈原理
  15. 小米Max2 LineageOS编译过程 ubuntu
  16. 使用WTSGetActiveConsoleSessionId()的VISTA服务与桌面交互
  17. msa2000映射到服务器,MSA2000命令行配置信息
  18. 016世界移动大会给手机回收市场带来挑战与机遇
  19. Tomcat无法启动问题解决方案
  20. 数据库总结(四):表设计之关联关系

热门文章

  1. 长亮科技发布2018年报:营收首破十亿元,直面蚂蚁金服竞争压力
  2. Linux树莓派综合应用---wiringpi库如何交叉编译
  3. codewars练习(javascript)-2021/2/1
  4. delphi 快速制作通用LiveUpdate升级程序
  5. HID蓝牙遥控器 - 支持键盘、鼠标、影音遥控器(开源)
  6. hduoj 饭卡 java_饭卡 HDU - 2546
  7. 华为服务器硬件图,华为RH2288 V3硬件简介_华为 FusionServer RH2288 V3_服务器评测与技术-中关村在线...
  8. 惠普计算机进入安全模式,惠普电脑怎么进安全模式,分享详细的操作教程起来瞧瞧...
  9. 关于hi3516DV300的VDEC一些测试
  10. C++到底还能做什么