这里的目标是生成通过迭代保证唯一的随机配对(没有两个数字彼此匹配超过一次)。你知道吗
这是一个谋杀神秘派对,我每半年写一次,主持一次,我名单上的每个数字都会被一个字符名替换,然后与另一个字符匹配,随机生成另外两个字符,他们有谋杀动机,一个他们不会谋杀(因此三次迭代)。你知道吗
我不确定我在结尾的if语句是否真的起到了什么作用,尽管数字看起来还不错。这对我来说可能已经足够好了,但我正在努力学习。谢谢。你知道吗
import random
characters = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]#character list
print("list of all characters:")
print(characters)
print("")
i=1
while i <= 3: #loop three times
random.shuffle(characters)#randomize list
print("random character combinations", i, ":")
for x in range(0,len(characters),2):
pairing = [characters[x], characters[x+1]]
print(pairing)
i+=1
if pairing == pairing: #ensure uniqueness?
continue
样本输出:
list of all characters:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22]
random character combinations 1 :
[20, 2]
[15, 6]
[11, 18]
[22, 9]
[14, 8]
[12, 5]
[10, 16]
[7, 4]
[17, 21]
[19, 3]
[13, 1]
random character combinations 2 :
[6, 20]
[15, 17]
[19, 13]
[16, 14]
[21, 2]
[9, 10]
[7, 11]
[8, 4]
[18, 3]
[22, 5]
[12, 1]
random character combinations 3 :
[1, 2]
[13, 5]
[12, 18]
[9, 14]
[22, 3]
[7, 8]
[19, 4]
[10, 21]
[11, 15]
[6, 20]
[17, 16]
要生成随机唯一对,可以执行以下操作:
k
是231对的列表。你知道吗我觉得你的问题有点让人困惑,但听起来像个有趣的难题。你知道吗
为了重新解释你的问题,我假设你:
您希望自动生成这些。你知道吗
我不确定这是否符合您的要求,但我是通过创建一个结构来实现的,该结构将从其内部集随机选择一个项,从其内部集移除该项并返回该项(即,它会以破坏性方式进行自身变异)。你知道吗
然后,通过使用其中三个结构来管理三个独立的选择流。你知道吗
它产生如下输出(添加风味的名称):
相关问题 更多 >
编程相关推荐