python模拟函数 python编写函数模拟sum( 二 )


1-简单的Python程序-模拟抛硬币我们这次的任务是利用Python来模拟抛硬币的情况,并且记录正面朝上占所有试验中的比率,大家是不是想起了课堂中提到过的蒲丰 , 皮尔逊等人做的试验?当然,我们现在已经不再需要再去扔几千次,几万次硬币了;Python为我们提供了一个相当便捷的解决方案 。Python 的randint(0,1)函数可以等概率 , 随机地返回0与1两个数,我们可以将返回的数值0记为硬币的反面,1记为硬币的正面,所以问题就转换成了:统计大量重复试验中,结果为1占总试验次数的比例 。
简单地画一个流程图,希望有助于大家理解 。
*流程图是网上使用ProcessOn画的,一个免费的在线流程图绘制平台 , 简单容易上手,强烈安利给大家~
废话不多说,上图:
可以看见,随着硬币投掷次数的增加,正面朝上的几率逐渐稳定在0.5,这就是我们在课堂上讲过的内容:在重复试验中 , 我们可以使用频率的稳定值作为事件发生的概率 。
怎么样 , 是不是学到了一招?
在这个程序的基础上,我相信大家有能力进行进一步地延伸与发散 。
大家可以尝试着去完成这样三个问题:
1 , 比较一下当投掷次数为100次,1000次与10000次的图像差别(提示:为了使区别更加显著 , 大家可以尝试将X轴使用对数坐标表示)
好的 , 就先写到这里,感觉有意思的话点个赞再走呗~
使用Python构造经验累积分布函数(ECDF)对于一个样本序列,经验累积分布函数 (Empirical Cumulative Distribution Function)可被定义为
其中是一个指示函数,如果,指示函数取值为1,否则取值为0,因此能反映在样本中小于的元素数量占比 。
根据格利文科定理(Glivenko–Cantelli Theorem),如果一个样本满足独立同分布(IID),那么其经验累积分布函数会趋近于真实的累积分布函数。
首先定义一个类,命名为ECDF:
我们采用均匀分布(Uniform)进行验证,导入 uniform 包,然后进行两轮抽样,第一轮抽取10次,第二轮抽取1000次,比较输出的结果 。
输出结果为:
而我们知道,在真实的0到1均匀分布中,时,,从模拟结果可以看出,样本量越大,最终的经验累积分布函数值也越接近于真实的累积分布函数值,因此格利文科定理得以证明 。
python语言中可以调用的函数有哪些?Python语言中有很多内置函数和标准库函数可以直接调用,同时还可以自定义函数和调用其他模块中的函数 。以下是一些常用的Python内置函数和标准库函数:
数学函数:abs(), pow(), round(), max(), min(), math库中的sin(), cos(), tan(), pi等函数 。
字符串函数:len(), str(), int(), float(), ord(), chr(), upper(), lower(), replace(), split()等函数 。
列表函数:append(), extend(), insert(), remove(), pop(), sort(), reverse()等函数 。
文件操作函数:open(), read(), write(), close()等函数 。
时间和日期函数:time(), sleep(), strftime()等函数 。
正则表达式函数:re.compile(), re.search(), re.match(), re.sub()等函数 。
网络编程函数:socket库中的socket(), bind(), listen(), accept()等函数 。
详解Python中的__new__、__init__、__call__三个特殊方法 __new__: 对象的创建 , 是一个静态方法,第一个参数是cls 。(想想也是,不可能是self , 对象还没创建,哪来的self)
__init__ : 对象的初始化,是一个实例方法,第一个参数是self 。
__call__ : 对象可call , 注意不是类 , 是对象 。
先有创建,才有初始化 。即先__new__,而后__init__ 。

推荐阅读