• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > java中random随机函数的一些理解

java中random随机函数的一些理解

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了java随机数random,java random函数,java中random函数,java math.random,java中random的用法等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

java中random随机函数的一些理解


random()是伪随机数生成器,因为的它的随机数生成都是和seed种子相关的,只要种子相同生成的随机数都是相同的,在没有指定种子的情况下
会根据当前时间生成一个种子参数
在一篇博客中看到这样一句话;实际上Random是一种伪随机数,相同的种子产生相同的序列(注意不是相同数值)。
为什么说是生成相同的序列,这里要理解下构造函数设定种子后(不管是自己指定的还是,系统默认生成的)随机数是怎样生成的:
首先nextInt()函数会根据当前的seed生成一个随机后,然后把生成的随机数赋值给seed,继续生成随机数,一直这样执行下去。

所以好好理解下面两段代码

  1. public static void main(String[] args) {

  2. for (int i=0;i<10;i++){
  3. Random r = new Random(10);
  4. data = r.nextInt(10);
  5. System.out.print(rand);
  6. System.out.print(" ");
  7. }

  8. }
生成的10个数都是一样的

  1. public static void main(String[] args) {
  2. Random r = new Random(10);
  3. for (int i=0;i<10;i++){
  4. data = r.nextInt(10);
  5. System.out.print(rand);
  6. System.out.print(" ");
  7. }
  8. }
上面这段代码生成的10个数都不一样,但是再次执行的时候生成的10个数序列和上次执行for循环生成的序列是一样的,这点就是上面那句的意思
random()默认生成种子的原理是一样的,但是如果把上面换成random()的话,执行多次for循环生成的随机数都会不一样,因为每次执行的时候时间不一样了 所以默认的种子也就不同了,由此可知,random()随机数生成的关键是要有一个的真正随机的种子


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • java中random随机函数的一些理解

相关文章

  • 2017-05-26关于linux的busybox工具mdev的使用和声卡热插拔以及驱动挂载的总结
  • 2017-05-26Android 五大布局,android五大布局
  • 2017-05-26msm8909+android5.1.1--打开调试(debug)串口
  • 2017-05-26Install Battery Historian,batteryhistorian
  • 2017-05-26Android EventBus.getDefault()开源框架,eventbusgetdefault
  • 2017-05-26Setting 之dashboard 点击跳转流程,settingdashboard
  • 2017-05-26Ionic2/angularJs2中的静态类 PhotoLibrary 调用不上,ionic2angularjs2
  • 2017-07-22Android性能优化
  • 2017-05-26对Android的恶意吐槽(勿看,有毒)
  • 2017-05-26我的第一篇博客,我试试怎么用,第一篇博客,试试

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • arcgis andriod开发程序实例,有图有真相,arcgisandriod
    • 关于Linux的core dump
    • MySQL rpl_semi_sync_master_timeout相关的一件BUG
    • Apk去掉签名以及重新签名的方法,apk去掉签名
    • Kotlin的属性委托:无上下文情况下Android的赋值(KAD 15),kotlinandroid
    • 安卓图片加载之使用universalimageloader加载圆形圆角图片
    • android使用AIDL实现跨进程通讯(IPC)
    • Android提权漏洞CVE-2014-7920&amp;CVE-2014-7921分析
    • Android学习笔记-TextView(文本框)(二),android-textview
    • AS下NDK开发(一),as下ndk开发

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有