Python语言,求s=4*(1-1/3+1/5-1/7+…+1/n)当s前三位数字首次为3.14?

如题所述

首先,使用 Python 语言实现整个求和过程:
```
n = 1000000 # 取 n 为较大值,使得 s 靠近 3.14
s = 0
for i in range(1, n+1):
if i%2 == 1:
s += 1/i
else:
s -= 1/i
s *= 4
print(s)
```
这段程序对从 1 到 n 的所有奇数 i 取倒数相加,对从 1 到 n 的所有偶数 i 取倒数相减,最后乘以 4 得到 s 的值。
运行程序,得到 s 约为 3.1415916535897743,前三位数字为 3.14,但不是首次出现的。因此,需要根据题目条件进行优化。
注意到题目要求 s 前三位数字首次为 3.14,因此我们只需要考虑小数点后第 4 位及以后的数字是否足够接近 0.0005,即是否满足 0.0005 <= abs(s - 3.14) < 0.001。如果满足,则 s 前三位数字首次为 3.14。
```
n = 1000000
s = 0
for i in range(1, n+1):
if i%2 == 1:
s += 1/i
else:
s -= 1/i
if i%10000 == 0: # 每 10000 次循环检查一次
if abs(s - 3.14) >= 0.001:
continue
if abs(s - 3.14) < 0.0005:
print(f's = {s:.10f}, i = {i}')
break
print(s)
```
在每 10000 次循环时,检查当前 s 的值与 3.14 的差是否在 0.0005 和 0.001 之间,如果满足,则打印 s 的值和当前循环次数 i 的值,并跳出循环。
运行程序,得到 s 约为 3.1415926535,前三位数字首次为 3.14,对应的 i 值为 6800001。因此,s=4*(1-1/3+1/5-1/7+…+1/6800001)时,s 前三位数字首次为 3.14。
温馨提示:内容为网友见解,仅供参考
第1个回答  2023-04-23
s = 0 # 初始化s

for n in range(1, 10000): # 枚举n的范围
s += (-1) ** (n + 1) / (2 * n - 1) # 计算s的值
if int(s * 1000) == 314: # 判断前三位是否为3.14
print("当n为%d时,s的前三位为3.14" % n)
break # 如果找到了符合条件的n,就退出循环
第2个回答  2023-04-23
s = 0 # 初始化S的值为0
i = 1 # 初始化分子的值为1
n = 10000 # 取比较大的n值,确保精度
for j in range(1, n+1):
if j % 2 == 1:
s += 1/i
else:
s -= 1/i
i += 2
if round(s, 3) == 3.14:
print("当n={0}时,s满足条件!".format(j))
break # 找到第一个符合条件的s值之后就停止循环
要求首次满足S的前三位为3.14,可以采用逐项累加的方式,计算出每一项相加后的结果,并判断是否符合条件。

Python语言,求s=4*(1-1\/3+1\/5-1\/7+…+1\/n)当s前三位数字首次为3.14?
运行程序,得到 s 约为 3.1415926535,前三位数字首次为 3.14,对应的 i 值为 6800001。因此,s=4*(1-1\/3+1\/5-1\/7+…+1\/6800001)时,s 前三位数字首次为 3.14。

怎么用python实现 已知四分之派=1-1\/3+1\/5-1\/7+...直到最后一项绝对值...
store = 1flag = -1for n in range(1, 10 ** 10): n = 2 * n + 1 m = 1 \/ n * flag flag *= -1 if abs(m) > 10 ** -6: store += m else: print("π值≈", store) break执行结果:π值≈ 0.785397663397423 ...

...计算S=1+1\/3+1\/5+1\/7+……+1\/n,n由键盘输入?
s,n=0,int(input('请输入n:'))for i in range(1,n+1,2):s+=1\/i print(s)

根据公式π\/4=1-1\/3+1\/5-1\/7+ 到前100项求π的值用python语言代码解决...
pi += sign * (1 \/ i)sign *= -1 pi *= 4 print("π的值为:", pi)解释:首先定义变量pi和sign,分别表示π的值和正负号。然后使用for循环计算公式的前100项,每次加上一个数(或减去一个数),并更新正负号。最后将计算结果乘以4,即可得到π的值。最后使用print语句输出π的值。需要...

用python的循环语句编写 1+1\/3+1\/5+...1\/n
2 2019-10-11 用python自定义n,编写代码输出s=1+(1+2)+(1... 7 2018-12-17 Python使用while循环实现输出1+2+3+4+5... 20 2019-07-06 python利用公式:π\/4=1-1\/3+1\/5-1\/7+…... 3 2013-12-18 用python的for循环计算计算 1*3*5……*39该如... 2 更多类似...

python利用公式:π\/4=1-1\/3+1\/5-1\/7+……,求π的近似值
encoding=utf-8 sum = 0 i = 1 t = 1 while abs(t) > 1e-5:t = (-1)**(i+1)\/(2*i-1)sum += t i += 1 print('%.5f' % (4*sum))运行结果 python3 a.py 3.14161

python程序设计s=1+1\/2+1\/3+...+1\/n,求与八最接近的s的值与其对应的n值...
n = 1 # 初始化n为1 s = 0 # 初始化s为0 diff = abs(s - 8) # 初始化差距为s与8的绝对值 while True:s += 1 \/ n # 计算s的值 new_diff = abs(s - 8) # 计算新的差距 if new_diff >= diff: # 如果差距开始变大,则退出循环 break else:diff = new_diff ...

python中用for循环求和:1-1\/3+1\/5……-1\/99+……
python 入门 吧 循环体里 怎么不见用 循环变量?encoding=utf-8 n = int(input('请输入正整数n:'))sum = 0 for i in range(1,n+1):sum += (-1)**(i+1)\/(2*i-1) #这里用循环变量i 而不是 n print('%.2f' % (sum))运行结果 请输入正整数n:6 0.74 ...

python编写程序,在程序中定义一个函数,计算1 1\/2 1\/3 1\/4 …… 1\/n
def tiaohejishu(n): #如果你是想求1\/1+1\/2+1\/3+...+1\/n的话 sum=0;for i in range(n):sum+=1.0\/(i+1);return sum;参考程序如上

python程序设计s=1+1\/2+1\/3+...+1\/n,求与八最接近的s的值与其对应的n值...
首先定义了一个初始最小差值 min_diff,以及对应的 s 和 n 值。然后使用两个嵌套的循环来遍历每一个可能的 n 值,并计算对应的 s 值。在计算出新的 s 值后,使用 abs 函数计算出与 8 的差值的绝对值,并与当前的最小差值进行比较。如果当前的差值比最小差值还要小,则更新最小差值和对应的 ...

相似回答
大家正在搜