我试图为某些东西制作计算器,但公式使用sigma,我不知道如何在python中使用sigma,是否有运算符? 我在这里放了一个链接,上面有一个公式,上面有插图:http://fromthedepths.gamepedia.com/User:Evil4Zerggin/Advanced_cannon
答案 0 :(得分:1)
在Python中执行此操作的有效方法是使用reduce()。
解决
3
Σi
i = 1
您可以使用以下内容:
from functools import reduce
result = reduce(lambda a, x: a + x, [0]+list(range(1,3+1)))
print(result)
reduce()将接受一个lambda和一个可迭代的参数,并返回一个由lambda指定的值。累加器为a,设置为第一个值(0),然后设置为该值之后的当前和。可迭代的当前值设置为x并添加到累加器中。返回最终的累加器。
sigma右边的公式由lambda表示。我们求和的序列由iterable表示。您可以根据需要更改它们。
例如,如果我想解决:
Σπ* i ^ 2
我
对于序列I [2、3、5],我可以执行以下操作:
reduce(lambda a, x: a + 3.14*x*x, [0]+[2,3,5])
您可以看到以下两行代码产生相同的结果:
>>> reduce(lambda a, x: a + 3.14*x*x, [0]+[2,3,5])
119.32
>>> (3.14*2*2) + (3.14*3*3) + (3.14*5*5)
119.32
答案 1 :(得分:0)
sigma(Σ)是Summation运算符。它会多次计算某个表达式,变量略有不同,并返回所有这些表达式的 sum 。
例如,在Ballistic coefficient公式中
Python实现看起来像这样:
# Just guessing some values. You have to search the actual values in the wiki.
ballistic_coefficients = [0.3, 0.5, 0.1, 0.9, 0.1]
total_numerator = 0
total_denominator = 0
for i, coefficient in enumerate(ballistic_coefficients):
total_numerator += 2**(-i) * coefficient
total_denominator += 2**(-i)
print('Total:', total_numerator / total_denominator)
您可能需要查看enumerate
function,并注意精确度问题。
答案 2 :(得分:0)
最简单的方法是创建一个sigma函数,返回返回的总和,您几乎无法理解,不需要使用库。您只需要了解逻辑即可。
def sigma(first, last, const):
sum = 0
for i in range(first, last + 1):
sum += const * i
return sum
# first : is the first value of (n) (the index of summation)
# last : is the last value of (n)
# const : is the number that you want to sum its multiplication each (n) times with (n)
答案 3 :(得分:0)
我已经查看了不同程序员和编码员试图为您的查询提供的所有答案,但我无法理解其中任何一个,也许是因为我是一名高中生,根据我的说法,使用 LIST 肯定会减轻一些痛苦编码,所以这里是我认为形成 sigma 函数的最简单方法。
#creating a sigma function
a=int(input("enter a number for sigma "))
mylst=[]
for i in range(1,a+1):
mylst.append(i)
b=sum(mylst)
print(mylst)
print(b)