1 回答

TA貢獻1871條經(jīng)驗 獲得超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>是“重復(fù)此列表<number>次數(shù)并將結(jié)果放入新列表”的符號。[i]只是一個僅包含 number 的列表i。
編輯:解釋
for i in range(v):
可以很好地翻譯為:
for (int i = 0; i < v; i++) {
subsequence += [i] * v**(p - column)
這有點復(fù)雜,但它本質(zhì)上說的是“取 v,取它的 (p - 列) 次方,然后將該數(shù)字添加到子i序列中”。這很接近:
int limit = Math.Pow(v, p - column);
for (int j = 0; j < limit; j++)
subsequence.Add(i);
return subsequence * v**(column - 1)
現(xiàn)在這意味著“取 v 的(列 - 1)次方,并返回一個包含許多子序列實例的列表?!?這就是函數(shù)中其余代碼的作用:獲取 Math.Pow(v, column - 1) 子序列,將它們?nèi)刻砑拥搅斜碇?,然后返回所述列表?/p>
- 1 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報