小编Nit*_*yal的帖子

使插槽具有 1..N 范围内的唯一数字对

N位数字。假设N = 6

这定义了一个范围,从 1 开始:[1,2,3,4,5,6]

我需要创建它们唯一的对,以便范围中的每个数字仅与另一个数字配对一次。

例如,可用的对有:

(1,2),(1,3),(1,4),(1,5),(1,6),
(2,3),(2,4),(2,5),(2,6),
(3,4),(3,5),(3,6),
(4,5),(4,6),
(5,6)
Run Code Online (Sandbox Code Playgroud)

所以我们可以说,对于N的值,将有N*(N-1)/2对。

N = 6 时,总对数为 15。

现在,这些对需要放入槽中,这样一个槽只会使用数字一次。此外,任何一对都不能使用多次。

反例:

(1,2),(1,3),(1,4),(1,5),(1,6),
(2,3),(2,4),(2,5),(2,6),
(3,4),(3,5),(3,6),
(4,5),(4,6),
(5,6)
Run Code Online (Sandbox Code Playgroud)

总共有S个槽,其中S = N-1

这里,如果N = 6,则时隙数 = 6 - 1 = 5。

问题

我找不到创建此类插槽的模式。我正在为此寻找一种算法。如果可以编写代码,我更喜欢 Python。

到目前为止,认为N是偶数:6, 8, 12, ...

python sorting algorithm logic

0
推荐指数
1
解决办法
253
查看次数

标签 统计

algorithm ×1

logic ×1

python ×1

sorting ×1