1.Random

求50~100的随机数

public class RandomTest {public static void main(String[] args) {Random ran = new Random();for(int i=0;i<100;i++){System.out.println(ran.nextInt(51)+50);}}
}

分析 ran.nextInt(51)+50 的意义

ran.nextInt(51) 是返回一个0~50的数字,而我们要求这个数最低是50,最高是100

  1. 先考虑最坏结果:返回0,那么我们就在结果后面+50,就满足最低返回50
  2. 再考虑最好结果:返回50,我们在此结果上+50,就满足最大100的结果
  3. 最小最大结果考虑到,这就是一个指定范围的随机数

2.Math.random()

求50~100的随机数

public class MathTest {public static void main(String[] args) {//50~100for(int i=0;i<100;i++){int re = (int)(Math.random()*51+50);if(re == 50){System.out.println(re+"------");}else{System.out.println(re);}}}
}

分析(int)(Math.random()*51+50)的意义

Math.random()返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

  1. 考虑最坏结果,Math.random()返回0.0,那么+50就满足了最低50的要求
  2. 考虑最好结果,Math.random()返回0.99,0.99*51=50.49,+50等于100.49,double强转int向下转型,为100,就满足最大结果100
  3. 最小最大结果考虑到,这就是一个指定范围的随机数

特点:

  • 利用double转int类型向下转型的特性

总结:

        首先考虑最坏最好的结果,然后想办法弥补最坏结果的情况下同时也可以匹配最好的结果,

这中间就会出现一个经常在变动的数字,而随机数方法就是这个一直在变动的数字,我们只需要利用好其随机的特性,再利用数学运算弥补下其特性的不足,就可以指定范围的随机数了

Java随机数控制范围相关推荐

  1. java随机数转换_Java获取随机数的3种方法(转)

    随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Jav ...

  2. java 随机数 【指定范围】

    在Java中我们可以使用java.util.Random类来产生一个随机数发生器.它有两种形式的构造函数,分别是Random()和Random(long seed).Random()使用当前时间即Sy ...

  3. 【转载】Java异常控制机制和异常处理原则

    转载自Java异常控制机制和异常处理原则 Java异常控制机制又被称为"违例控制机制". 捕获程序错误最理想的时机是在编译阶段,这样可以彻底避免错误的代码运行.但并非所有的错误都能 ...

  4. 《快乐编程大本营》java语言训练班-第4课:java流程控制

    <快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...

  5. java 流程控制_Java流程控制

    依旧是用Xmind来显示Java流程控制的大致内容: ---------------------------------------------------- Variable举例: public c ...

  6. (转)Java随机数

    1 随机数的三种产生方式 本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 广义上讲,Java中的随机数的有三种产生方式: (01). 通过System.currentTimeMil ...

  7. 【四】Java流程控制

    Java流程控制 1. 顺序结构 2. 选择结构 3. 循环结构 `while` 语法 `do-while`循环语法: `for` 循环 三种循环结构的应用场景 `break` 跳出循环 `conti ...

  8. 狂神说学习笔记 Java流程控制

    目录 Java流程控制 1.用户交互Scanner Scanner对象 next() nextLine(): 2.顺序结构 3.选择结构 4.循环结构 5.Break & Continue 6 ...

  9. Java流程控制01 用户交互Scanner

    Java流程控制1 用户交互Scanner 1. Scanner对象 2. 测试代码 3. 比较 4. Scanner进阶使用 1. Scanner对象 1) 在Java中可以通过Scanner类来获 ...

最新文章

  1. 我的世界java路径_我的世界java路径在哪 路径有误怎么设置
  2. python调用ping命令_我可以创建一个脚本来测试是否可以在python服务器上远程使用SSH和PING命令吗? - python...
  3. 走过13,展望14----希望是个好东西
  4. bzoj1202[HNOI2005]狡猾的商人
  5. 内连接(INNER JOIN)
  6. php 安装 bzip2,php如何安装bzip2
  7. GDAL中MEM格式的简单使用示例
  8. chrome升级后无高级-断续访问
  9. 如何用Java写QQ机器人 v2.0
  10. 英文论文PDF全文翻译途径整理
  11. 国内常见php的CMS建站系统情况分析
  12. 网络会议openmeetings下的openmeetings-util文件分析7
  13. 简单拖拉拽就能做数据可视化分析图表
  14. Android混淆心得
  15. An attempt was made to call the method javax.persistence.PersistenceContext.synchronization()
  16. 扫描dir目录函数之scandir()
  17. 如何修复Outlook已发送邮件丢失的问题
  18. 小球碰壁反弹加分_用Java实现小球碰壁反弹的简单实例(算法十分简单)
  19. Android STB 海思平台调试
  20. 卡内基梅隆大学副教授张旆:传感系统新玩法,物理响应分析人的生老病死

热门文章

  1. lstm 变长序列_keras在构建LSTM模型时对变长序列的处理操作
  2. 计算机网络之数据链路层思维导图总结
  3. JQuery:全选按钮的实现
  4. 传感器信号 如何发送到服务器,传感器如何将消息发送给云服务器
  5. Linux / OpenWRT / 目录功能说明
  6. SSD201 / SSD202D 在86盒智能网关的应用分享
  7. 走进 San CLI(下):实现原理
  8. 公益性岗位计算机考试内容,公益性岗位公共基础知识:计算机概述-计算机硬件系统(1)...
  9. mysql query结果集_如何解决PHP使用mysql_query查询超大结果集超内存问题
  10. mysql 安装_源码安装mysql