跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 征集一种对回复抽多个奖的随机算法,回复方案必感谢~
未分類
15 5 月 2020

征集一种对回复抽多个奖的随机算法,回复方案必感谢~

征集一种对回复抽多个奖的随机算法,回复方案必感谢~

資深大佬 : xatest 51

我指的是,我发的 /t/635728 这个帖子~
我把回复参与抽奖的资格,最晚截止到今晚 23:59:59,应该按什么随机算法抽 3 个奖?
例如:拿具体数字来说,一共收到 1024 个回复,怎么以一个公正+随机的算法来抽[1,1024]区间的 3 个整数?

凡是回复方案,无论方案好坏必感谢~

大佬有話說 (13)

  • 資深大佬 : lhx2008

    random.shufile([x for x in range(1, 1025)])[:3]

  • 資深大佬 : wolfie

    每个层[用户 + 层数]md5
    当天博彩、股票或者其他的 md5
    对比取最近。
    https://www.jianshu.com/p/6577075ee118

  • 資深大佬 : psychoo

    3 个预定未来时刻的比特币价格%1024

  • 資深大佬 : ferock

    这个世上有真随机的事情吗?如果不纠结这点,Rand 不就行了。。。

  • 資深大佬 : Mutoo

    提前 shuffle 好一个 1 到 1024 的数组,并带上时间戳,然后进行 md5 并只把 md5 发论坛上。
    到期后公布这个数组就行了,大家可以自行 md5 验证。

    以上作法有一个小问题,就是 LZ 提前知道结果,有可能进行抢,所以最后可以在这个数组上取一个不可控因素作偏移量。也就是传统的抽取一的方法。

  • 資深大佬 : BiteTheDust

    直接 rand 一个正常的 rand 函数 在随机范围内的概率都应该是要求非常近似的 你自己动脑筋随机出来的 反而可能做不到公平

  • 資深大佬 : sockpuppet9527

    直接回复的

    可以参考下这篇论文 P. L’Ecuyer, “Maximally Equidistributed Combined Tausworthe Generators”, Mathematics of Computation, 65, 213 (1996), 203–213.
    有内核工具的 random 是参考这篇文章写的,量足够大的情况下它能保证公平以及范围足够大。
    fio 实现 : https://github.com/axboe/fio/blob/master/lib/rand.c

    fio 的随机算法目的是在 randrw 的情况下保证全盘公平覆盖。。所以和你的目的差不多,你只需要取三次即可

  • 主 資深大佬 : xatest

    @lhx2008
    @wolfie
    @psychoo
    @ferock
    @Mutoo
    @BiteTheDust
    @sockpuppet9527
    感谢已发送~

  • 資深大佬 : xiao17174

    # -*- coding: UTF-8 -*-
    import random

    #明天开盘时的上证指数*100 的值
    sh_value = 3083.39
    #层总数
    msg_count=1234

    #初始化随机值
    random.seed(sh_value * 100)
    seed2 = random.randint(1,9999)
    random.seed(seed2)

    //开始抽奖
    print “第一个中奖者层:%d” %random.randint(1,msg_count)
    print “第二个中奖者层:%d” %random.randint(1,msg_count)
    print “第三个中奖者层:%d” %random.randint(1,msg_count)
    print “第四个中奖者层:%d” %random.randint(1,msg_count)
    #如果上面有重复,后者用候补顶替
    print “候补中奖者一:%d” %random.randint(1,msg_count)
    print “候补中奖者二:%d” %random.randint(1,msg_count)

  • 資深大佬 : pangleon

    @wolfie 好思路!

  • 資深大佬 : xiao17174

    解释一下:
    1.原理是给伪随机数生成器一个确定的种子,那么他的随机数生成也变得确定了.保证结果可重现.
    2.用这个算法,就要等到明天 9 点 30 开奖,如果想立即开奖,也可以改成今晚 12 点的比特币价格或者其它国家的股市收盘价格(建议用开 /收盘价格,它是一个定值,而比特币时刻在变).
    3.运行环境可以用在线 python 工具(比如 https://c.runoob.com/compile/9)或者指定 python 版本来保证结果可重现.
    4.可以再多加几层混淆,但是我觉得没必要了.

  • 資深大佬 : Kelan

    @wolfie 这个文章里的方法其实也解决不了他说的所谓插入僵尸号的问题。没必要搞那么复杂的离散化。

  • 主 資深大佬 : xatest

    @xiao17174 #11 感谢已发送~

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具