利用md5产生随机数表 | 寒山烟雨
现在的位置: 首页 > 小试身手 > 正文

利用md5产生随机数表

2012年06月12日 小试身手 ⁄ 共 315字 ⁄ 字号 评论 4 条 ⁄ 阅读 6,040 views 次

一段极度DT的代码,利用md5算法产生一段随机数表。不知道干什么用,或许可以在蒙特卡洛方法里使用。

主要是利用系统时间做种子(python的内部time函数),带入到md5函数中,得到一个字符串x,抽取其中的数字(0~9)附加到字符串C中,重新计算x的md5值,直到c的长度达到要求。为了防止陷入循环,对字符串x加了一个空格做微扰。最后,格式输出字符串c。

做了一个大概的统计,每个数字出现的几率大约都在0.1左右,基本符合随机分布,当然,仅限于0~9范围内。

 Python | 
 
 copy code |
?

01
import hashlib,time
02
 
03
f=open('Rom.txt','w')
04
start=str(time.time())
05
ALL=8100
06
c=str()
07
 
08
while len(c)<ALL:
09
    y=hashlib.md5(start.encode())
10
    x=str(y.hexdigest())
11
    for i in range(1,32):
12
        if x[i] in ("1","2","3","4","5","6","7","8","9","0"):
13
            c=c+x[i]
14
    start=x+' '
15
 
16
for i in range(0,ALL,60):
17
    count=c[i:i+60]
18
    f.write(count)
19
    f.write('\n')
20
f.close()
21
input("Input the 'Enter' to End")

 当然,可以做一个变换,可以减少每行的输出值,作为一个[0,1)左闭右开区间的一个超长的随机数表。

0

目前有 4 条留言    访客:2 条, 博主:2 条

  1. MaskRay 2012年06月13日 下午11:38  @回复  Δ-49楼 回复
    Firefox Firefox GNU/Linux GNU/Linux

    crypto = require 'crypto'

    md5 = (s) -> crypto.createHash('md5').update(s).digest()

    exports.tortoiseAndHare = (f,init) ->
    # tortoise = hare = init
    # do go = ->
    # tortoise = f tortoise
    # hare = f f hare
    # go() if tortoise != hare
    # FIXME: stack overflows, no tail-recursion optimization?
    tortoise = f init
    hare = f f init
    while tortoise != hare
    tortoise = f tortoise
    hare = f f hare

    mu = 0
    tortoise = init
    while tortoise != hare
    tortoise = f tortoise
    hare = f hare
    mu++

    len = 1
    hare = f tortoise
    while tortoise != hare
    hare = f hare
    len++
    [len, mu, hare]

    console.log tortoiseAndHare md5, (new Date).toString()

  2. hsyyf 2012年06月13日 上午9:57  @回复  Δ-48楼 回复
    Opera Mini Opera Mini Android Android

    opera testing

  3. tusooa 2012年06月12日 下午9:33  @回复  Δ-47楼 回复
    Firefox Firefox GNU/Linux GNU/Linux

    say '0123456789'


    • 管理员
      hsyyf 2012年06月12日 下午9:43  @回复  ∇地下1层 回复
      Firefox Firefox Windows Windows

      肿么可能。。。

给我留言

留言无头像?


×