为了账号安全,请及时绑定邮箱和手机立即绑定

与此 Python 等效的 C# 是什么?

与此 Python 等效的 C# 是什么?

C#
红颜莎娜 2023-08-20 14:47:25
从这里开始,与此代码等效的 C# 是什么?我认为**是指数,但我不知道是什么[i]。def sequence(v, p, column):    subsequence = []    for i in range(v):        subsequence += [i] * v**(p - column)    return subsequence * v**(column - 1)
查看完整描述

1 回答

?
慕桂英4014372

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) 子序列,将它们全部添加到列表中,然后返回所述列表。


查看完整回答
反对 回复 2023-08-20
  • 1 回答
  • 0 关注
  • 76 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信