1 回答
TA贡献1871条经验 获得超13个赞
人们可以这样做:
public static List<int> sequence(int v, int p, int column) {
var subsequence = new List<int>();
for (int i = 0; i < v; i++) {
int limit = (int)Math.Pow(v, p - column);
for (int j = 0; j < limit; j++)
subsequence.Add(i);
}
var true_sequence = new List<int>();
for (int k = 0; k < (int)Math.Pow(v, column - 1); k++)
true_sequence.AddRange(subsequence);
return true_sequence;
}
[i] * <number>是“重复此列表<number>次数并将结果放入新列表”的符号。[i]只是一个仅包含 number 的列表i。
编辑:解释
for i in range(v):
可以很好地翻译为:
for (int i = 0; i < v; i++) {
subsequence += [i] * v**(p - column)
这有点复杂,但它本质上说的是“取 v,取它的 (p - 列) 次方,然后将该数字添加到子i序列中”。这很接近:
int limit = Math.Pow(v, p - column);
for (int j = 0; j < limit; j++)
subsequence.Add(i);
return subsequence * v**(column - 1)
现在这意味着“取 v 的(列 - 1)次方,并返回一个包含许多子序列实例的列表。” 这就是函数中其余代码的作用:获取 Math.Pow(v, column - 1) 子序列,将它们全部添加到列表中,然后返回所述列表。
- 1 回答
- 0 关注
- 103 浏览
添加回答
举报