有一个集合,例如 (1, 4, 2, 5, 7, 6, 9, 8, 3)。我们按照以下方式计算它的
因此,给定集合的 FD 是 (3, -2, 3, 2, -1, 3, -1, -5)。任务是找到给定集合的排列数,使其 first difference 是 FD 的排列。在这个例子中,我们需要找到 (1, 4, 2, 5, 7, 6, 9, 8, 3) 的这样的排列,使得它们的 first differences 是 (3, -2, 3, 2, -1, 3, -1, -5) 的排列。
下面是我的算法:
first difference
(FD): firstDifference[i] = inputArray[i+1] - inputArray[i]
。其中inputArray是原始集合。在这个例子中,inputArray 是(1, 4, 2, 5, 7, 6, 9, 8, 3),firstDifference 是从 inputArray 创建的,如下所示:(inputArray 的第二个元素) - (inputArray 的第一个元素),以此类推。因此,给定集合的 FD 是 (3, -2, 3, 2, -1, 3, -1, -5)。任务是找到给定集合的排列数,使其 first difference 是 FD 的排列。在这个例子中,我们需要找到 (1, 4, 2, 5, 7, 6, 9, 8, 3) 的这样的排列,使得它们的 first differences 是 (3, -2, 3, 2, -1, 3, -1, -5) 的排列。
下面是我的算法:
- 找到给定集合的所有排列。
- 找到给定集合的 FD。
- 找到所有排列的 first differences。
- 仅选择 first differences 中包含给定集合的 FD 数字的集合。计算它们的数量。