如何在 python 3 中执行 Sigma

新手上路,请多包涵

我正在尝试为某些东西制作一个计算器,但是公式使用了一个西格玛,我不知道如何在 python 中做一个西格玛,有没有一个运算符?我将在此处放置一个包含公式的页面的链接以供说明:http://fromthedeps.gamepedia.com/User: Evil4Zerggin /Advanced_cannon

原文由 Brumes 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

大写西格玛 (Σ) 将其后的表达式应用于范围的所有成员,然后对结果求和。

在 Python 中, sum 将取一个范围的总和,你可以将表达式写成一个推导式:

例如 速度系数

枪口速度的一个因素是速度系数,它是(非外壳)部分的速度调节器 s i的加权平均值,其中从头部开始的每个分量 i 的权重是前一个分量的一半:

s={\frac {\sum 0.75^{i}s_{i}}{\sum 0.75^{i}}}}

因此,头将始终确定至少 25% 的速度系数。

例如,假设炮弹有一个复合头(速度修正 1.6)、一个实心弹头体(速度修正 1.3)和一个超空泡底座(速度修正 0.9)。然后我们有

0 = 1.6

1 = 1.3

2 = 0.9 s={\frac {0.75^{0}\cdot 1.6+0.75^{1}\cdot 1.3+0.75^{2}\cdot 0.9}{0.75^{0}+0.75^{1}+0.75^{2 }}}\约 1.33}

从示例中我们可以看到 i 从 0 开始而不是通常的 1 所以我们可以这样做

def speed_coefficient(parts):
    return (
        sum(0.75 ** i * si for i, si in enumerate(parts))
        /
        sum(0.75 ** i for i, si in enumerate(parts))
    )

 >>> speed_coefficient([1.6, 1.3, 0.9])
1.3324324324324326

原文由 Chris Wesseling 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题