请注意,这 not 又是一个“如何生成所有排列”的问题,这里有很多问题。我已经看了很多,但我的具体问题不再进一步。
给定一个整数
n
,我想生成一个 List<int[]>
的 int[n*n]
其中每个列表包含从 1 到 n
的整数的唯一排列。
所以如果
n
是2,我想看到16个数组,如下...
[1,1,1,1],
[1,1,1,2],
[1,1,1,3],
[1,1,1,4],
[1,1,2,1],
[1,1,2,2],
...etc
[4,4,4,1],
[4,4,4,2],
[4,4,4,3],
[4,4,4,4],
对于这种特定情况,可以通过以下方式实现...
Enumerable.Range(1, 2)
.SelectMany(n1 => Enumerable.Range(1, 2)
.SelectMany(n2 => Enumerable.Range(1, 2)
.SelectMany(n3 => Enumerable.Range(1, 2)
.Select(n4 => new[] { n1, n2, n3, n4 }))))
.ToList()
但是,除了笨拙之外,这是针对数字 2 的硬编码。如果我想对 3 做同样的事情,我需要有 9
SelectMany
行,依此类推。我想要一个灵活的解决方案,适用于传入的任何数字。
我见过的所有其他问题只需要 1 到
n
的所有排列,即 n
数组的集合,每个数组的长度为 n
。我的情况需要n*n
数组,每个数组的长度为n*n
.
有人能帮忙吗?谢谢
• 使用 Linq(不是 Lambda),如何检查列表是否为空,如果不是,则返回该列表中包含的结果。否则,返回所有结果
• 使 linq to sql 过滤模型详细信息时无法检测列标题 ID?
• 使用 groupby 和 first() 改进 linq 查询
• 如何在 numpy 中乘以 n x 1 和 m x 1 向量
• Python Numpy - 移动最小值(最后 N-1 个值)
• 在 Pandas 中对组内值进行排序的有效方法 [重复]
• 将单个 XML 解析为 pandas Dataframe