伪随机数字规律预测
大家好!今天让创意岭的小编来大家介绍下关于伪随机数字规律预测的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
开始之前先推荐一个非常厉害的Ai人工智能工具,一键生成原创文章、方案、文案、工作计划、工作报告、论文、代码、作文、做题和对话答疑等等
只需要输入关键词,就能返回你想要的内容,有小程序、在线网页版、PC客户端和批量生成器
问友Ai官网:https://ai.de1919.com。
本文目录:
什么是伪随机和真随机?
所谓真伪随机其实分别指的是几率和概率。所谓概率,用Dota里话说,就是出现得并不规律,但是大致上就是这么多次数。比如17%,如果是每2000次为一周期,那么17%意味着,尽管你不确定这340次究竟会什么时候出现,但2000次中必然出现340次,不多一次也不会少一次。貌似这就是伪随机了。概率事件之间相互影响,一旦这一次没有触发,那么下一次触发的概率就会变大。形象而言,概率事件就好比,一个班有50位同学抓阄抽奖,纸条总计50个,其中10个有有奖,40个没奖。可以确定,按理说每个人平均都有20%的中奖可能。一旦第一位同学没有抽到,那么剩下同学平均中奖的可能性就会从20%提高到20.40%,以此类推,如果前10位同学都没有中奖,那么剩下同学中奖概率将提高到平均25%。但是不管谁中谁没中,最后横竖只有20%的人中奖。这就是20%的中奖概率。
而真随机则是指几率。比如17%的几率,意味着你这次触发特殊事件是17%的可能性,下次也是,每一次都是。如果你这次失败,下次依然保持在17%的可能性。。同样使用上面抽奖的例子,这次把20%概率换成20%的几率,那么就成了这样了:50个同学,每人会得到一个装着50张纸条的盒子,其中有10张有奖,40张不中奖,每人可以抽10张纸条。那么这时候,大家抽奖就是个抽各的,互不影响。你抽中了不会导致别人中或者不中,这就是几率,意味着事件之间毫无联系,说不定50个人总计可以抽到1000张全部奖品,或者50人全部空手而回。虽然同样是20%的可能性,概率是所有事件相互影响,总体可能性保持在20%,而几率是所有事件相互独立,单次可能性保持在20%,但总体中奖分布则在0到100%之间浮动。
我想问下关于伪随机数学的问题?
真正的随机数是没有办法获取的。所以,一般情况下都只能使用伪随机数来模拟随机过程。一般的编程软件,它的伪随机数算法都能保证产生的序列周期很大,通常都大于10的9次方。现在随着计算机技术的算法的研究发展,不少伪随机数的周期已经远远大于这个数量级,甚至到了10的15到20次方。同时,伪随机数产生的起点,也就是种子可以通过热敏元件或者时间数据来产生,无法人为控制,使产生的数字序列更接近真随机状态。
因此,要掌握到算法及其规律,并进行所谓预测,条件必须是指导算法和种子。否则,即使是10的9次方的周期长度,按照老虎机按照每秒一次动作的速度来计算,也需要在老虎机上操作31年多,才能够找到完整的周期规律。这在现实中是不可能的!追问
我想问下。电玩城捕鱼机的伪随机数。是否可以这样设置。如退分情况经常退给某个位置。如果一共是四个位置。那么如果是四个位置吃掉的总分减去这个位置的吃分情况导致这个位置退分情况经常出现。就是说。总分和这个位置的吃分分数是否是可以一直变化呢。不是保持不变。导致这个位置比其他位置的退分情况多。 伪随机数可以这样设置吗。谢谢。
追答伪随机数设计的基本原则,是尽量接近真实随机状态。所以,它有两个重要指标,一个是周期要足够长,也就是在通常情况下找不到周期规律,另一个是产生的随机数序列要逼近无序、随机,模拟真实随机性。
因此,要想通过简单的,有时间限度的统计来发现它的规律,其可能性和操作性几乎为零。没有必要在这样的问题上浪费时间和精力。
行。那你回答我。伪随机数是通过各种算法得出的。上次看过视频是说加减乘除。那么在过程中。先假设数字是8。减去2。那么8的话是否是可以在运行过程中可以加上去呢。就是分数加上去。2也可以加上去。可以这样吗。反正最后就是X减去X。伪随机数可以这样设置吗。
行。那你回答我。我之前看过一个视频。说伪随机数是加减乘除。那么假设数字是8。设置为减去2。那么在运行过程中。是否8这个数字可以加上去。2的话也可以加上去。那么最后结果是X减去X等于多少。我的意思是。是否可以在运行过程中数字可以变化。比如加分呢。谢谢你。
不好意思。问了两遍。 问题是一样的。谢谢你再回答我遍。非常感谢你。
追答这样吧,我将 一个周期为10的12次方的伪随机数代码(fortran语言的,比较容易阅读)贴上来。
这是商业应用中最简单的伪随机数生成程序,它的运算不复杂。但是,它的运算时不可逆的,无法从随机数序列反推到它的起点。即使你花上几十年时间收集它的序列,也不可能推断出它下一个数据到底是什么。甚至,即使知道算法,也无法推断出它的起点和下一个数字。
下面是随机数种子子程序,可以通过热敏电阻(无序的热噪声)来产生伪随机数起点。
希望对你有所帮助。
看了很久。我有点看不懂。因为没学过软件。我就想问你。假设设置好的伪随机数。如8减去2。运行过程中是否可以设置成分数之间会变化。不管加减乘除。8可以加减乘除。2也可以呢。谢谢你回答我这个问题。我就采纳你。谢谢。
追答举一个最简单的算法例子。
a=7**5,p=int8(2)**31-1,n=1作为种子,起始点,按照下面公式进行反复迭代,得到伪随机数序列。
n=mod(n*a,p),mod是求余函数,比如mod(35,3)=2,就是35除以3,余数为2。
这样,前十个伪随机数就是:16807, 282475249,1622650073, 984943658,1144108930, 470211272, 101027544,1457850878,1458777923,2007237709。
对某个特定余数,如果除数一定,它的被除数并不确定,而是有无数个。比如 mod(35,3)=2,mod(38,3)=2,mod(41,3)=2,mod(44,3)=2... 这就是算法的不可逆性!
几乎所有的伪随机数算法用到了余数计算,而百分之百的伪随机数算法是不可逆的。
希望能帮到你!
不可逆是什么意思呢。加我微聊huairensiguang 谢谢。
追答其实前面关于余数的计算,我已经解释了什么叫"不可逆"。
再举个例子吧。有个简单的算法,用计算器就可以做。你算一下,记录下来,就可以理解什么是算法的“不可逆”。
起点是n=1,计算分三步:
第一步,将 n+97531,得到97532。
第二步,将所得数字开平方根,得到312.3011367。
第三步,取小数点后的六位,作为新的n,得到 n=301136。
依次类推,可以计算出前十个n:301136,400823,941923,536169, 52762,676411,739734, 21857,525686,440941。
在知道算法的情况下,你可以从任何一个开始,很容易计算出下一个数字。但是你无法通过算法公式和步骤来算出上一个数字。这就是算法的“不可逆”。
当然,如果算法不告诉你,那就连计算出下一个数字也不可能,更不好说进行逆运算了。
好吧 谢谢耐心解释。 最后问下。电玩城的捕鱼机是用伪随机数而不是混沌数学吧?谢谢。
追答我没有研究过捕鱼机。但是可以肯定的是,属于赌博类的电玩,一定是用了伪随机数的设计方法。而混沌数学是观察研究的方法,不是用来设计某个东西的。
有一些1至49参照数字,求伪随机数预测25个数字
鼠标右键单击工作表标签,选择查看代码,输入如下代码。假设生成结果放在A列,自第一行开始放起。代码如下:Sub 生成随机数()
Dim str As String
Dim i, x As Integer
Range("A1").EntireColumn.ClearContents
lp: str = InputBox("请输入需要不重复的个数,1——49", , 25)
If IsNumeric(str) = False Then
MsgBox "输入个数!"
GoTo lp
Else
If Int(str) <> str Or str > 49 Or str < 1 Then
MsgBox "输入范围:1-49,整数"
GoTo lp
End If
End If
x = Int((49 - 1) * Rnd() + 1)
For i = 1 To str
Do While WorksheetFunction.CountIf(Range(Cells(1, 1), Cells(i, 1)), x) > 0
x = Int((49 - 1) * Rnd() + 1)
Loop
Cells(i, 1) = x
Next
End Sub
代码输入完毕后,将宏安全性设为中,重新启动文档时,选择启用宏。需要时运行宏“生成随机数”即可。
java伪随机数是否有可以预测的方法?
只要知道了种子,就能预测了java的伪随机数的生成完全依赖于种子
如果有相同的种子,那么生成的伪随机数序列就会相同追问
那么何为“种子”呢,是不是计算机内存中所谓的散列数,不同的软件生成伪随机时跟随机数函数没关系吗
追答你看一下 Random 的构造方法,最好能看一下源代码,就知道了
里面有一个成员属性,是种子。。
下一个随机数是根据这个种子来的,每次生成之后这个种子也会变化,但是这个变化是有规律的,如果能知道之前的种子,就能算出新的种子。
算法是固定的,已经写好了不会变,至少在同一个版本的java里,这个不会变。
跟散列也没关系,散列是完全另外一个东西了
不同的软件生成伪随机数,当然跟算法有关系,但是如果用java的Random这个类的话,算法当然是同一个。
伪随机数怎么找规律?
真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。我们可以这样认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。
一般地,伪随机数的生成方法主要有以下3种:
(1) 直接法(Direct Method),根据分布函数的物理意义生成。缺点是仅适用于某些具有特殊分布的随机数,如二项式分布、泊松分布。
(2) 逆转法(Inversion Method),假设U服从[0,1]区间上的均匀分布,令X=F-1(U),则X的累计分布函数(CDF)为F。该方法原理简单、编程方便、适用性广。
(3)接受拒绝法(Acceptance-Rejection Method):假设希望生成的随机数的概率密度函数(PDF)为f,则首先找到一个PDF为g的随机数发生器与常数c,使得f(x)≤cg(x),然后根据接收拒绝算法求解。由于算法平均运算c次才能得到一个希望生成的随机数,因此c的取值必须尽可能小。显然,该算法的缺点是较难确定g与c。
因此,伪随机数生成器(PRNG)一般采用逆转法,其基础是均匀分布,均匀分布PRNG的优劣决定了整个随机数体系的优劣。下文研究均匀分布的PRNG。
伪随机数发生器
以上就是关于伪随机数字规律预测相关问题的回答。希望能帮到你,如有更多相关问题,您也可以联系我们的客服进行咨询,客服也会为您讲解更多精彩的知识和内容。
推荐阅读: