当前位置: 首页 > news >正文

《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 = 31 +4 =5 1+6 =71+8= 91+10 =111 +12 =13246810中间差22610 中间差44是不是可以认定为这个加减中的一个间隔呢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 = 31 + 4 = 53 + 5 是不是1组呢1 + 6 = 71 + 8 = 91 + 10 = 111+ 12 =131+ 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.02dem = 0
add = 0
sub = 1
for i in range(1, 15, 2):add = (1 / (i + 2)) + (1 / (i + 4))sub -= addprint((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月天天的工作和多余的事情阻碍了太多多了
祝大家新年吉祥

http://www.lryc.cn/news/531436.html

相关文章:

  • 低通滤波算法的数学原理和C语言实现
  • 【BUUCTF杂项题】荷兰宽带数据泄露、九连环
  • 安全策略实验报告
  • Haproxy+keepalived高可用集群,haproxy宕机的解决方案
  • 亚博microros小车-原生ubuntu支持系列:20 ROS Robot APP建图
  • Dockerfile构建容器镜像
  • python 在包含类似字符\x16、\x12、\x某某的数组中将以\x开头的字符找出来的方法
  • Spring Bean 的生命周期介绍
  • 调用腾讯云批量文本翻译API翻译srt字幕
  • 车载软件架构 --- 软件定义汽车面向服务架构的应用迁移
  • Baklib引领内容中台与人工智能技术的创新融合之路
  • 想品客老师的第十一天:模块化开发
  • 接入DeepSeek大模型
  • 基于遗传算法的256QAM星座图的最优概率整形matlab仿真,对比优化前后整形星座图和误码率
  • JavaScript系列(57)--工程化实践详解
  • Linux-CentOS的yum源
  • 【大数据技术】案例03:用户行为日志分析(python+hadoop+mapreduce+yarn+hive)
  • LeetCode 0680.验证回文串 II:两侧向中间,不同就试删
  • 第二十章 存储函数
  • 架构规划之任务边界划分过程中承接分配
  • 【C++】线程池实现
  • vsnprintf的概念和使用案例
  • 解读隐私保护工具 Fluidkey:如何畅游链上世界而不暴露地址?
  • Linux环境Kanass安装配置简明教程
  • 数据分析常用的AI工具
  • 项目中常用中间件有哪些?分别起什么作用?
  • kaggle视频行为分析1st and Future - Player Contact Detection
  • 1. junit5介绍
  • (脚本学习)BUU18 [CISCN2019 华北赛区 Day2 Web1]Hack World1
  • Caxa 二次开发 ObjectCRX-1 踩坑:环境配置以及 Helloworld