
为真执行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%。所以用计算机随机函数所产生的“随机数”并不随机,是伪随机数。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)