我正在为学校项目这样做(因此我不能使用任何高级功能),并且我正在使用Python 2.6.6。
我有一个从1到1000的数字列表,我的种子将是448。
如何使用该种子生成随机序列,以便列表中的数字位于不同的索引中?
知道种子后,是否有可能将列表中的元素返回到初始位置?
抱歉,如果我的问题令人困惑,但是英语不是我的母语。
谢谢。
import random
SEED = 448
myList = [ 'list', 'elements', 'go', 'here' ]
random.seed(SEED)
random.shuffle(myList)
print myList
结果是
['here', 'go', 'list', 'elements']
您的列表现已伪随机化。
“伪”很重要,因为所有具有相同种子和项目数的列表将以相同的“随机”顺序返回。我们可以用它来改变您的清单;如果它确实是随机的,那将是不可能的。
Order = list(range(len(myList)))
# Order is a list having the same number of items as myList,
# where each position's value equals its index
random.seed(SEED)
random.shuffle(Order)
# Order is now shuffled in the same order as myList;
# so each position's value equals its original index
originalList = [0]*len(myList) # empty list, but the right length
for index,originalIndex in enumerate(Order):
originalList[originalIndex] = myList[index]
# copy each item back to its original index
print originalList
结果是
['list', 'elements', 'go', 'here']
多田 originalList现在是myList的原始顺序。
当你将本章节的程序运行了几遍后,你就会发现,我们所得到的随机数值都是一样的。很明显,他们不是所谓的随机出现的。 伪随机数出现的特性之一是如果一连串随机数出现的起始点一样,则这一串数字始终是一样的。随机数出现的起始点称作种子。每次运行C++程序时,它默认将随机数种子保持一致。 当你调试程序时,产生相同的序列对你是非常有用的。当你修改程序时,就可以有一个更好的比对。 如果你想换一组随机数,可以使用sr
Python的模块< code>uuid的uuid4()函数生成一个随机uuid,似乎每次都会生成一个不同的: 我希望每次运行脚本时都能生成相同的随机UUID,也就是说,我希望在中种子随机生成器。有办法做到这一点吗?(或通过其他方式实现)? 我必须使用< code>uuid生成一个UUID。UUID()方法使用一个随机的128位整数(来自< code>random的种子实例。Random())作为
问题内容: 我有一个相当大的程序,在这里我使用模块中不同文件中的函数。我希望能够在一个位置设置一次随机种子,以使程序始终返回相同的结果。可以做到吗? 问题答案: 运行的主要python模块应该并调用-只要其他位置未重置种子,其他所有导入都可以共享该模块。
问题内容: 在我的代码中,我在不同的类中使用随机数。如何定义随机种子?我可以为主代码中的所有类定义此种子吗? 问题答案: 您可能需要使用特殊的Random类。它使您可以更好地控制随机数。为此,您首先需要创建一个新的随机对象。 然后通过生成一个新的数字 http://docs.oracle.com/javase/6/docs/api/java/util/Random.html
问题内容: 这是我的代码,使用种子作为参数来生成随机数: 每次我提供种子并尝试生成100个数字时,它们都是相同的。 我怎样才能解决这个问题? 问题答案: 如果你给相同的种子,那是正常的。这是允许测试的重要功能。 选中此选项可了解伪随机生成和种子: 伪随机数发生器 伪随机数生成器(PRNG),也称为确定性随机位生成器DRBG,是一种用于生成近似于随机数属性的数字序列的算法。该序列不是真正随机的,因为
例如下面的代码。它有一个随机类。然而,它总是在任何地方产生相同的输出。在这种情况下,哪一项是种子? 来源:link