【发布时间】:2011-02-28 23:18:19
【问题描述】:
我不确定如何为我的问题命名,所以我不能确定这个问题之前没有得到回答。也就是说,以下是对我的编程问题的描述。
我有一个包含 2 个整数元素的类 R,比如 X 和 Y。然后我有两个名为 A 和 B 的 24 元素数组,其中每个元素都包含一个类 R 的实例。我想遍历数组以确定如何使用 RY 填充第三个数组 C,如下所示:
如果 A 的索引 i 处的 R.Y 大于 B 的索引 i 处的 R.Y,则将 A 中的 R 放入 C 的索引 i 中。
如果 B 的索引 i 处的 R.Y 大于 A 的索引 i 处的 R.Y,则将 B 中的 R 放入 C 的索引 i。
如果 A 的索引 i 处的 R.Y 等于 B 的索引 i 处的 R.Y,则将任一 R 放入 C 的索引 i。
让我感到困惑的是这些条件中的第三个。例如,如果数组 A 和 B 的索引 7、15 和 19 的 RY 彼此相等,那么我想在 C 中的这些索引处尝试 A 和 B 的每个元素,以确定基于 CRC 需要哪个元素检查C。所以我可以将以下R值放入C的相同索引值中:
A[7]、A[15]、A[19]
A[7]、A[15]、B[19]
A[7]、B[15]、A[19]
A[7]、B[15]、B[19]
B[7]、A[15]、A[19]
B[7]、A[15]、B[19]
B[7]、B[15]、A[19]
B[7]、B[15]、B[19]
这 8 种组合来自 2^3(2 个数组的 RY 次幂相同的次数),所以如果我在 A 和 B 中有 4 个索引,其中 RY 相等,那么将有 16 种组合, 5 个索引 = 32 个组合,6 = 64,等等。
问题是我永远不知道 R.Y 在 A 和 B 中对于所有索引有多少次相同;它可能是 0 到 24。所以为了简短的描述,我需要一个算法来填充 C 与来自 A 和 B 的所有可能的 R 类,其中 RY 在两个数组中是相等的,遍历 C 的所有可能组合并停止当 C 的第一个实例通过 CRC 校验时。
听起来很简单?但愿如此。如果您需要任何进一步的说明,请告诉我,或者将我指向一个与已经回答的类似内容的线程。 TIA
【问题讨论】:
标签: .net c++ arrays combinations