基于列和行标准填充二维成对数组

2024-03-29 08:58:44 发布

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

我正在尝试创建一个随机的二维数组,它基于16个名为“teams”的列表,每个列表包含13个元素,其中每个元素是一个2个字符的代码,表示“匹配”,或者是团队名称和其他团队名称的组合。例如,“ab”代表“a”队和“b”队之间的比赛。如果列表“a”有“ab”,那么列表“b”也必须有表示该匹配的匹配“ab”元素。你知道吗

我的目标是创建一个13列的2D数组,其中每列都有16支球队中的每一支与另一支球队比赛,并且使用每支球队的所有比赛。你知道吗

例如:如果“A”队在第一栏中与“B”队交手,则该栏中没有其他队可以与“A”队或“B”队交手,在13栏中,“A”队必须与“B”、“C”、“D”队交手两次,与“E”、“F”、“G”、“H”队交手一次,与“J”、“K”、“L”队交手一次。你知道吗

除此之外,我希望在数组中如何安排每支球队的比赛时有一个随机性元素,这样就可以在保持要求的同时生成不同的列组合。我认为贪婪算法在这里可能有用,但我不知道如何开始在这种情况下实际实现一个。任何建议阅读或文章也表示感谢。你知道吗

以下是球队和比赛的总名单:

a: ['ab', 'ac', 'ad', 'ab', 'ac', 'ad', 'ae', 'af', 'ag', 'ah', 'aj', 'ak', 'al']
b: ['ab', 'bc', 'bd', 'ab', 'bc', 'bd', 'be', 'bf', 'bg', 'bh', 'bi', 'bk', 'bl']
c: ['ac', 'bc', 'cd', 'ac', 'bc', 'cd', 'ce', 'cf', 'cg', 'ch', 'ci', 'cj', 'cl']
d: ['ad', 'bd', 'cd', 'ad', 'bd', 'cd', 'de', 'df', 'dg', 'dh', 'di', 'dj', 'dk']
e: ['ef', 'eg', 'eh', 'ef', 'eg', 'eh', 'ae', 'be', 'ce', 'de', 'en', 'eo', 'ep']
f: ['ef', 'fg', 'fh', 'ef', 'fg', 'fh', 'af', 'bf', 'cf', 'df', 'fm', 'fo', 'fp']
g: ['eg', 'fg', 'gh', 'eg', 'fg', 'gh', 'ag', 'bg', 'cg', 'dg', 'gm', 'gn', 'gp']
h: ['eh', 'fh', 'gh', 'eh', 'fh', 'gh', 'ah', 'bh', 'ch', 'dh', 'hm', 'hn', 'ho']
i: ['ij', 'ik', 'il', 'ij', 'ik', 'il', 'im', 'in', 'io', 'ip', 'bi', 'ci', 'di']
j: ['ij', 'jk', 'jl', 'ij', 'jk', 'jl', 'jm', 'jn', 'jo', 'jp', 'aj', 'cj', 'dj']
k: ['ik', 'jk', 'kl', 'ik', 'jk', 'kl', 'km', 'kn', 'ko', 'kp', 'ak', 'bk', 'dk']
l: ['il', 'jl', 'kl', 'il', 'jl', 'kl', 'lm', 'ln', 'lo', 'lp', 'al', 'bl', 'cl']
m: ['mn', 'mo', 'mp', 'mn', 'mo', 'mp', 'im', 'jm', 'km', 'lm', 'fm', 'gm', 'hm']
n: ['mn', 'no', 'np', 'mn', 'no', 'np', 'in', 'jn', 'kn', 'ln', 'en', 'gn', 'hn']
o: ['mo', 'no', 'op', 'mo', 'no', 'op', 'io', 'jo', 'ko', 'lo', 'eo', 'fo', 'ho']
p: ['mp', 'np', 'op', 'mp', 'np', 'op', 'ip', 'jp', 'kp', 'lp', 'ep', 'fp', 'gp']

我知道这个问题是相当普遍的,有点奇怪,所以请让我知道,如果我可以澄清任何事,提前感谢!你知道吗


Tags: 元素列表abcdbdadaceg