【发布时间】:2018-09-23 10:13:21
【问题描述】:
import random
value = 1000
a = []
i = 0
b = [None] * 16
print('value = ',1000)
for x in range(value):
a.append(x)
random.Random(4).shuffle(a)
print(a)
for x in range(16):
b[x] = a[x]
print(b)
此代码生成 16 个随机数,范围为 1000。但是如何在 python 中生成具有从 1 到 26 不同模值的数字呢?
考虑数值示例
随机得到的值为:
184,15,106,8,93,150,210,144,271,365,65,60,385,164,349,405
当我们使用所有这些数字执行mod 26 操作时,我们得到
0,15,2,8,15,20,2,14,11,1,13,8,21,8,11,15分别
这里的数字15,8,11,2 是重复的。所以我想消除这种重复。为此,我想在执行mod 26 操作时生成具有不同值的随机数。
【问题讨论】:
-
什么是“唯一模值”?
-
唯一模数意味着为每个随机选择的数字计算的模值(例如 421 mod 26 )应该是不同的,或者如上所述选择 16 个具有不同模值的随机数,从 1 到 26。