【问题标题】:Need help converting a math formula in Python code需要帮助在 Python 代码中转换数学公式
【发布时间】:2021-02-20 07:11:43
【问题描述】:

我这里有这个公式:

过去 6 个小时我一直在研究这个问题,但无法在 Python 中获得编码版本。 有一些数学技能的人可以帮助我完成这项任务吗?

非常感谢,

编辑: 这是我目前的尝试:

def create_group(i, k):
    return (my_list[i] - my_list[i - k]) * my_other_list[i - k]

def computation():
        
    main = []
    new_group_container = []

    for i in range(len(my_list)):
        for k in range(len(main)):
            new_group = create_group(i=i, k=k)
            new_group_container.append(new_group)
        group = sum(new_group_container) 
        main.append(group)

    return main

【问题讨论】:

  • 现在编辑了代码。谢谢
  • 您能否为您的程序添加一些输入示例、它们产生的输出以及您希望它们产生的输出? (例如输入 6 输出 7 但我想输出 9)
  • 输入应该基本上是两个相同长度的数字列表。没有其他约束。输出应该是一个列表,公式应用于其他两个列表的每个成员,每行产生一个数字,因此输出应该与输入列表的长度相同。
  • 我仍然不确定您要做什么。是否有可以添加的问题陈述来描述您应该做什么?
  • 我可以看到一些组织它的方法。我的建议是尝试计算每个术语(x[i] - x[i - k])*n[i - k],将每个i 视为一行,将每个k 视为矩阵的一列。所以你正在填充矩阵的下三角形。然后对每一行的非零元素求和。尝试先构造矩阵,打印出来并验证它是否正确,然后调用单独的函数将行元素相加。

标签: python math


【解决方案1】:

解决方案(谢谢@RobertDodier):

rows = [x for x in range(len(X))]
cols = [x for x in range(len(X))]
matrix = [[0 for i in range(len(X))] for j in range(len(X))]
for i in rows:
    for k in cols:
        term = (X[i] - X[i - k]) * Y[i - k]
        matrix[i][k] = term
        if k >= i:
             break
 main = []
 for e in matrix:
     o = sum(e)
     main.append(o)

【讨论】:

    猜你喜欢
    • 2010-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多