利用有放回抽样估计自然常数e python

  • 运行结果
  • 代码

有放回抽样中,当抽样次数n等于样本数量,且趋近于正无穷时,一个数字没有被抽到的概率如下
lim⁡n→∞(1−1n)n=1e\lim_{n \to \infty} (1-\frac{1}{n} )^n=\frac{1}{e} n→∞lim​(1−n1​)n=e1​

可以利用这一点估计e的值

由于我暑假闲的无聊,想巩固一下学的python,故写了三种不同的版本,分别利用集合set,字典dict,还有numpy的ndarray

一开始用的字典,发现python是真的慢,1e8线性时间复杂度都要用上个十几秒

我还以为是我打开方式不对,尝试了三种版本后发现都要十几秒,最后又一次直观的感受到了python的慢

运行结果



代码

字典版

import pandas as pd
import numpy as np
import time
time_start = time.time()  # 记录开始时间
d={}
n=10000000
cnt=0
for i in range(n):num=random.randint(0,n-1)if d.get(num,0)==0:d[num]=1else:cnt=cnt+1
print(n/cnt)
time_end = time.time()  # 记录结束时间
time_sum = time_end - time_start  # 计算的时间差为程序的执行时间,单位为秒/s
print(time_sum)

numpy版

import pandas as pd
import numpy as np
import time
time_start = time.time()  # 记录开始时间
n=10000000
d=np.zeros(n, dtype = int)
cnt=0
for i in range(n):num=random.randint(0,n-1)if d[num]==0:d[num]=d[num]+1else:d[num]=d[num]+1cnt=cnt+1
print(n/cnt)
time_end = time.time()  # 记录结束时间
time_sum = time_end - time_start  # 计算的时间差为程序的执行时间,单位为秒/s
print(time_sum)

set版

import pandas as pd
import numpy as np
import time
time_start = time.time()  # 记录开始时间
n=10000000
d=set()
for i in range(n):num=random.randint(0,n-1)d.add(num)
print(n/(n-len(d)))
time_end = time.time()  # 记录结束时间
time_sum = time_end - time_start  # 计算的时间差为程序的执行时间,单位为秒/s
print(time_sum)

利用有放回抽样估计自然常数e python相关推荐

  1. 如何利用python画三棱锥_微积分,英文版数学书,Calculus,积分,Excel,自然常数e,Python,泰勒展开...

    标题写的挺长的. 我是个学渣,念过大学,学过高数,学的时候不甚懂,工作中也没实践,仅有的一点粗浅概念早就还给老师了. 因为儿子即将开始学前教育,未雨绸缪,我开始研究现在的义务教育有些什么内容,不知不觉 ...

  2. python:自然常数 e =2.71828

    python:自然常数 e 开n次方 print_e.py # coding=utf-8 import math # 自然常数 e #e = 2.71828 e = math.e print('e=' ...

  3. 练习:试炼自然常数e

    Python 官网:https://www.python.org/ Free:大咖免费"圣经"教程< python 完全自学教程>,不仅仅是基础那么简单-- My CS ...

  4. PX4飞控中利用EKF估计姿态角代码详解

    PX4飞控中利用EKF估计姿态角代码详解 PX4飞控中主要用EKF算法来估计飞行器三轴姿态角,具体c文件在px4\Firmware\src\modules\attitude_estimator_ekf ...

  5. julia自然常数_Julia中的Sys.KERNEL常数

    julia自然常数 Julia| 系统内核常数 (Julia | Sys.KERNEL Constant) Sys.KERNEL is a constant of the Symbol type in ...

  6. python如何并发运行2个软件_如何利用并发性加速你的python程序(二):I/O 绑定程序加速...

    原标题:如何利用并发性加速你的python程序(二):I/O 绑定程序加速 雷锋网 AI 科技评论按,本文是工程师 Jim Anderson 分享的关于「通过并发性加快 python 程序的速度」的文 ...

  7. python分数类_利用标准库fractions模块让Python支持分数类型的方法详解

    前言 你可能不需要经常处理分数,但当你需要时,Python的Fraction类会给你很大的帮助.本文将给大家详细介绍关于利用标准库fractions模块让Python支持分数类型的相关内容,分享出来供 ...

  8. python利用公式计算_从零开始用Python构造决策树(附公式、代码)

    来源:Python中文社区 作者:weapon 本文长度为700字,建议阅读5分钟 本文介绍如何不利用第三方库,仅用python自带的标准库来构造一个决策树. 起步 熵的计算: 根据计算公式: 对应的 ...

  9. 我们数学中常用的自然常数e代表什么?看完长知识了!

    我们在学习期间都接触过自然常数e,也知道e ≈ 2.718,学过极限的同学应该也知道 那么大家知道e的含义是什么吗?为啥叫"自然常数"? e的含义可以用一个计算利息的例子来解释. ...

  10. 微积分review 极限,迫敛性,极限四则运算,自然常数来历

    微积分review 极限,迫敛性,极限四则运算,自然常数来历 只能证明 (1+1/n)^n : 1.是递增的: 2.是有界的. 然后命名它为e,不是证明出来的,而是定义出来的: lim (1+1/n) ...

最新文章

  1. 【从零学习openCV】opecv操作像素
  2. 字符串的第n个排列的算法
  3. java1.8之supplier
  4. Java Spring Data Redis实战与配置参数详解 application.properties...
  5. mysql去掉秒杀场景_秒杀场景下mysql减库存逻辑优化
  6. 【机卓14蒋海平-U201411018】机电传动控制课程-《自动化技术中的进给电气传动》第一章的1.1节和1.2节——读书笔记整理...
  7. STM32 ADC转换实验
  8. Vue第二部分(4): 嵌套路由和路由传参
  9. java 页面级缓存_用CashFilter实现页面级缓存实践
  10. php如何安装源码包,php源码包安装步骤是什么
  11. B样条曲线(B-spline Curves)
  12. 电力载波通信了解笔记
  13. 计算机启动太慢可以设置什么来加速启动速度,电脑开机启动慢怎么办?教你4种设置方法,轻松加快win10开机速度!...
  14. 学会如何学习 - 成为更好的终身学习者
  15. 【Redis】Linux安装Redis步骤详细讲解,以及make、make install区别
  16. windows编程之WM_MENUSELECT消息
  17. 计算机等级良好和优秀是什么意思?
  18. word里双横线怎么打_word文档横线怎么打
  19. 电商项目-购物车(合并购物车问题)
  20. L298n控制步进电机

热门文章

  1. JAVA关于父亲节的代码_关于父亲节的祝福语
  2. 企业微信第三方应用添加好友
  3. excel多个表格数据汇总怎么做?
  4. 2022-12-24 三阶魔方完整教程和口诀速记,二级魔方教程
  5. 读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据。程序输出读到的数据中的奇数和偶数的个数。
  6. 记一次笔记本win键失灵 不能用 windows 徽标键失灵
  7. C语言入门——常见数据类型取值范围
  8. 论文整理:Probabilistic Logic Neural Networks for Reasoning
  9. (CCTV2视频)中国动画80年
  10. 【容斥原理】(AtCoder Regular Contest 093 F) Dark Horse