美育课堂 钢琴课抽签规则

参与抽签的总人数NUM = 441,通过以下流程抽取25名幸运同学:

  1. 获取2019年5月4日开盘时(北京时间5月4日 9:30pm)的纳斯达克指数N1,道琼斯指数N2
  2. 取N1*N2的前5位数,并将其转化为字符串Skey
  3. for k = 1:25
    将Skey与k合并为新的字符串Skey',对Skey'进行一次SHA1运算,得到幸运数字lucky
    获奖编号 = mod(lukcy,NUM)

抽奖结果于5月4日晚11点前公布

说明: 由于两个股票指数无法精准预测,而由于SHA1运算对输入的敏感特性,导致幸运数字lucky是不可预测的!因此,以上算法保证了抽签的公平性。此外,当股票指数公布后,任何同学都可以根据以下源码重复进行抽签,抽签的流程是完全公开的。

### 抽签代码
from googlefinance.get import get_code
from hashlib import sha1
NUM = 441
NASDAQ = #2019年5月4日纳斯达克开盘指数 https://finance.yahoo.com/quote/%5EIXIC/
DJI = #2019年5月4日道琼斯开盘指数 https://finance.yahoo.com/quote/%5EDJI?p=^DJI
Skey = (str(NASDAQ*DJI))[0:5]
for k in range(25):
    luckeyNum = sha1((Skey + str(k)).encode())
    luckeyNum = int(luckeyNum.hexdigest(),16)
    TheChosenOne = luckeyNum%NUM
    print('恭喜第{0}位同学入选!'.format(TheChosenOne))

再次说明:有些同学不理解为什么要搞这么复杂的抽签,直接随机数不就了事了嘛。然而,随机数的弊端是无法证明是否是黑箱操作。以上方法通过不可预知的股票指数,以及算法上的可重复可验证性,从技术上杜绝了黑箱操作。
结果公布:NASDAQ = 8092.88 DJI = 26379.14,代入以上程序,得到以下幸运同学名单:


image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • BIAS 乖离率 移动平均线代表投资人的平均成本,而乖离率则可代表投资人的平均报酬率。乖离率的应用,回档或反弹行情...
    Mr_Xiao阅读 1,909评论 0 9
  • 综述 我是一个投机客。我的交易体系的核心为:价值选股,技术择时,大波段操作。 以下是我整理的一些前辈的心得,对于我...
    KIKO_软糖阅读 4,553评论 0 4
  • 一、JS数字精度丢失的一些典型问题 1. 两个简单的浮点数相加1 0.1 + 0.2 != 0.3// true ...
    a180754bf396阅读 6,717评论 0 0
  • 夏天的时候,这里的夜到很晚都不会黑。八九点的落霞很美。有的时候是橘红的,有的时候是粉紫色的。你看见过那样的画面吗—...
    ReissJ阅读 150评论 0 0
  • 只要你注意观察,就会发现人们对身份是如此的认同,以致于几乎所有人在交往中都在“看人下菜碟”,互相又都觉得那么“自然...
    国学关老师阅读 126评论 0 1