【Java】Random生成的为什么是伪随机数

本文介绍了随机数与伪随机数的区别,重点分析了Java中的Random类工作原理,特别是nextInt方法中种子的作用。指出使用相同的种子会导致生成的随机数序列一致。
摘要由CSDN通过智能技术生成

随机数和伪随机数的定义

随 机 数 :通过真实随机事件取得的随机数才是真随机数。
伪随机数:通过算法所生成的随机数,可控范围内的数。

Java中的Random

在这里插入图片描述
这里发现Random类实际调用的是内部的next方法
在这里插入图片描述
跳转到next方法又可以看到seed,这个看着就很熟悉。在C语言中可以用rand函数去获取随机数,而这里的seed就如同C语言的srand函数,给rand函数设下一个无符号整形数的种子,只要种子的这个数一样,那么产生的随机数就是一样的。
这里我们就不难明白伪随机数是什么了,其实Java也一样,设置一定的间隔,来确保随机数不会一样,但是间隔数是一样的,那么随机数也是一样的。

实践出针织

在这里插入图片描述
这里有重载的nextInt,其中的int bound,就类似设定一个种子
在这里插入图片描述
这里可以发现种子都是1,结果生成的随机数都一样,为0.

小结

如果有错误地方,大佬们可以纠正。
在这里插入图片描述

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值