随机数替换,提供远程随机数源。
RandomSources的Python项目详细描述
randomsources是一个python模块,提供了 远程随机数支持的python随机数生成器接口 消息来源。它为随机数据提供简单的插入式替换 由Anu Quantum随机数服务器提供(通过测量生成 真空的量子涨落)和random.org(由测量产生 大气噪声)。典型用法如下:
>>> import randomSources >>> qRandom = randomSources.QuantumRandom() >>> print qRandom.random() 0.799872387678 >>> print qRandom.randint(1, 20) 4 >>> randomDotOrg = randomSources.RandomDotOrg() >>> randomDotOrg.checkBitQuota() 990178 >>> print randomDotOrg.random() 0.951470705142 >>> print randomDotOrg.random(4) [0.5996488097316547, 0.40146785806967766, 0.9956706001515375, 0.345638811037305] >>> randomDotOrg.checkBitQuota() 989910 >>> print randomDotOrg.randint(1, 20) 1 >>> print randomDotOrg.randint(1, 20, 12) [6, 10, 13, 20, 3, 14, 5, 3, 10, 18, 20, 14] >>> randomDotOrg.checkBitQuota() 989780
请注意,random.org每24小时为每个IP提供一个位配额限制;许多 因此,函数提供一个可选的最终参数'n'来模拟 多个调用,允许系统合并一些较小的请求,以便 尽量减少钻头浪费。为了达到同样的目的,randomdotorg类倾向于 细分获取,在可以防止浪费的情况下发送多个较小的请求。
另一方面,anu量子随机数服务器没有位限制; 因此,quantumrandom类一次获取16kb以提供较小的 请求,最小化对服务器的请求。获取更大的请求 动态的。
从0.1版起,这些对象是not线程安全的。
学分
这个模块的大部分代码都是直接从Python2.7源代码派生的 对于随机类及其子类,将其呈现为派生工作。 感谢python软件基金会及其bdfl,guido van rossum。
此外,重要的灵感(和一些直接的代码)来自 quantumrandom(http://github.com/lmacken/quantumrandom)和randomdotorg (http://code.google.com/p/randomdotorg/)模块,特别是作为基本引用 它们各自随机数源的api。感谢和归属 因此是由于卢克·麦肯(Quantumrandom的作者)和克洛维斯·法布里西奥 (Randomdotorg的作者)。
许可证
此模块是根据GNU GPL版本3授权的,作为 randomdotorg模块。这被证实与两种python兼容 软件基金会许可证,涵盖Python2.7和麻省理工学院许可证,涵盖 QuantumRandom模块。
如果克洛维斯·法布里西奥授予权限,则此模块将重新获得许可。 在python software foundation许可下,或者,如果这是不可接受的, 在gnu lgpl版本3下。