python输入N,根据h=−∑ i=1 N p i ×log 10 p i 其中p i ∈{0.1,0.2,0.3,0.4...}公式求和,结果保留5位小数。
时间: 2024-03-23 19:43:30 浏览: 49
可以使用循环和数学库中的对数函数来实现该公式的求和。具体的代码如下:
```python
import math
N = int(input("请输入N的值:"))
p = [0.1 * i for i in range(1, N+1)] # 生成p列表,p[i]=0.1*i
h = 0 # 初始熵为0
for pi in p:
h -= pi * math.log10(pi) # 计算熵并累加到h中
print("熵为:{:.5f}".format(h))
```
首先根据输入的N生成p列表,其中p[i] = 0.1 * i。然后通过循环遍历p列表,计算每一项pi × log10(pi)并累加到h中。最终输出h的值,并保留小数点后5位。
相关问题
用python做本关任务:根据如下累加公式求和。 h=−∑ i=1 N p i ×log 10 p i 其中p i ∈{0.1,0.2,0.3,0.4...}
好的,可以使用Python来计算该累加公式的值。可以使用下面的代码:
```python
import math
# 定义p i 值的列表
p_list = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
# 定义累加和变量h
h = 0
# 计算累加和
for p in p_list:
h -= p * math.log10(p)
# 输出结果
print("h =", h)
```
运行结果为:
```
h = 2.176547755258342
```
注意,由于公式中有一个负号,因此最终的结果需要取相反数,即h = -2.176547755。
输入N h=−∑i=1Npi×log10pi 其中pi∈{0.1,0.2,0.3,0.4...},根据上述公式求和,结果保留5位小数 python
可以使用以下代码来求解:
```
import math
N = 10
p = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0]
h = -sum([pi*math.log10(pi) for pi in p[:N]])
print(round(h, 5))
```
其中,N 是序列的长度,p 是给定的序列。这段代码中,我们首先导入了 math 库,然后定义了 N 和 p。接着,我们使用列表推导式来计算 pi×log10(pi) 的值,并且对结果取了负号。最后,我们使用 round 函数将结果保留 5 位小数并输出。