求实验成功的平均期望
来源:互联网 发布:国家安全网络领导小组 编辑:程序博客网 时间:2024/05/16 08:43
假设每次用(不无聊,无聊)来表示当前状态。而不无聊加无聊的人数总和是一定的。经过一次交谈,有三种情况:
1. (i, j) –> (i, j) 选中的两个朋友都是无聊的。
2. (i, j) –> (i-1, j+1) 选中的一个朋友无聊,另一个不无聊的。
3. (i, j) –> (i-2, j+2) 选中的两个朋友都不无聊。
这三次选择的情况分别对应:
(1)从原来的 i 个人中选择2个。
(2)从 i 个人选1个,从 j 个人选1个。
(3)从原来的 j 个人中选择2个。
假设总共有t个人,从中选择两个人可能有
而发生这三种情况的概率为分别:
(1)
(2)
(3)
而从一个状态到达另一个状态,可以简化为二分类:保持当前状态或者发生改变。这就很有意思了。让人想起一个经典问题,有一枚硬币,假设抛掷为正面的概率为p,抛掷为负面的概率为1-p,一直抛掷直到出现正面才停下来,求抛掷的平均次数。很容易可以推导出公式为:2/p+1/(1-p)-1。
应用到当前问题,假设每次改变状态为成功事件,所需要的次数为2/p+1/(1-p)-1,其中p=
代码如下
import numpy as np#p表示成功的概率,求不到成功不停下来的实验次数的期望def times(p): if p == 0: return float('inf') if p == 1: return 1 return 2/p+1/(1-p)-1m_people = 40n_people = 50total_people = m_people + n_peoplepair_of_mn = np.zeros([total_people+1,total_people+1])#当只有一个有趣的人时,只要选中这个有趣的人实验就结束了#m = 0, 时间为0#m+n>1#m个有趣的人,n个无聊的人,0<m,n<=50#m总是在减少,n总是在增加,#m不会超过50个人,而n会m = 1n = total_people - mun_success = n*(n-1)/((m+n)*(m+n-1))pair_of_mn[m,n] = times(1-un_success)for i in range(2,m_people+1): j = total_people - i un_success = j*(j-1)/((i+j)*(i+j-1)) port_1 = 2*i*j/(2*i*j+i*(i-1)) port_2 = i*(i-1)/(2*i*j+i*(i-1)) pair_of_mn[i,j] = times(1-un_success) + port_1*pair_of_mn[i-1,j+1] + port_2*pair_of_mn[i-2,j+2]for i in range(1,m_people+1):# print(i,total_people-i,pair_of_mn[i,total_people-i]-pair_of_mn[i-1,total_people-i+1]) print(i,total_people-i,pair_of_mn[i,total_people-i])
阅读全文
0 0
- 求实验成功的平均期望
- BNU29034 求期望的dp
- 求期望的方法讲解
- 链地址法和线性探测法求查找成功与不成功的平均查找长度ASL
- 链地址法和开放定址法,求等概率下查找成功时的平均查找长度
- 求期望
- 求低于平均分的人数
- 求5个同学的平均成绩
- 求n门课程的平均成绩
- 一个防止溢出的求平均方法
- 求学生三门成绩的平均成绩
- 求自定类型元素的平均
- 求参赛者的平均分,取最大值
- 求给定字符串的平均字符长度
- hdu5723(16多校第1场,树上两点平均距离的期望)
- excel求平均分
- hdu求平均成绩
- hdu_2023_求平均成绩
- java 编程思想笔记
- 大话设计模式----单一职责原则
- 第二周——第二次课(环境变量、cp命令、mv命令、文档查看)
- 一只爬虫带你看世界【3】
- codeigniter在nginx安装配置及URL重写
- 求实验成功的平均期望
- 自己进化的Unity人工智能(二)
- 使用AngularJS和HTML做淘宝中购物车的一些功能
- 入门代码,Swift表格,标签控制器
- Dynamic CRM 2016 IFD配置(5)Claims-based认证-内部访问配置
- 四个好看的table表格样式
- Spring Boot(三)--- Mybatis
- TFRecord数据集
- java类加载器以及双亲委派机制