《PYTHON语言程序设计》(2018版)1.7近似π。利用步幅来进行修改

利用循环的步幅来计算派

在这里插入图片描述
利用正常的办法,

pi= 4 *(1-(1/3)+(1/5)-(1/7)+(1/9)-(1/11)+(1/13)-(1/15))
print(pi)

利用这段代码得出结果在这里插入图片描述
我们如何利用循环来进行呢
一、思路
首先我们来利用excel表格来计算一下结果
在这里插入图片描述
我做了一个设想,让相加的部分先进行相加,然后再进行减法呢??
在这里插入图片描述
结果却不对
继续利用excel表格对这个结果进行列出

在这里插入图片描述
经过错误的结果,我明白了应该按公式里的顺序进行
先减法再加法
那么我一直加呢
我之前的理解是
1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13…
我将1/3+1/5先计算,然后变成
1 - (1/3 + 1/5) - (1/7 + 1/9)…
可是这样的结果却出现了偏差
10 - 3 + 5
那么我理解成3+5再减10呢
看来是不对的.
合理的解释应该是
(1-1/3) + (1/5 - 1/7)

思路用了很久才慢慢的清楚了

二、代码演变
基础代码

pi= 4 *(1-(1/3)+(1/5)-(1/7)+(1/9)-(1/11)+(1/13)-(1/15))
print(pi)

按循环的概念做记录


2025.1.13
过了一年,10月份停下一切。
12月半拿半放。
看看今天怎么样

如果将add 或者sub变量初始设置为字符串,则累计过程中会出现
TypeError: can only concatenate str (not "float") to str
的提示。
所以dem、add、sub都应该用0来为初始值
规律
 所有被减数都是间隔都为2
问题
  我现在得到了1除于每个间隔为2的数结果
  我现在希望将两个相加的结果进行相减
  将两个间隔为2的数相加的结果单独提出来。
  如果进行嵌套式的循环呢
  我之前的逻辑是135放外面进行循环
  在他们里面增加 加 或 减。
  但这次我想换一下
  把加和减放到第一层循环里来用
  是把减法放到第一层,
  第二层作加法
        但我感觉这个难度有点大
                其实我们这么想,不论是什么是加减乘除法,都是数字填写在里面对吧。
        1、嵌套里怎么写
        2、第一层循环怎么写
        
  嵌套并没有成功
  但我想了这个注意,不知道如何,
  add = (1 / (i + 2)) + (1 / (i + 4))
  但是他得到了我用excel计算出来的部分结果。可以让他如何跳着进行,而不是逐一进行呢??
  这样呢,我们来把315之间进行一个统计
  以1为底数,然后步幅为2进行相加
  1+2 = 3
  1 +4 =5 
  1+6 =7
  1+8= 9
  1+10 =11
  1 +12 =13
   246810中间差2
   2610 中间差4
   4是不是可以认定为这个加减中的一个间隔呢
   
   for i in range(1, 15, 2):
    if i % 4 == 0 or i < 4:
        add = (1 / (i + 2)) + (1 / (i + 4))
        print(add)
        
    得出了3+55+7
    
*****************************250113 1646
2025.1.14
 我们这么想
 1 + 2 = 3
 1 + 4 = 5
             3 + 5 是不是1组呢
 1 + 6 = 7
 1 + 8 = 9
 1 + 10 = 11
 1+ 12 =13
 1+ 14 =15
 *****

 for i in range(1, 15, 2):
    add = (1 / (i + 2)) + (1 / (i + 4))
    print((i + 2), (i + 4), add)


***** 

2025.2.1
新年继续我自己的工作和生活
*************保留公式******************
备注:

此公式的sub代表这1 利用他为公式的头一个数
然后我设计的是将相加的部分让他们先自行相加,然后得出的数再进行相减
可是结果不对.
我利用excel得出的结果如果先自行相加,在进行减法得出的数值翻到不对.
这让我很迷惑

01.07.02

dem = 0
add = 0
sub = 1
for i in range(1, 15, 2):
    add = (1 / (i + 2)) + (1 / (i + 4))
    sub -= add
    print((i + 2), (i + 4), add, sub)

*************保留公式******************


2025.2.3

先减法在加法
那么我一直加呢
我之前的理解是
1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + 1/13....
我将1/3+1/5先计算,然后变成
1 - (1/3 + 1/5) - (1/7 + 1/9).....
可是这样的结果却出现了偏差
10 - 3 + 5
那么我理解成3+5再减10呢
看来是不对的.
合理的解释应该是
(1-1/3) + (1/5 - 1/7)

01.07.03版本的头两次循环接近了我想要的结果
dem = 0
add = 0
sub = 1
for i in range(1, 15, 2):
    add += (1 / i) - (1 / (i + 2))
    print(i, (i + 2), add)



**************************
dem = 0
add = 0
sub = 1
for i in range(1, 15, 2):
    add += (1 / i) - (1 / (i + 2))
    print("{:.10f} {:.10f} {:.10f}".format((1 / i), (1 / (i + 2)), add))


经过这些代码的不断的设计,
今天终于做出来了.接近目标的代码

add = 0
sub = 1
for i in range(1, 15, 4):
    add += (1 / i) - (1 / (i + 2))
    print("经过不断的计算努力结果 {:.10f}".format( add))

在这里插入图片描述
成功了,
2025年继续努力
2024年10月到2025年1月天天的工作和多余的事情阻碍了太多多了
祝大家新年吉祥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贾宝不是玉

谢谢各位兄弟们的关注,谢谢破费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值