从随机源到熵池:组合抽样中的随机性回收
从随机源到熵池:组合抽样中的随机性回收 本文含 AI 生成内容。前些天看到《杀戮尖塔 2》出了伪随机数生成相关性的问题,就想到把这个算法让 AI 整理一下发出来。其实代码主要是我年初的时候写的,但是应该没什么实用价值,因为真随机数实际上并不稀缺。 我有一天看到了一个类似这样的抽奖问题: 只有一个 8-bit 随机数生成器,怎样高效地从 30000 个人中抽出 20000 个中奖者? 第一反应通常是做随机抽样:多读几个随机字节,取模,拒绝采样,直到抽够为止。这个思路可以保证结果无偏,但它忽略了一个更底层的成本:随机性本身。 从 30000 人中抽出 20000 人,与抽出 10000 个未中奖者等价。仅输出这个组合,理论上就需要 log2 C(30000, 20000) = log2 C(30000, 10000) ≈ 27541.20 bit 随机源一次只能给 1 个字节,因此信息论下界是 ceil(27541.20 / 8) = 3443...
Markdown简介
(转载自https://github.com/younghz/Markdown) 主要内容 Markdown是什么?谁创造了它?为什么要使用它?怎么使用?谁在用?尝试一下 正文1. Markdown是什么?Markdown是一种轻量级标记语言,它以纯文本形式(易读、易写、易更改)编写文档,并最终以HTML格式发布。Markdown也可以理解为将以MARKDOWN语法编写的语言转换成HTML内容的工具。 2. 谁创造了它?它由Aaron Swartz和John Gruber共同设计,Aaron Swartz就是那位于去年(2013年1月11日)自杀,有着开挂一般人生经历的程序员。维基百科对他的介绍是:软件工程师、作家、政治组织者、互联网活动家、维基百科人。 他有着足以让你跪拜的人生经历: 14岁参与RSS 1.0规格标准的制订。 2004年入读斯坦福,之后退学。 2005年创建Infogami,之后与Reddit合并成为其合伙人。 2010年创立求进会(Demand...
