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 關注
- 139 瀏覽
添加回答
舉報