找回密码
 加入
搜索
楼主: rolaka

[效率算法] 关于依照表取得随机值的问题

 火.. [复制链接]
发表于 2010-5-3 21:50:38 | 显示全部楼层
考虑到概率,写了这个,200ms做不到,只能做到大概500ms左右
#include <Array.au3>
Dim $Prize[5] = [0, 0, 0, 0, 0]
$begin = TimerInit()
For $i = 0 To 99999
        $r = Random(0, 99, 1)
        Select
                Case $r < 50
                        $Prize[0] += 1
                Case $r < 63
                        $Prize[1] += 1
                Case $r < 68
                        $Prize[2] += 1
                Case $r < 69
                        $Prize[3] += 1
                Case Else
                        $Prize[4] += 1
        EndSelect
Next
_ArrayDisplay($Prize, Round(TimerDiff($begin)) & 'ms')
发表于 2010-5-3 21:51:50 | 显示全部楼层
考虑到概率,写了这个,200ms做不到,只能做到大概500ms左右
#include <Array.au3>
Dim $Prize[5] = [0, 0, 0, 0, 0]
$begin = TimerInit()
For $i = 0 To 99999
        $r = Random(0, 99, 1)
        Select
                Case $r < 50
                        $Prize[0] += 1
                Case $r < 63
                        $Prize[1] += 1
                Case $r < 68
                        $Prize[2] += 1
                Case $r < 69
                        $Prize[3] += 1
                Case Else
                        $Prize[4] += 1
        EndSelect
Next
_ArrayDisplay($Prize, Round(TimerDiff($begin)) & 'ms')
发表于 2010-5-3 22:33:06 | 显示全部楼层
回复 12# pusofalse
效率极高,不过貌似不准确啊?见图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2010-5-4 17:22:57 | 显示全部楼层
貌似除了p版的 随机部分好像我还是算短的?....
发表于 2010-5-4 19:41:25 | 显示全部楼层
报告楼主,如果比例可以上下浮动,那么比例还有什么用呢?
程序不能大概,是吧。
发表于 2010-5-4 20:11:59 | 显示全部楼层
此题貌似有些争议。如果模拟奖池,输出结果非要一丝不差的话,那么这是个乱序排列的问题。
1个1维数组,100个元素,前50为餐巾纸,其次12为糖果,等等。如此一个数组,打乱顺序后就可以了,输出结果保证绝对正确。
 楼主| 发表于 2010-5-4 21:37:06 | 显示全部楼层
本帖最后由 rolaka 于 2010-5-4 21:38 编辑

3mile写的据我测试结果也是有偏差的 10w次里 谢谢回顾平均是46.xx% 而且猫粮的统计结果只有0.4%...

如果硬要绝对正确 那是不可能的 p版上面说的做法才是绝对保证结果的唯一办法

模拟抽奖箱 实际的比例浮动是很正常的
发表于 2010-5-4 23:33:29 | 显示全部楼层
sorry,我没有说我写的才是正确的。
只是觉得前题条件既然已经定了百分比,当然要按照题目来做啊。
发表于 2010-5-5 11:51:21 | 显示全部楼层
进来学习学习
发表于 2010-5-5 12:13:42 | 显示全部楼层
3mile写的据我测试结果也是有偏差的 10w次里 谢谢回顾平均是46.xx% 而且猫粮的统计结果只有0.4%...

如果 ...
rolaka 发表于 2010-5-4 21:37


其实不用再打乱,因为已经是随机,看概率的分布就知道了
只要取的数越多就越接近
 楼主| 发表于 2010-5-5 12:20:44 | 显示全部楼层
本帖最后由 rolaka 于 2010-5-5 12:23 编辑
sorry,我没有说我写的才是正确的。
只是觉得前题条件既然已经定了百分比,当然要按照题目来做啊。
3mile 发表于 2010-5-4 23:33



   。。。前提只是规定了奖池里的抽签比例 而且结果是不可控的
 楼主| 发表于 2010-5-5 12:27:21 | 显示全部楼层
其实不用再打乱,因为已经是随机,看概率的分布就知道了
只要取的数越多就越接近
auto 发表于 2010-5-5 12:13


对。。。。没错
发表于 2010-5-5 14:09:12 | 显示全部楼层
回复 26# rolaka
呵呵,原来是我的理解有问题。楼主要的原来是10W次的抽奖分布情况。
误理解为10W的数组按比例随机存放。
莫怪,莫怪
 楼主| 发表于 2010-5-5 15:31:20 | 显示全部楼层
回复  rolaka
呵呵,原来是我的理解有问题。楼主要的原来是10W次的抽奖分布情况。
误理解为10W的数组按比 ...
3mile 发表于 2010-5-5 14:09



    。。。估计是我写的不清楚。。。好多人误解阿
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-16 03:48 , Processed in 0.077712 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表