关于圆周率的新认知 - 2

当未知长度的单位 1 和已完成长度的单位 1 之间的比例不是 1:1 而是其它的数值的时候,不难看出,这时候的圆周率就变成了“椭圆周率”。你可能要说,这不是椭圆积分吗?对了,这就是椭圆积分。但是我们不要考虑什么椭圆积分,也就是“术”,而是从“术”去探寻后面的本质,也就是“道”。比如椭圆的周长为啥没有初等形式?

不难理解, 是写不出初等形式的。这里的初等形式就是不用什么无穷展开式的形式,就能表达的(反三角函数不算初等形式),无穷展开式也可以被认为是积分的计算式,这就必然引入高等数学的微积分。对于自然对数底 e ,我们可以写一个简单的极限形式,但是上面分析可以看出圆周率 无法写成简单的极限形式。可是为什么呢?为什么 必须写成无穷展开形式?这里有一个关键的原因,就是它不是等比数列,而是“类等比数列”,也就是说,它并不基本。正如分析中看到的,它的每一个细节都是重要的,不可忽略的,不可压缩的,数值上不重复的。这些细节必须都如其所是的展现和应用,才能得到预期的结果。比如我们可以考虑一下,“世界的深度”问题。

我们知道,已知的物理世界中的最小长度单位是普朗克长度,其数值约为

小于这个长度的长度数值是没有意义的。我们想知道的是,圆周率的精度要达到多少才能满足精确的描述到这个长度而不出错。

根据奈奎斯特定理,只要精度可以达到这个长度的一半,就不会出错。也就是,

比如现在有 1 米的长度,它含有多少个“半普朗克长度"?

因为圆周率对应的本质是无穷分辨率二分法,那么我们要做的就是给出 1 米要二分多少次才能实现 倍,也就是,

也就是把 1 米二分 117 次就能到达 的尺度。而要满足从 1 到 的所有分辨率,则

中的,

也就是算上第一个 1 一共 118 项。用 WallisProductForPi 程序计算,

=3.1415926535897932384626433832795028837117542690193978304300692906910722764246484779868671982472968461145914502030480042149194000360931827741286277693646703759569539131095642059921717455856699298162590746974495626887754567548573247048

Iterates = 118, Digits = 233, Duration = 00:00:00.0069917

算上最开始的 3 ,一共 234 个十进制位。也就是说,一个半径 1 米的圆盘,若要精细的计算其周长和面积,用上面给出的 234 个十进制位的圆周率,就可以精确到普朗克长度的一半,也就是精确到物理世界的最大分辨率。据查,已知人类可观测的最大长度为

那么最大和最小尺度之间的比率为

将 204 带入 WallisProductForPi ,得到,

=3.141592653589793238462643383279502884197169399375105820974944587513348308572560229674272821127637787898485165318568647570710675728761324048835622098710634183609348219866616974523465089020053331090156730307545037331007369768879293569304740977253050027216660075271319160441643206305077047929875585522104215303330035764504506317993204269519538392068950265924625668981683394944286112129077815440181088261161977466484203656470088070977234403307910403981

Iterates = 204, Digits = 448, Duration = 00:00:00.0088822

算上最开始的 3 ,一共 449 个十进制位。也就是说,从可观宇宙的最大长度到微观世界的最小长度,用 449 位十进制的圆周率就足够精确了。

using System.Diagnostics;
using System.Numerics;namespace WallisFormulaForPi;public class Program
{//计算圆周率的沃里斯乘积算法//分子和分母分别计算//最后彼此相除//可以得到极高精度的计算结果//Pi/2 = Sum(n!/(2n+1)!!,n>=0)//Pi/2 = 0!/1! + 1!/3! + 2!/5!+...static BigInteger WallisProductForPi(BigInteger n){var upper = n;var lower = (n << 1) + 1;upper += lower;for (--n; n >= 1; --n){upper *= n;upper += (lower *= ((n << 1) + 1));}upper *= BigInteger.Pow(10, (int)Math.Ceiling(BigInteger.Log10(lower)));return (upper << 1) / lower;}//单阶乘static long Factorial1(long n) => n >= 1 ? n * Factorial1(n - 1) : 1;//双阶乘static long Factorial2(long n) => n >= 1 ? n * Factorial2(n - 2) : 1;/// </summary>/// <param name="args"></param>static void Main(string[] args){BigInteger n = 204;var stopwatch = new Stopwatch();stopwatch.Start();var pi = WallisProductForPi(n);stopwatch.Stop();Console.WriteLine($"pi={pi}");Console.WriteLine($"Iterates = {n}, Digits = {(int)Math.Ceiling(BigInteger.Log10(pi))}, Duration = {stopwatch.Elapsed}");}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/8929.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM64平台Flutter环境搭建

ARM64平台Flutter环境搭建 Flutter简介问题背景搭建步骤1. 安装ARM64 Android Studio2. 安装Oracle的JDK3. 安装 Dart和 Flutter 开发插件4. 安装 Android SDK5. 安装 Flutter SDK6. 同意 Android 条款7. 运行 Flutter 示例项目8. 修正 aapt2 报错9. 修正 CMake 报错10. 修正 N…

进程池的制作(linux进程间通信,匿名管道... ...)

目录 一、进程间通信的理解 1.为什么进程间要通信 2.如何进行通信 二、匿名管道 1.管道的理解 2.匿名管道的使用 3.管道的五种特性 4.管道的四种通信情况 5.管道缓冲区容量 三、进程池 1.进程池的理解 2.进程池的制作 四、源码 1.ProcessPool.hpp 2.Task.hpp 3…

新年祝词(原创)

新年将至&#xff0c;福进万户。 家家团圆&#xff0c;事事顺心。 喜迎财神&#xff0c;多寿添金。 瑞兽迎春&#xff0c;炮竹声起。 趋吉避凶&#xff0c;蛇年大吉。 中华崛起&#xff0c;人人自强。 天下大同&#xff0c;百姓富足。 有情有义&#xff0c;平易近人。 …

stack 和 queue容器的介绍和使用

1.stack的介绍 1.1stack容器的介绍 stack容器的基本特征和功能我们在数据结构篇就已经详细介绍了&#xff0c;还不了解的uu&#xff0c; 可以移步去看这篇博客哟&#xff1a; 数据结构-栈数据结构-队列 简单回顾一下&#xff0c;重要的概念其实就是后进先出&#xff0c;栈在…

python:洛伦兹变换

洛伦兹变换&#xff08;Lorentz transformations&#xff09;是相对论中的一个重要概念&#xff0c;特别是在讨论时空的变换时非常重要。在四维时空的背景下&#xff0c;洛伦兹变换描述了在不同惯性参考系之间如何变换时间和空间坐标。在狭义相对论中&#xff0c;洛伦兹变换通常…

DIY QMK量子键盘

最近放假了&#xff0c;趁这个空余在做一个分支项目&#xff0c;一款机械键盘&#xff0c;量子键盘取自固件名称QMK&#xff08;Quantum Mechanical Keyboard&#xff09;。 键盘作为计算机或其他电子设备的重要输入设备之一&#xff0c;通过将按键的物理动作转换为数字信号&am…

【Unity3D】aab包太大无法上传Google问题

目录 一、勾选Split Application Binary&#xff0c;Unity直接打aab包 勾选Split Application Binary选项的影响 不勾选Split Application Binary选项的影响 总结 2、导出Android工程打包aab 一、勾选Split Application Binary&#xff0c;Unity直接打aab包 超出150MB部分…

DeepSeek助力学术文献搜索!

搜集文献 宝子们如果是第一次发表学术论文&#xff0c;论文往往是会署名多个作者。在这种情况下&#xff0c;即便成功发表了论文&#xff0c;独立撰作或主导写作的挑战仍旧存在。那么&#xff0c;怎样才能独立地完成一篇属于自己的学术论文呢&#xff1f;对于初次尝试学术论文…

【时时三省】(C语言基础)文件的随机读写

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 fseek 根据文件指针的位置和偏移量来定位文件指针 示例&#xff1a; 这个输出的就是ade seek&#xff3f;cur的意思是从当前偏移量 2就是从a往后偏移两个就是d 偏移量 SEEK&#xff3f;CUR…

Python-基于PyQt5,json和playsound的通用闹钟

前言&#xff1a;刚刚结束2024年秋季学期的学习&#xff0c;接下来我们继续来学习PyQt5。由于之前我们已经学习了PyQt5以及PyUIC,Pyrcc和QtDesigner的安装&#xff0c;配置。所以接下来我们一起深入PyQt5&#xff0c;学习如何利用PyQt5进行实际开发-基于PyQt5&#xff0c;json和…

数据结构课程设计(三)构建决策树

3 决策树 3.1 需求规格说明 【问题描述】 ID3算法是一种贪心算法&#xff0c;用来构造决策树。ID3算法起源于概念学习系统&#xff08;CLS&#xff09;&#xff0c;以信息熵的下降速度为选取测试属性的标准&#xff0c;即在每个节点选取还尚未被用来划分的具有最高信息增益的…

2024收尾工作

目录 开场白 栈与队列 LeetCode232. 用栈实现队列 LeetCode225. 用队列实现栈 LeetCode102. 二叉树的层序遍历 LeetCode103. 二叉树的锯齿形层序遍历 堆&#xff08;优先级队列&#xff09; 堆排序 LeetCode215. 数组中的第 k 个最大元素 总结 开场白 今天是除夕&…

纯css实现div宽度可调整

<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, initial-scale1.0" /><title>纯css实现div尺寸可调整</title><style…

浅谈Linux的发展

目录 1.Linux背景 1.1 发展史 UNIX发展的历史 1.2开源 1.3官网 1.4.企业应用现状 1.5.发行版本 1.6 os概念&#xff0c;定位 1.Linux背景 1.1 发展史 学习Linux系统编程&#xff0c;你可能要问Linux从哪里来&#xff1f;它是怎么发展的&#xff1f;在这里简要介绍Linux的发展史…

四层网络模型

互联网由终端主机、链路和路由器组成&#xff0c;数据通过逐跳的方式&#xff0c;依次经过每条链路进行传输。 网络层的工作是将数据包从源端到目的端&#xff0c;跨越整个互联网。 网络层的数据包称为数据报。网络将数据报交给链路层&#xff0c;指示它通过第一条链路发送数据…

世上本没有路,只有“场”et“Bravo”

楔子&#xff1a;电气本科“工程电磁场”电气研究生课程“高等电磁场分析”和“电磁兼容”自学”天线“、“通信原理”、“射频电路”、“微波理论”等课程 文章目录 前言零、学习历程一、Maxwells equations1.James Clerk Maxwell2.自由空间中传播的电磁波3.边界条件和有限时域…

python学opencv|读取图像(四十六)使用cv2.bitwise_or()函数实现图像按位或运算

【0】基础定义 按位与运算&#xff1a;全1取1&#xff0c;其余取0。按位或运算&#xff1a;全0取0&#xff0c;其余取1。 【1】引言 前序学习进程中&#xff0c;已经对图像按位与计算进行了详细探究&#xff0c;相关文章链接如下&#xff1a; python学opencv|读取图像&…

如何把obsidian的md文档导出成图片,并加上文档属性

上篇关于这个插件PKMer_Obsidian 插件&#xff1a;Export Image plugin 一键将笔记转换为图片分享的文章 如何把obsidian的md文档导出成图片&#xff0c;并加上水印-CSDN博客 如何导出图片的时候让文档属性也显示出来&#xff0c;啊啊&#xff0c;这个功能找了一晚上&#xf…

MATLAB算法实战应用案例精讲-【数模应用】方向梯度直方图(HOG)(附python代码实现)

目录 前言 算法原理 特征描述 什么是方向梯度直方图? 算法思想: 实现方法: 性能提高: HOG特征提取 直方图阈值化 直方图均衡化 算法步骤: 算法流程 1. 图像预处理 2. 计算图像梯度 3. 计算梯度直方图 4. 图像HOG特征向量 直方图反向投影 其它类型图像直…

CycleGAN模型解读(附源码+论文)

CycleGAN 论文链接&#xff1a;Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks 官方链接&#xff1a;pytorch-CycleGAN-and-pix2pix 老规矩&#xff0c;先看看效果 总体流程 先简单过一遍流程&#xff0c;细节在代码里说。CycleGAN有…