1.Java中的方法random()可用于生成随机数,称为伪随机数生成器,它返回一个大于等于0.0、小于1.0的数(double类型),即0.0<=X<1.0 。之所以产生的数称为伪随机数,是因为它并不是真正随机的。当我们重复调用这个方法时,最终生成的数是周期性重复的。因此,理论上,生成的数不随机,但对于实际应用说,它们已经足够随机了。

但对于大多数应用程序来说,我们希望生成的随机数是整数。因此我们需要对于这个返回的数值进行转换,期望它落在我们需要的区间内。不妨假设我们需要的整数范围是[min, max],如果X是返回的随机数,可以使用下面的公式使其转换成Y,使得Y落在区间[min, max]内,即min<=Y<=max。

Y = [X * (max-min+1)] + min

对于很多应用程序来说,min的值是1,所以上式可简化为:

Y = (X * max) + 1

可以用下面的语句表达上面的通用公式:

int randomNumber = (int) (Math.floor(Math.random() * (max - min + 1)) + min);

实例(1):我们来编写一个小程序,要选出一个每年一届的春季交谊舞联欢会的中奖者,联欢会的参加者将会得到诸如M+1、M+2、M+3之类的数字进入场地。数字M的开始值由联欢会的主席确定,如果有N个选手参加,最后一个数字就是M+N。晚会的最后,我们将运行这个程序,从M+1到M+N中随机选择一个中奖者:

 1 import java.util.*;
 2
 3 class Random_test{
 4     public static void main(String[] args){
 5         int startingNumber, count, winningNumber, min, max;
 6
 7         Scanner scan = new Scanner(System.in);
 8
 9         System.out.print("Enter the starting number: ");
10         startingNumber = scan.nextInt();
11
12         System.out.print("Enter the number of party goers: ");
13         count = scan.nextInt();
14
15         min = startingNumber + 1;
16         max = startingNumber + count;
17
18         winningNumber = (int) (Math.floor(Math.random() * (max - min + 1)) + min);
19
20         System.out.print("\nThe Winning Number is " + winningNumber);
21     }
22 }

运行程序结果符合预期:

2.Java中的Random类生成随机数实例,用到Random类中的nextInt(int)方法。例如Random random = new Random() ,代码random.nextInt(100)表示生成0-100之间的随机整数,包括0但不包括100,下面例子随机获得5个[1,100]的值:

 1 import java.util.*;
 2
 3 class Random_test{
 4     public static void main(String[] args){
 5         Random random = new Random();
 6         for(int i=0; i<5; i++) {
 7             System.out.print(random.nextInt(100) + 1 + "\n");
 8         }
 9     }
10 }

运行结果符合预期:

生成区间[34,67]随机数可表示:random.nextInt(34)+34

可以总结为:

int randomNumber = random.nextInt(max - min + 1) + min;

转载于:https://www.cnblogs.com/m-chen/p/9456726.html

Java学习之生成随机数相关推荐

  1. java中如何生成随机数?

    java中如何生成随机数? package com.test.util; import java.text.SimpleDateFormat; import java.util.Date; impor ...

  2. java学习-zxing生成二维码矩阵的简单例子

    这个例子需要使用google的开源项目zxing的核心jar包 core-3.2.0.jar 可以百度搜索下载jar文件,也可使用maven添加依赖 <dependency><gro ...

  3. JAVA指定范围生成随机数

    生成[5-50]的随机数 package abc;import java.util.Random;public class Test {static int MAX=50;static int MIN ...

  4. java 按照概率生成随机数_JAVA 根据设置的概率生成随机数的方法

    import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; i ...

  5. java 按比例生成随机数_JAVA 生成随机数,并根据概率、比率

    做一个翻宝程序,通过返回数字0-5来判断中奖情况, 012345,这几个数字的出现的概率是0出现最高,1出现比0少,2出现比1少,依次下去 /** * JAVA 返回随机数,并根据概率.比率 * @a ...

  6. java中Random生成随机数

    package com.javabase.sss;import java.util.Random;public class randomkk {public static void main(Stri ...

  7. Java 按照范围生成随机数公式

    生成[min,max]范围内随机整数的通用公式为: n=rand.nextInt(max-min+1)+min.

  8. java练习之生成随机数1-10,如果是1输出“恭喜,中1等奖”,如果是2输出“恭喜,中2等奖”,如果是3输出“恭喜,中3等奖”,如果是4输出“恭喜,中4等奖”,如果是5输出“恭喜,中5等奖

    package Test;public class hh {public static void main(String[] args) {// TODO Auto-generated method ...

  9. java 随机数生成实现_Java中生成随机数的实现方法总结

    搜索热词 在实际开发工作中经常需要用到随机数.如有些系统中创建用户后会给用户一个随机的初始化密码.这个密码由于是随机的,为此往往只有用户自己知道.他们获取了这个随机密码之后,需要马上去系统中更改.这就 ...

最新文章

  1. 安卓开发中RelativeLayout中的各个属性
  2. Python基础day01【软件安装、变量的定义和使用、数据类型、标识符和关键字、输入输出、数据类型转换、运算符、PEP 8 规范】
  3. python编程狮app题库_‎Python编程狮-零基础学Python im App Store
  4. 清华计算机系和交叉信息学院,清华大学交叉信息研究院与计算机科学与技术系哪个..._考研_帮考网...
  5. leetcode:Single Number【Python版】
  6. 躺着收钱月入过万,怎样才能做到?
  7. 初探内核之《Linux内核设计与实现》笔记下
  8. 2018国庆雅礼D3T1
  9. 这款IDEA插件刷爆了技术群,群友:这用起来真酸爽~
  10. ​云原生:重新定义云时代的技术标准 | 凌云时刻
  11. 跨期套利策略(附:源码)
  12. SIM卡电气特性详解
  13. 安卓编程用什么软件_STM32用什么软件编程?
  14. 中小企业(OA)办公系统方案 huangai[VA]
  15. 药品名自动归类机器人(化药_中成药_中药材)
  16. ps4计算机,设置PS4连接电脑
  17. ltp install
  18. 读书笔记—别让情绪毁了你(插图精读本)
  19. 揭秘成都Java培训班学费
  20. JS生成条形码/二维码 barcode.js、JsBarcode

热门文章

  1. Ubuntu 防火墙配置小记
  2. 机会的度量:概率和分布
  3. vs2013 类名颜色显示黑色,无法修改
  4. PostgreSQL9.3中文手册的在线纠错
  5. C++ 输入输出流 文本文件 二进制文件读写
  6. HTML5实践之歌词同步播放器
  7. 真我新格调 勇敢使梦想×××
  8. 网易举办首届云创大会,优云软件助力司南战略
  9. JQuery:DOM操作
  10. Java三大主流框架概述--(转载)