自然常数e约等于2.,是自然对数的底,是无限不循环小数,是无理数,也是超越数。有多种公式计算:
本文主要目的是用Python分析自然常数e的小数点数字0-9的出现概率。
1.数据
数据如下图所示,共位,文件名为e.txt。
2.数据处理
把文件每行的标注去掉,并转化为列表数据结构,接着去掉换行符“\n”,去掉空格。代码如下:
导入必要的库读入数据、去掉换行符和空格把刚才得到的列表e转化为第三方库Pandas的序列数据结构
e_series为最终数据清洗结果,满足分析要求。打印出来如下:
第一列为索引,第二列为相应数字3.统计各个数字的出现频率
起始统计位数长度为,后面每过位统计一次(即第二次统计位数长度为1),每一次统计都计算各个数字的出现频率。通过函数e_number_frequency()实现,函数的输入为e_series,输出为Pandas的DataFrame二维数据结构,每一列代表一个数字的所有统计频率,每一行代表所有数字在某一次统计的频率。代码如下:
4.可视化
绘制各个数字频率曲线图以及代码如下:
从图中可以看出,各个数字的频率最后稳定于0.1,可以下结论各个数字出现的概率为0.1。有意思的是,绿色类的线都在0.1之下,红色类的线都在0.1之上。
对比研究
读者可以利用本文的方法对多个无理数或超越数进行对比分析,如对比数字1的频率曲线,寻找它们共同和区别的地方。
(作者:百家号/AiMath)