寻找产生相同随机数的种子

时间:2019-09-15 17:31:19

标签: python-3.x random random-seed

我一直在思考一个有趣的问题,想找出解决方法。

我想找到一个生成相同随机数的seed,特别是我想找到一个种子,其中第一个random.getrandombits(32)将等于函数3x + 1中的某个值,域1<=x<=99

例如:我想找到一个种子i,其中的某个索引为j random.getrandombits(32) == (the 3j + 1th generation of) random.getrandbits(32)

我已经尝试在python中对其进行暴力破解,但是效果并不理想。这是我到目前为止的脚本:

import random, sys

# Find seed in the range of 1-1,100000000
for i in range(1,100000000):
    random.seed(i)
    # Get first random number
    first = random.getrandbits(32)
    print("In {}".format(i))
    # Test for first 100 numbers
    for j in range(100):
            if (j != 0): random.getrandbits(32)
            current = random.getrandbits(32)
            # Found seed in which it occurs
            if (current == first):
                    print(i,j)
                    sys.exit(0)
            random.getrandbits(32)
    print("Done {}".format(i))

0 个答案:

没有答案