sp800_22_runs_test.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:sp800_22_tests 作者: dj-on-github 项目源码 文件源码
def runs_test(bits):
    n = len(bits)
    zeroes,ones = count_ones_zeroes(bits)

    prop = float(ones)/float(n)
    print "  prop ",prop

    tau = 2.0/math.sqrt(n)
    print "  tau ",tau

    if abs(prop-0.5) > tau:
        return (False,0.0,None)

    vobs = 1.0
    for i in xrange(n-1):
        if bits[i] != bits[i+1]:
            vobs += 1.0

    print "  vobs ",vobs

    p = math.erfc(abs(vobs - (2.0*n*prop*(1.0-prop)))/(2.0*math.sqrt(2.0*n)*prop*(1-prop) ))
    success = (p >= 0.01)
    return (success,p,None)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号