【问题标题】:How to fix my math code about series in Python?如何修复我在 Python 中关于系列的数学代码?
【发布时间】:2019-09-13 13:23:01
【问题描述】:

我需要编写一个基本的“for 循环”来计算我在下面写的数学问题。我试图写它,但我不确定它是否正确。 有什么问题可以修吗?

(m=2,n=1是下限)

a=1
b=0

for n in range(1,7):
    for m in range(2,11):
        x=(n**3+1)**(2*m+1)
        b=b+x
    a=a*b
print(a)

【问题讨论】:

  • 你的数学表达我很不清楚。请用不同的形式写出来。例如,您可以在Mathematics Stack Exchange 使用 MathJax,复制图形并链接到它。我们可以将该图形插入您的问题中。但是您的前两个字符“∏6”完全不清楚。 “∏”是乘积符号,“6”是乘以总和的因子吗?
  • 是什么让您认为它不正确?从技术上讲,您可以手动尝试,然后比较结果。
  • @RoryDaulton 旁边有代码,我读起来非常简单:大写的 pi 是乘积,上限为 6,起点为 n=1。与大写 sigma 类似,上限为 10,m=2 为起点。
  • 粗略一看,它看起来还不错。你为什么不确定?运行的时候有没有发生什么不好的事情?你知道你期待什么输出吗?循环中的更多打印语句是否可以帮助您了解其间发生的情况?
  • 您的b 将无限增加,并且不会在内循环完成之间重置。你可能想解决这个问题。

标签: python-3.x math series


【解决方案1】:

变量b 不会在每次迭代后重置,因此总和不正确。如果要使用循环,请执行以下操作:

a=1

for n in range(1,7):
    b=0
    for m in range(2,11):
        b+=(n**3+1)**(2*m+1)
    a*=b
print(a)

如果您想更简洁,请执行以下操作:

a=1
for n in range(1,7):
    a*=sum((n**3+1)**(2*m+1) for m in range(2,11))
print(a)

【讨论】:

    猜你喜欢
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    相关资源
    最近更新 更多