V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
toou123
V2EX  ›  问与答

来看看这样的中奖算法有没有 bug?

  •  
  •   toou123 · 2018-12-27 16:04:42 +08:00 · 2341 次点击
    这是一个创建于 1945 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每个参与者给一个序号作为抽奖码。最终抽 6 个中奖号码。需求就是公平,无法暗箱操作,中奖号码均匀分布

    现在的算法是这样的

    a=某日的上证指数收盘数字
    b=(总参与人数除以 6 )取商
    c=(总参与人数除以 6 )取余数

    第一中奖号码=( a*100 )^2 除以( b+c )取余数+1
    第二中奖号码=第一中奖号码+b
    第三中奖号码=第二中奖号码+b
    第四中奖号码=第三中奖号码+b
    第五中奖号码=第四中奖号码+b
    第六中奖号码=第五中奖号码+b

    10 条回复    2018-12-27 19:01:06 +08:00
    zqqian
        1
    zqqian  
       2018-12-27 16:20:07 +08:00 via iPhone
    不应该除以 b+c
    应该除以一个质数
    swulling
        2
    swulling  
       2018-12-27 16:21:30 +08:00 via iPhone
    用 Python 的 random choice 就好了,拿上证指数作为种子

    何必自己写
    whileFalse
        3
    whileFalse  
       2018-12-27 16:31:41 +08:00   ❤️ 1
    不合理。

    举个例子:
    ( a*100 )^2 的尾数只能是 1,3,4,5,6,9,不可能为 0,2,7,8
    如果 B+C=10,则无论 a 为任何值时,序号尾号 1,3,8,9 的人都不可能中奖。
    across
        4
    across  
       2018-12-27 16:32:05 +08:00
    如果硬要说有缺点,那就是后续中奖号码?
    因为第一个发出去后,结果就出来了。反正和你相邻的中奖了,后面就知道判断不用得开奖就可以回去睡觉了。
    发奖号码估计是真·手动随机发吧。
    whileFalse
        5
    whileFalse  
       2018-12-27 16:33:58 +08:00
    @across 这倒有可能是个需求。比如不希望一个部门拿到一堆奖,其他部门拿不到。
    546669204
        6
    546669204  
       2018-12-27 16:42:02 +08:00   ❤️ 1
    把历年的上证收盘价导出 写了一个测试
    在固定人数的情况下 中奖的永远是那么几个 部分号码不会得奖。
    https://jsfiddle.net/wkuyzc3d/
    lance6716
        7
    lance6716  
       2018-12-27 17:36:45 +08:00
    第一眼看到的漏洞就是均匀分布不是强行均匀啊……
    yurang
        8
    yurang  
       2018-12-27 17:48:36 +08:00
    - 随机数的性质:
    - 随机性:不存在统计学偏差,是完全杂乱的数列(弱伪随机数)
    - 不可预测性:不能从过去的数列推测出下一个出现的数(强伪随机数)
    - 不可重现性:除非将数列本身保存下来,否则不能重现相同的数列(真随机数)
    xiaochocking
        9
    xiaochocking  
       2018-12-27 17:53:06 +08:00
    均匀分布是。。? 真随机还怎么均匀
    geelaw
        10
    geelaw  
       2018-12-27 19:01:06 +08:00 via iPhone
    乱编一个算法不像是能满足要求。

    一个很明显的错误在于这几个号码不独立。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3502 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:58 · PVG 18:58 · LAX 03:58 · JFK 06:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.