随机算法

中本聪骰子

具体的玩法和原理都可以参考文末的那篇文章。
该游戏能很好的证明公平性的原因有两点

  • 1seed提前上链,公平性有目共睹,无人可更改。
  • 2 随机幸运数字因人而异(在seed的基础上引入了txid)
  • 3上链采用的是写入op return字段,实现方式可以参考omni的create raw tx函数:
  • https://github.com/OmniLayer/omnicore/wiki/Use-the-raw-transaction-API-to-create-a-Simple-Send-transaction

梅森算法

根据随机种子参数随机数的算法采用的是梅森算法,同时梅森旋转算法是R、Python、Ruby、IDL、Free Pascal、PHP、Maple、Matlab、GNU多重精度运算库和GSL的默认伪随机数产生器

random库

Basic examples:

>>> random()                             # Random float:  0.0 <= x < 1.0
0.37444887175646646
>>> uniform(2.5, 10.0)                   # Random float:  2.5 <= x < 10.0
3.1800146073117523
>>> expovariate(1 / 5)                   # Interval between arrivals averaging 5 seconds
5.148957571865031
>>> randrange(10)                        # Integer from 0 to 9 inclusive
7
>>> randrange(0, 101, 2)                 # Even integer from 0 to 100 inclusive
26
>>> choice(['win', 'lose', 'draw'])      # Single random element from a sequence
'draw'
>>> deck = 'ace two three four'.split()
>>> shuffle(deck)                        # Shuffle a list
>>> deck
['four', 'two', 'ace', 'three']
>>> sample([10, 20, 30, 40, 50], k=4)    # Four samples without replacement
[40, 10, 50, 30]

random的几种真值分布

文章索引

1 图文详解Bch赌博游戏SatoshiDice公平性证明
2 谈谈梅森旋转:算法及其爆破
3 Generate pseudo-random numbers
4 你真的用好了Python的random模块吗
5 泊松分布和指数分布

你可能感兴趣的:(随机算法)