算法程序中的随机抽奖的"随机"程序是什么原理?

算法程序中的随机抽奖的"随机"程序是什么原理?,第1张

和你说的差不多。

为真执行i=i-1否则执行 a(b(i)) = 1

揣摩他的意思,a(33)应该是红球6个数都有哪些,可是他在生成蓝球的时候,根本也没对红球判断。

-----------------------------------------

当 b(i)有重复的时候,a(b(i))为真

不是永远为假

----------------------------------------

For i = 1 To 6 '循环6次

b(i) = Int(Rnd * 33 + 1)'产生一个1-33的随即数

If a(b(i)) Then i = i - 1 Else a(b(i)) = 1

'如果a(b(i))为真代表有重复,i-- 退回重新产生一个随机数。如果a(b(i))为假,设置a(b(i))为真,就是给以后判断是不是已经产生过。

Next

如果保证利润和可玩性。

可以考虑设计数字概率化,中奖的数字概率设为0,也就是说不可能出现。

但是为了保证可玩性,可以设置次数中奖,比如当运行第十次,一定会出现3,运行第15次,一定会出现4,这样可以保证利润并且全局掌握在程序员手中。

如果满意还请采纳,谢谢,

电脑所产生的随机数大部分为伪随机数,通过算法或者编一段程序实现,但是计算机本身就是一种确定的或固定的设备,编程时写的代码也是固定的,用的算法也是固定的,通过这些固定的东西生成真随机显然不太可能,但是我们可以引入系统意外的变量,通过计算机内的时钟,io请求响应时间,键盘的敲击速度,鼠标移动的位置,磁盘写入速度等信号,通过以上方法将其信号专为数据,是之成为参数带入某个函数内,是可以达到统计意义上的真随机。

电脑取随机数原bai理实质是伪随du机数。

大部分程序和语言中的随机数zhi(比如 C 中的,MATLAB 中的),确dao实都只是伪随机。是由可确定的函数(常用线性同余),通过一个种子(常用计算机内部的时钟),产生的伪随机数。

真正意义上的随机数(或者随机事件)在某次产生过程中是按照实验过程中表现的分布概率随机产生的,其结果是不可预测的,是不可见的。而计算机中的随机函数是按照一定算法模拟产生的,其结果是确定的,是可见的。我们可以这样认为这个可预见的结果其出现的概率是100%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11322429.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存