QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 1081|回复: 1
打印 上一主题 下一主题

怎样的中奖算法能让人信服

[复制链接]
字体大小: 正常 放大

32

主题

11

听众

78

积分

升级  76.84%

  • TA的每日心情
    开心
    2015-5-25 10:43
  • 签到天数: 19 天

    [LV.4]偶尔看看III

    自我介绍
    数据桥

    社区QQ达人

    跳转到指定楼层
    1#
    发表于 2015-5-18 09:32 |只看该作者 |倒序浏览
    |招呼Ta 关注Ta
    4 k# b, G2 {8 u# m% ?# H
    % S6 K" w. F, h! d

    话说写一个抽奖程序还不容易,不就是生成一个随机数吗,哪需什么算法之类的。

    从技术上说,这确实不难。事实上,你怎么写都可以,因为程序只运行在特定的设备上,外人根本无法了解其中的细节。

    那么问题就来了,如何才能让大家相信你没有作弊?

    你会说,我可以把程序开源,抽奖前大家监督运行。不过这样就一定可信了吗?

    就算程序没问题,也不代表系统就是可靠的。或许你早已偷偷开了外挂,这样无论程序有多公正,结果仍躲不出魔掌。

    那就退一步吧,每次开奖前重装一次系统。

    不过,假设所有的软件都可信,但最终仍需通过硬件来执行。如果硬件底层就有猫腻,那就根本不可能发觉了。

    就算硬件也没问题,最终结果还得展示给大家吧。如果显示器就是一个加了特技的道具,那么一切都白搭了。。。

    没法玩了。抽奖本来就建立在信任的基础上,存心弄虚作假,那谁还玩的赢。

    难道就没有一个能让大家信服的技术手段,来解决这个问题吗?

    其实,大家质疑的并非是算法,而是运行环境。毕竟,虚拟世界里玄机太多了。

    所以,我们必须放弃自己产生随机数的做法,而是从更客观的第三方获取。

    宇宙

    大自然变幻无常,充满各种随机性。

    微观的世界更是扑朔迷离,要是使用量子的状态,来计算中奖号码,客观程度堪比宇宙真理了。

    听起来似乎很理想,但如何才能获得这些数据?只能通过科学仪器来测量。

    然而再精准的仪器,也得由人来控制。可惜我们不懂,只能让科学家们去操作。

    这不,又涉及到人这个环节了。只要有好处,砖家想怎么说都可以,反正一般人也无从考证。

    就如同观看宇宙节目,说星星有 10 颗亿还是 20 亿,有谁会在意?甚至再多报几个数量级,也少有人质疑。

    这个领域的信息,对常人来说太遥远了。即使再客观,也难以让人信服。

    因此,光有客观随机是远远不够的。要让大家能切身感受到的,才有说服力。

    天气

    这次,我们选择一个贴近生活的因素:天气。

    虽然气候变化很有规律,但短时间里的气温,还是具有一定的不可预测性。那么就来尝试下,使用气温来作为中奖号码吧。

    我们选择开奖当天,各大城市的最高气温,例如:

    北京 12°C,上海 17°C,广州 24°C,深圳 25°C

    于是组合出一串数字:12172425,作为开奖的结果。

    当然你会说,这种组合也太少了吧。况且短时间内,气温也不会有很大的变化。如果事先将每个城市 ± n°C 的组合都买下,岂不是很容易中奖?

    别急,这里只是个举个例子。事实上,我们得选择更多的城市,让组合呈指数增加。

    如果换成 10 个城市,即使每个押上 ± 1°C,也有 3^10 = 59,049 种情况了。

    如果有 20 个,就有 3^20 ≈ 35 亿的组合数!

    不过问题又来了,中奖号码就那么几位,如何才能将这一大堆温度,转换成最终的号码?

    显然,这时不能简单的依次排列了。我们必须做一定的舍取,让每个数据都能参与计算。例如将它们相乘:

    12*17*24*…*30 = xxxxx

    得到一个结果。不过这种计算方式也太弱了,要是一个城市温度升高,另一个降低,也许结果正好就抵消了。

    所以,为了防止被预测,我们得让任何一个数据的细微变化,都能使得结果变得完全不同。

    于是,经典的散列算法用在这里再好不过了吧。

    我们照着天气预报的顺序,依次算出每个城市的气温散列值:

    最后,再整体来一次散列计算。将结果转成数字进行取模,即可得到最终的开奖号码了。

    Hash(List) % N = xxxxxxx

    不像宇宙那么神秘,天气可随时查询,而且人们能实时感受着。算法和数据都已公开,未来任何时刻都可以进行检验,显然具有足够的权威性。

    不过尽管如此,现实中我们还是不会太在意精确度。有谁会为了 1°C 而亲自测量,况且,同个城市不同的时间和环境,仍有一些偏差。

    如果彩票开奖用上天气数据的话,CCTV 最后一个可信节目也将面临消失吧:)

    金融

    思考下本质问题,抽奖目的是什么?不就是为了钱吗。

    同样是钱,世界级的金融机构,显然有着更完善的体系,为何不采用它们的数据呢?

    例如股票,有着方便快捷的查询途径。电脑、手机、报纸随时可查阅,信息渠道上的垄断几乎不存在。

    当然,股票本身并不随机,其变化源于交易,因此可以人为操纵。

    然而只要玩家足够多,世界各地的人们都在实时操作,于是就成了一个巨大的分式系统,整体就显得客观稳定了。

    这时要想对整体进行操纵,就得有大量的经济基础为前提了。

    以苹果为例,如今市值高达 7000 多亿美元,即使想撬动一个零头,也得花费千万级的成本。相比那点彩票奖金,简直小巫见大巫。

    况且,世界上又不只有苹果一家。我们可以选择更多靠谱的股票,让最终组合变幻莫测。即使能够操纵一家,那也无法搞定所有的吧。

    我们选定一个时间点,例如开奖当天的收盘价。同样的方式,将数据套入之前的天气算法里:

    最终得出一个类似的数值,作为中奖号码。

    这样的算法是否足够随机,有待验证和改进。但其权威性是毋庸置疑的,这是基于全世界经济秩序的结果,能操纵这个级别的人,还会在乎那点彩票奖金吗?

    天地人和

    最后,要是觉得纯粹的股票数据还不够合理,那就不妨把天气因数也参与进来。

    我们用天气对股票进行加盐,再进行散列计算:

    result = Hash(List) % N

    这样,只有同时掌控天时地利人和,才能预测到开奖结果。也许只有上帝才有这个能力吧。

    Via:EtherDream博客


    + j5 L1 B# y+ Q  \1 D& e9 S" y

    更多资讯,请关注:

    微信公众号:Shujuqiao_SH

    微博:Shujuqiao

    ( w  z' s" B" d& ?
    网站:www.databridge.com.cn

      y& D% L5 e9 c& d+ ?1 y) ~5 V" n5 B' I& A: w

    4 D* h# L  t. k
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    zuster 实名认证       

    42

    主题

    33

    听众

    1707

    积分

    升级  70.7%

  • TA的每日心情
    慵懒
    2018-6-7 13:22
  • 签到天数: 193 天

    [LV.7]常住居民III

    群组2011年第一期数学建模

    群组2012第三期美赛培训

    群组第二届数模基础实训

    群组MCM优秀论文解析专题

    群组学术交流A

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-4-29 15:46 , Processed in 0.329883 second(s), 55 queries .

    回顶部