一个伪随机发生器的Python实现

2024-09-28 01:28:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在读一篇名叫More Efficient Oblivious Transfer Extensions with Security for Malicious Adversaries的论文,作者是吉拉德·阿沙罗夫、叶赫达·林德尔、托马斯·施奈德和迈克尔·佐纳。在

他们在第8页上展示了他们的协议。在展示所使用的工具时,他们会写下:

pseudorandom generator G

如果我的理解是正确的,他们使用一个名为G的伪随机发生器,它将一个长度为k的0和1组成的对象作为输入,生成一个长度为m的0和1的对象。在

我的问题是:如何在Python中实现这一点?

我如何实现一个伪随机生成器,它接受大小为k的种子并产生大小为m的输出?在


Tags: 工具对象协议formorewithextensions作者
2条回答

您可以使用itertools和随机选择() 这一个将产生'01'长度40排列大小39, islice会给你1000分中的前10分。在

>>> li = list(it.islice(map(''.join,permutations('01' * 40, 39)),1000))
>>> item = random.choice(li)
>>> print(item)
010101010101010101010101010101010101010

你可以总是生成a string of ^{} ones :-)。。。在

一个简单的解决方案是将输入数字(介于0和{})输入random.seed,然后从random.randrange(1<<m)得到结果。在

相关问题 更多 >

    热门问题