我有一个 X 乘 Y 矩阵,从中我需要生成从一侧(第一列)到另一侧(最后一列)的所有可能方式,但只有途中的 N 个点可以是与任何其他生成的组合相同。
我知道我可以生成所有组合并将它们与所有其他组合进行比较以过滤出我想要的组合,但是对于更大的矩阵,如 16 x 16,组合是生成所有组合并将每个组合与休息。
有没有一种方法可以生成相似度最大为 N 的组合,而不必全部生成它们?
例子:N=1
["a", "a", "a"]
["b", "b", "b"]
["c", "c", "c"]
应该生成这样的东西: 啊啊 abb acc bba cca 出租车
我已经研究了几天,但没有找到任何好的解决方案,因此非常感谢任何帮助,如果可能的话,在 C# 中。
最佳答案
答案 = y ^ (x - n)
首先忽略您的问题,概括地说,您有一个 3x3 网格。所以:
x = 3;
y = 3;
n = 1;
因此你有 y^x 组合,即 3^3 = 27
如果您想确保在此过程中没有一定数量的匹配项,您可以简单地按该数量减少列数量,以减少排列数量。
在您的示例中,N 是 1,因此将 x 减 1 得到 2 的 x。
现在 3^2 = 6,这是你给出的答案。
如果您将其放大,我相信它会准确,但我度过了漫长的一周,所以如果我遗漏了什么,请随时告诉我。
编辑 重新阅读您的问题后,我不确定我是否理解正确,我很感兴趣,所以请告诉我...
关于c# - 通过与任何其他矩阵具有最大 N 相似性的矩阵生成所有路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9703048/