数字考研概率论测试题题,19题,帮忙解决下,谢谢啦

数字概率题,19题,帮忙解决下,谢谢啦 _ 泰安汽车网
数字概率题,19题,帮忙解决下,谢谢啦
10000)^n&6931,所以至少16094;0,则P(Ai)=1/10000)^n&gt设Ai表示第i个志愿者能成功配型;10000)^n由1-(,2.5解得n&16093,…n,利用独立性有P(患者能成功找到配型)=P(A1+A2+…+An)=1-(9999/由1-(9999/由1-()^n&10000.99解得n&gt.6;0.4,所以至少46050,所以至少.8解得n&gt,i=1
哇烤!这么多字都打出来了。你时间真多。我算的八分之一
求出对x和y的边缘分布即分别对x和y积分上下限为0到正无穷于是分别得到e^(-y)和e^(-x)二者相乘等于e^(-x-y)与联合密度相等的所以二者就是独立的
哇烤!这么多字都打出来了。你时间真多。我算的八分之一
所有可能为1-9中选3个数字,它们有固定顺序 X=0时不能出现5,所以是8个选3个 X=-1时一定要有5,但不能出现偶数,所以在4个数中选2个 X=1时减一下就行了
求出对x和y的边缘分布 即分别对x和y积分 上下限为0到正无穷 于是分别得到e^(-y)和e^(-x) 二者相乘等于e^(-x-y) 与联合密度相等的 所以二者就是独立的
分母3^3代表所有的情况数 分子2^2代表红球选中了甲或者丙,而白球进了乙 2^3代表所有球都进入了甲或者丙的情况
1)只出现两个6: 第一步,5个骰子中选出2个作6,有C(5,2)种 第二步,其余3个骰子的点数为1至5,有5种可能 P=C(5,2)*5^3/6^5 2)出现3颗一样的概率为: 第一种情况,3个1: 第一步,5个骰子中选出3个作为一样,有C(5,3)种 第二步,其余2个骰子的...
解:X的所有可能取值为:16,17,18,19,20,21,22 P(X=16)=20/100*20/100=0.04 P(X=17)=2*0.2*0.4=0.16 P(X=18)=0.4*0.4+2*0.2*0.2=0.24 P(X=19)=2*0.4*0.2+2*0.2*0.2=0.24 P(X=20)=0.2*0.2+2*0.4*0.2=0.20 P(X=21)=2*0.2*0.2=0.08 P(...
设Ai表示第i个志愿者能成功配型,i=1,2,…n,则P(Ai)=1/10000,利用独立性有 P(患者能成功找到配型)=P(A1+A2+…+An)=1-()^n 由1-()^n&0.5解得n&6931.13,所以至少6932; 由1-()^n&0.8解得n&16093.6,所以至少16094...
返回主页:
本文网址:http://www.0538auto.cn/view-.html概率论与数理统计题,这个19怎么算出来的_百度知道
概率论与数理统计题,这个19怎么算出来的
我有更好的答案
hiphotos.baidu.com/zhidao/pic/item/c9fcc3cec3fdfc031d51e44fdf3f1f://h.baidu.baidu.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http://h.hiphotos.com/zhidao/wh%3D600%2C800/sign=3f45cade8d18367aaddc77db1e43a7ec/c9fcc3cec3fdfc031d51e44fdf3f1f.jpg" esrc="http://h.hiphotos<a href="http
采纳率:88%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。组合数公式:
1. C(n,m)=C(n,n-m)
2. C(n,m)=C(n-1,m-1)+C(n-1,m) 杨辉三角
通项公式:an=a1+(n-1)d
前n项和:s=n*a1+n(n-1)/2*d
等比数列:
通项公式:an=a1*q^(n-1)
前n项目和: s=a1*(1-q^n)/(1-q)
直线公式:
y=kx+b & k=(y2-y1)/(x2-x1) & b=y1-x1*(y2-y1)/(x2-x1)
两直线平行k1=k2 两直线垂直 k1*k2=-1
1. 给一条长度为1的线段,在线段上选取两个点将其分成3段,求这三段能拼成三角形的概率?
根据三角形两边之和大于第三边,两边之差小于第三边,假设其中一段距离左端点的距离为x,另一段为y,令y&x,那么三段的长度分别为x, y-x, 1-y
根据两边之和大于第三边有:y & 1/2&, y-x & 1/2&, x & 1/2, y-x & 0,这几个条件可以确定一个三角形,面积是1/8,这代表x和y能构成三角形的取值范围。
对于线段的切割,有 0&x&y&1, 也就是0&x&1, 0&y&1, x&y组成三角形的面积是1/2,那么1/8/(1/2)=1/4即为能组成三角形的概率。
2. 将54张扑克牌均分成3份,其中大小王在一份里面的概率是多少?
首先将54张牌均分成3份的分法有:M = C(54, 18)*C(36, 18)*C(18, 18)
大小王在一张牌中的分法有:N = C(3, 1)*C(52, 16)*C(36, 18)*C(18, 18)
那么N / M即为所求。
3. 有两个盒子,50个红球和50个黑球,现在设计一种分配方案,使得随机选择一个盒子,然后随机选择一个球,这个球是红球的最大概率是多少?
分配方案:将一个盒子里放一个红球,然后其他所有球都放到另一个盒子里面。
概率:1/2 * 1 + 1/2 * 49/99 = &74.7%
4. 将一个数组均匀打乱的算法?
令当前数组长度为n,在里面随机选择一个数,将其与最后一个数交换,然后再对前n-1个数做相同操作。
5. 利用异或进行两数交换
分析:先令a=a^b,那么b=a^b=(a^b)^b=a,a=a^b=(a^b)^a=b
6. 不用比较符求出a,b的最大值
max=(abs(a+b)+abs(a-b))/2
分析:if a & b 有 max = (a+b+a-b)/2 = a
& & & & if a & b 有 max = (a+b+b-a)/2 = b
7. 不用加减乘除运算符求两个数的和
while(b) {
  sum = a^b;
  carry = (a&b)&&1;
分析:a^b的意思是a和b在二进制下相加,但是不考虑进位,a&b在二进制下为1的位表示相加需要进位的地方,所以需要向左移一位,然后只要进位不为0,就需要再次和上一次不考虑进位的和用同样的方法进行相加。
8. X&=5,X和X+2为素数,证明X+1是6的倍数
首先任意三个连续的自然数都有一个可以被3整除。
证明:对于n-1, n, n+1
假设n%3=1有(n-1)%3=0
假设n%3=2有(n+1)%3=0
因此由于X和X+2都是素数,那么X+1一定是3的倍数,由于X&=5且X和X+2都是素数那么它们一定是奇数所以X+1一定是偶数,X+1含有因子2和因子3所以一定能被6整除。
9. 随即洗牌算法及其证明
在1~n随机选一个数与a[n]交换,再从1~n-1随机选一个数和a[n-1]交换,以此类推。这样做可以做到均匀洗牌,也就是1~n的全排列可以等概率的均匀得到。
证明:首先从n个数中随机选共有n种可能情况,然后在n-1个数中随机选共有n-1种可能情况,那么可以获得的情况有n*(n-1)*(n-2)*...*1种,相当于全排列,也就是全排列中的所有情况都可以等概率的得到。
10. 从海量数据(不能读入内存中)中找中位数,数据都是32位的
解法一:采用分段读入的方法,假设每次读入n个数,用一个长度为n的优先队列进行维护,这样扫一遍海量数据,就可以的到数据中前n大的数,把这n个数去掉,假设海量数据有N个,那么下次就只读入剩下的N-n个数,再找到的就是n+1~2n大的数,以此类推,直到找到第N/2个数。时间按复杂度是O(N/2/n*Nlogn)。
解法二:从32位入手,将每个数据按照二进制分成前后两部分,分别为16位长度,先按照前16位,分成2^16个区间,扫一遍海量数据,统计每个区间一共有多少个数,然后可以确定中位数所在区间,之后就是在这个区间找第k个数,用后16位,将中位数所在的那个前16位区间分成2^16份,统计每个区间有多少个数,就可以确定中位数是哪个了,时间复杂度是O(n)。
11. 三门问题
三扇门,一扇后面有车,另外两扇后面是羊,现在你选了一扇后,主持人打开一扇发现是羊,问你换不换,换了是车的概率是多少?不换是车的概率是多少?
用贝叶斯公式解释一下:
P(你当前选择的这扇门是车|主持人选择的一扇门是羊) = P(你选择的这扇门是车&主持人选择的一扇门是羊) / P(主持人选择的一扇门是羊)
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & = P(主持人选择的一扇门是羊|你选择的这扇门是车) * P(你选择的这扇门是车) / P(主持人选择的一扇门是羊)
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & = (1 * 1 / 3) / 1
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & = 1 / 3
所以更换另一扇门是车的概率为2 / 3, 不更换当前这扇门是车的概率是1 / 3。
12. 烧香问题
两柱香,烧完一柱香所用时间都是1小时,找出一种可以判断15分钟的切割方法
先点燃香1的一端,同时点燃香2的两端,当香2燃尽后,过了半小时,香1还剩一半,这时同时点燃香1的两端就可以在15分钟内燃尽。
13. 灯管问题
房间里有三盏灯分别由三个开关控制,只能进房间一次,需要找出哪个开关控制哪盏灯
先打开一盏灯一段时间,然后关闭它,打开另一盏灯,进入房间,可以确定当前开关控制着哪盏灯,然后摸一下,热的那个就是之前那盏灯,剩下一盏灯对应没打开过的那个开关。
14. 盲人分袜子
两个盲人,每人都买了黑白两对袜子,总共8只,但是他们把袜子混到了一起,现在要求找出一种方案,使得每人都有一对黑袜子和一对白袜子
每个人分别在一对袜子里拿一只就可以了。
15. 蓄水池采样
问题1. 构造一个随机数生成器,使得如果其生成数范围在1~n则每个数被选中的概率都是1/n,比如范围是1~2那么得到1和2的概率都是1/2,范围是1~3则得到1,2,3点概率都是1/3。
构造方法是:首先令num=1,然后用1/2的概率去决定是否用2替换num,也就是令num=2,然后再用1/3的概率决定是否用3替换2,依此类推,对于第n个数n用1/n的概率决定是否用n去替换num。这样下来,n个数替换结束后,num=1~n中任意数字的概率都是1/n。
证明:&开始只有1,那么1被选中的概率P(1)=1,之后添加了2,2被选中的概率是P(2)=1/2,此时1还能被选中的概率P(1最终保留下来)=P(1被选中)*P(2没被选中的概率)=1*(1-1/2)=1/2,之后又添加了3,那么如果已经用2替换了1,此时2不被替换掉概率是P(2最终保留下来)=P(2被选中)*P(3没被选中的概率)=1/2*(1-1/3)=1/3,也就是说范围1~3内,最终生成了2的概率是1/3,再来看1,如果1一直没被替换掉,也就是P(1最终保留下来)=P(1被选中)*P(2没被选中)*P(3没被选中)=1*(1-1/2)*(1-1/3)=1*1/2*2/3=1/3,也就是说在1~3的范围内,最终生成了1点概率也是1/3。
那么对于n个数最终生成第m个数的情况,有:
P(m最终保留下来)=P(m被选中)*P(m+1没被选中)*P(m+2没被选中)*...*P(n没被选中)
& & & & & & & & & & & & =1/m*(1-1/(m+1))*(1-1/(m+2))*...*(1-1/n)
& & & & & & & & & & & & =1/m*m/(m+1)*(m+1)/(m+2)*...*(n-1)/n
& & & & & & & & & & & & =1/n
也就是说n个数中,每个数都是等概率被选中的,得证。
问题2. 在1~n的范围内选出k个数,保证1~n每个数被选中的概率相等。
构造方法是:先保留1~k,然后增加一个数k+1,拿他替换1~k中的数字的概率是k/k+1,替换必须是等概率的1/k,对于第n个数,拿他替换1~k中的数字的概率是k/n,这样可以保证范围在1~n的所有数中每个数被选到这k个数中的概率都是k/n。相当于把上个问题的1变成了k。
证明:首先只有k个数的时候它们被选中的概率是1,那么第k+1个数选进来,这k个数中的某一个ki不被替换的概率是
P(ki保留下来)=P(ki被选中)*[P(k+1被选中)*P(k+1没有替换ki)+P(k+1没被选中)]=1*[k/(k+1)*(k-1)/k+1/(k+1)]=k/(k+1)
对于m保留到最后的概率为
P(m保留到最后)=P(m被选中)*[P(m+1被选中)*P(m+1没替换m)+P(m+1没被选中)]*[P(m+2被选中)*P(m+2没替换m)+P(m+2没被选中)]*...*[P(n被选中)*P(n没替换m)+P(n没被选中)]
& & & & & & & & & & &=k/m*[k/(m+1)*(k-1)/k+(m+1-k)/(m+1)]*[k/(m+2)*(k-1)/k+(m+2-k)/(m+2)]*...*[k/n*(k-1)/k+(n-k)/n]
& & & & & & & & & & &=k/m*m/(m+1)*(m+1)/(m+2)*...*(n-1)/n
& & & & & & & & & & &=k/n
也就是说n中的任意一个数被选到k个数里的概率都是k/n,得证。
应用1. 给个很长的链表,不知道具体有多少节点,现在只允许遍历链表一次,让从链表中选择k个节点,并且链表中节点都是等概率被选中的。
先遍历前k个节点,然后从第k+1个节点开始,每增加一个节点,如果这个节点是第i个,都保证它有k/i的概率被选中,并且以1/k的概率去替换k个节点中的一个,当遍历完链表之后k个节点即为满足等概率条件被选取的节点。
16. 用随机数生成器rand5()去构造一个随机数生成器rand7()
用两个随机数生成器rand5()可以均匀生成25个五进制数,然后将这些五进制转换为10进制是6~30,减去5得到1~25,然后将22~25舍弃,也就是得到这几个数就重新取,将1~21三个一组分成7组,也就是模7同余的数放到一组。
类似的还可以用rand7去组合rand10:用两个rand7生成49个数,然后去掉9个,4个一组。
rand2和rand5去组合rand10:rand2=0时返回rand5,rand2=1时返回rand5+5。
rand2和rand7去组合rand10:rand2=0时返回rand7,rand2=1时返回rand7+7去掉最后四个数。
17. 幼儿园有4名男孩和若干名女孩,现在加入一名儿童,性别随机,然后随机挑出一名儿童是男孩,问加入的那名儿童是女孩的概率。
运用贝叶斯公式解决:A表示挑出了一名男孩 &B1表示加入了一名男孩 &B2表示加入了一名女孩
现在求 P(B2|A)=P(B2A)/P(A)=P(A|B2)P(B2)/[P(A|B1)P(B1)+P(A|B2)P(B2)],因为加入儿童的性别是随机的,因此,P(B1)=P(B2)=1/2,假设开始有N名女孩,那么上式
P(B2|A)=P(A|B2)/(P(A|B1)+P(A|B2))=4/(N+1)/[5/(N+1)+4/(N+1)]=4/9。
18. 掷骰子,正面朝上的数字有多大就给多少钱,问最多愿意花多少钱去玩这个游戏?
计算收益的数学期望,骰子六个面,每个面朝上的概率是1/6,那么受益的期望是 1*1/6+2*1/6+3*1/6+4*1/6+5*1/6+6*1/6=3.5 所以最多花3.5元去玩。
子问题:如果能掷两次,第二次可以选择掷或者不掷,并且如果第二次掷了,那么受益只能按照第二次的给,问愿意花多少钱去玩?
已知掷一次期望收益是3.5元,也就是说第二次期望受益是3.5元,所以如果第一次掷出了4 5 6的话,第二次肯定不掷了,否则还是要掷一发试试的,第一次掷出4 5 6的概率是1/2,所以选择掷第二次的概率也是1/2,第一次如果掷出了1 2 3的话,受益应该按照第二次的算,也就是3.5,第一次如果掷出了4 5 6的话,收益按照第一次算也就是4*1/3+5*1/3+6*1/3=5,那么最终期望受益是5*1/2+3.5*1/2=4.25
19. 桶里面有M个白球,每次从桶中取一个球,不管是白球还是红球都染红然后再放回去,问将桶中所有球都染红的期望次数是多少?
令E[i]表示桶里已经有i个红球,将剩下的球都染红的期望次数,那么有E[i]=(i/M)*E[i]+(1-i/M)*E[i+1]+1, 化简后有E[i]=E[i+1]+M/(M-i)
有P[M]=0,可以进行递推P[M-1]=P[M]+M/1=M, P[M-2]=P[M-1]+M/2=M+M/2, P[M-3]=P[M-2]+M/3=M+M/2+M/3, ... , P[0]=P[1]+1=1+M/(M-1)+...+M/3+M/2+M
20. 无穷多只兔子,体重不一,从里面选出10只,挑出重量最大的A,然后再选20只,挑出其中重量最大的B,问A比B大的概率是多少?
相当于一共挑出来30只兔子,分成两堆,一堆10只,一堆20只,问重量最大的兔子在第一堆中的概率是多少,C(10,1) / C(30,1) = 1/3
21. 掷骰子直到出现6为止,问出现6的期望次数是多少?
设掷出6的期望次数为E,那么当前成功的概率是1/6,失败的概率是5/6,成功的话掷1次,失败的话掷1次后还要再掷E次,所以期望递推公式是
E=1/6*1+5/6*(1+E),E=6
22. 一把宝剑,目前是1级,每往上升一级需要一个宝石,升级成功率是50%,等级小于5的时候,失败不会降级,等级大于5的时候,失败会降一级,问将宝剑升到9级至少需要宝石的期望数量。
设E[i]表示从等级i-1升到i的期望宝石数量,那么对于i&=5,有 E[i]=1/2*1+1/2*(1+E[i]),有E[i]=2,对于i&5的情况有 E[i]=1/2*1+1/2*(1+E[i-1]+E[i]),表示如果成功花费一块宝石,如果失败,首先需要花费一块宝石,然后降一级到i-2所以需要先升到i-1花费E[i-1]块宝石,然后再升到i需要E[i]块宝石,得到E[i]=E[i-1]+2,那么有E[2]=E[3]=E[4]=E[5]=2,
E[6]=4, E[7]=6, E[8]=8, E[9]=10,从1级升到9级需要E[2]+E[3]+...E[9]=36块宝石。
23. 两个人轮流抛硬币,先抛到正面者可以吃到苹果,问先手吃到苹果的概率是?
P(先手吃到苹果的概率)=P(先手第一次抛出正面)+P(先手第二次抛出正面)+P(先手第三次抛出正面)+...+P(先手第n次抛出正面) ,其中n是趋于无穷大的。
& & & & & & & & & & & & & & &=P(先手第一次抛出正面)+P(先手第一次没抛出正面)*P(后手第一次没抛出正面)*P(先手第二次抛出正面)+...+P(先手第一次没抛出正面)*P(后手第一次没抛出正面)*...*P(先手第n-1次没抛出正面)*P(后手第n-1次没抛出正面)*P(先手第n次抛出正面)
& & & & & & & & & & & & & & &=1/2+1/2*1/2*1/2+...+1/2*1/2*...*1/2+...
& & & & & & & & & & & & & & &=1/2+1/2^3+1/2^5+...+1/2^n+...
等比数列的前n项和,s=a1(1-q^n)/(1-q)其中n是趋于无穷大的,那么n趋于无穷时s=1/2*(1-1/4^n)/(1-1/4)=2/3。
24. 一对夫妇,先后生了两个孩子,其中一个是女孩,问另一个是男孩的概率是多少?
因为题目说了是"先后",所以需要讨论先后顺序,总共四种可能:(男男),(女女),(男女),(女男),其中一个是女孩,那么总共只有其中三种情况,这三种情况中一女一男总共两种情况,因此答案是2/3。
如果不分先后顺序的话,那总共只有(女女)和(男女)两种情况,答案就是1/2了。
25. 一个国家里的每个家庭都只想要男孩,他们会一直生,直到生出一个男孩为止,问这个国家的男女比例是多少?
单看每个家庭,男孩个数的期望E1=1,因为生出一个男孩后就不会再生。女孩的期望个数是E2,生女孩的情况有 (男) (女男) (女女男) (女女女男) ... (女女...女男),
E2=1/2*0+1/2*1/2*1+1/2*1/2*1/2*2+...+(n-1)*(1/2)^n+...
& & =(1/2)^2+2*(1/2)^3+3*(1/2)^4+...+(n-1)*(1/2)^n+...
2E2=1/2+2*(1/2)^2+3*(1/2)^3+...+n*(1/2)^n+...
2E2-E2=E2=1/2+(1/2)^2+(1/2)^3+...+(1/2)^n+...
等比数列的前n项和是E2=(1/2)*[1-(1/2)^n]/(1-1/2)=1
E1=E2=1男女孩期望个数都是1,所以比例是1:1
26. 平均要取多少次(0,1)之内的随机数才能让其和超过1?
e次,e是自然对数的底。
27. 两个人在一个圆桌上放硬币,直到摆不下就算输,问先手的必胜策略?
先手将硬币放桌子中间,然后后手放在哪个位置,先手就放在其对称的位置。
28. 一个矩形蛋糕,中间有个矩形空洞,矩形空洞并不是位于蛋糕中心,如何一刀将蛋糕分成面积相同的两份?
取蛋糕中心点和空洞中心点的连线,然后沿着这条线切割,肯定可以将矩形蛋糕和空洞平分,那么它俩面积的差肯定也是平分的。
29. N*M的巧克力,每次只能将一块掰成两块,问掰成N*M的小块至少需要掰多少次?
N*M-1次,因为每掰一次只能增加一块巧克力。或者这样做,先掰成M块,需要M-1次,再将这M块掰成N*M块,需要M*(N-1)次,总共M*N-1次。
30. N个数,每个数都不超过N-1(至少有一个数重复了),现在告诉你有一个数是重复的,如何找出这个数?如果每个数都不超过N+1,每个数都不重复,问1~N+1少了哪个?
1. 用这N个数的和减去1~N-1的和。
2. 用1~N+1的和减去这N个数的和。
31. 判断一个数是不是2的幂
一个数是2的幂,那么二进制表达式中最高位是1,其他位全是0,所以直接判断b&(b-1)是否为0就可以了。
33. A和B分别在两座岛上,B有病,A有药,C有船,船上有箱子,箱子要是不上锁东西会被偷走,A和B各自有把锁,问A如何将药运给B?
首先A把药放到箱子里面,然后上锁,运到B这里后B上自己的锁,再运回A,A将自己的锁打开,再运回B,B打开自己的锁就行了。
34. 两种药A和B,每天分别吃一粒A和B,现在打开药瓶A,倒出一片在手上,然后打开药瓶B不小心倒出了两片在手上,问如何保证不浪费药片的前提下正确服药?
再倒出一片A药片,然后将每片药都等分,现在有四堆,分两天吃,每天都在每堆里面选择一半,可以组成A+B。
35. 如何用一个天平、7g和2g的砝码称三次将140g砝码分成50g和90g?
第一次将140g分成70g和70g
第二次一边放9g一边放70g,然后得到61g
第三次一边放9g一边放61g,得到50g。。。
36. 三筐水果,分别是苹果、梨、苹果和梨混合,每个筐的标签都是错的,现在要求从一个筐子里面选出一个水果,然后判断出每个筐子的实际情况。
拿贴着混合标签的筐子里面的一个水果,如果是苹果,那么这个筐子一定全是苹果,然后另外两个筐子不是梨就是混合,贴着梨的肯定不是梨,肯定是混合,那么贴着混合的肯定是梨。如果第一次拿的是梨也同理。
37. 25匹马,速度都不同,一共5个赛道,不能计时,一次只能知道五匹马的速度快慢,问至少需要多少场比赛才能分出前三名?
把这25匹马分成5组,赛五场,然后每场最快的马拿出来再赛一场,就知道最快的马了,根据最后这场的前三名,找出它们之前所在的组,因为第四第五名的马所在的组肯定不会有哪匹马能成为2、3名,对于最后一轮前三名所在的组,第一名所在的组中速度第2、3快的有可能成为所有马中2、3快的,第二名所在的组中速度第1、2快的有可能成为所有马中第2、3快的,然后第三名中速度最快的有可能成为所有马中第3快的。这样一来这五匹马再赛一轮,取前两名就是所有马中第2、3快的。总共需要比7次。
38. 给10亿个数排序
使用位图bitmap,10亿个数有10^9,假设里面最大的数是10^9,那么分成20组,每组5*10^7个,然后对于每个数字num,将bitset第num位置为1,总共遍历20次就能完成排序。
bitset&& bitmap将占用bit的内存,也就是1250000Byte。
下面的代码对个数据进行排序,分两次读入,第一次读入[0,5000000)范围内的数据,第二次读入[0000)范围内的数据。排序思想和技术排序一样。
#include &cstdio&
#include &bitset&
#include &time.h&
#include &stdlib.h&
using namespace
const int max_each_scan = 5000000;
// 每次读入的数字范围
int main()
clock_t begin = clock();
// 开始计时
bitset&max_each_scan&
// 位图使用bitset
FILE *fp_unsort_file = fopen("unsort.txt", "r");
while(fscanf(fp_unsort_file, "%d ", &num)!=EOF)
if(num & max_each_scan) bitmap.set(num, 1);
// 将第一组数据存入位图中
FILE *fp_sort_file = fopen("sort.txt", "w");
for(int i=0;i&max_each_++i)
if(bitmap[i]) fprintf(fp_sort_file, "%d ", i);
int result=fseek(fp_unsort_file, 0, SEEK_SET);
// 将文件光标移动到文件的开始
if(result) printf("fseek failed!\n");
bitmap.reset();
while(fscanf(fp_unsort_file, "%d ", &num)!=EOF)
// 将第二组数据存入位图中
if(num &= max_each_scan && num & (max_each_scan&&1))
num -= max_each_
bitmap.set(num,1);
for(int i=0;i&max_each_++i)
if(bitmap[i]) fprintf(fp_sort_file, "%d ", i + max_each_scan);
clock_t end=clock();
// 记录程序运行结束的时间
printf("Time cost is %ds\n",(end-begin)/CLOCKS_PER_SEC);
fclose(fp_sort_file);
fclose(fp_unsort_file);
39. 在10亿条数据中找出重复出现次数最多的前n条
使用位图的思想,将10^9的数据分成1000组,每组10^6个,然后对这10^9条数据进行1000次遍历,注意没法一次存到内存中,只能从文件中每次读取一个,然后判断当前数据是否在[0,10^6), [10^6,2*10^6), ... , [999*10^6,10^9)范围内,对于每一组范围都通过偏移将数据映射到[0,10^6)内部,统计其出现次数,然后使用优先队列维护n个元素,用每一组范围的统计结果来更新优先队列即可。
如果指明数据时IP地址的话,由于IP地址是32位的,因此总共可能有2^32种情况存在,将其分为2^10组即可。
示例代码:
#include &cstdio&
#include &queue&
#include &utility&
#include &string.h&
using namespace
int times[];
const int max_each_scan = ;
typedef pair&int,int& P;
priority_queue& P, vector&P&, greater&P& &
int main()
FILE *unsort_file = fopen("data.txt", "r");
for(int i=1;i&=10;++i)
memset(times, 0, sizeof(times));
while(fscanf(unsort_file, "%d", &num)==1)
if(max_each_scan*(i-1)&num && num&=max_each_scan*i) ++times[num-(i-1)*max_each_scan];
for(int j=1;j&=max_each_++j)
if(times[j])
q.push(P(times[j],j+(i-1)*max_each_scan));
if(q.size() == 11) q.pop();
if(fseek(unsort_file, 0, SEEK_SET))
printf("fseek failed\n");
return -1;
while(!q.empty()) {printf("%d\n",q.top().second);q.pop();}
40. 要求在10亿个32位整数中找到第k大的数,10亿个数太多没发存到内存中,只能存到文件中。两种解法,一是可以将32位数分成两段,开辟一个2^16大小的数组,然后遍历所有数据,将每个数据高16位对应数组每个元素,统计每个区间的元素个数,然后判断第k大的数在哪个区间中,这样就确定了这个数据的高16位,之后再遍历一遍,统计高16位满足条件的数中低16位落到指定区间的个数,然后就可以判断第k大的数是哪个了。
还有一种解法是用位图的思想,将数据分成2^10个区间,每个区间长度都是2^22,使用优先队列记录每个区间前k大的数即可。
阅读(...) 评论()后使用快捷导航没有帐号?
查看: 1134|回复: 11
最后登录在线时间53 小时寄托币218 声望1 注册时间阅读权限15帖子精华0积分187UID2101780
寄托新兵, 积分 187, 距离下一级还需 -37 积分
声望1 寄托币218 注册时间精华0帖子
1.& & & & 集合A中有100个数,集合B中有50个数,而且满足A中元素与B中元素关系a+b=10的有20对。问任意分别从A和B中各抽取一个,抽到满足a+b=10的a、b的概率。
2.& & & & 有两组数,都是【1、2、3、4、5、6】,分别任意取出两个,其中一个比另外大2的概率。
3.& & & & 有4组人,每组一男一女,从每组各取一人,问取出两男两女的概率。
4.& & & & 三人独立去破译密码,他们能破译的概率为1/5、1/3、1/4,求将此密码破译出的概率。
5.& & & & 6张同排连号的电影票,分给3个男生和3个女生,如欲男女相间而坐,则不同的分法为多少。
本人数学功底不好,请帮忙解答。谢谢
上海新东方G093
上海新东方G094
最后登录在线时间101 小时寄托币371 声望0 注册时间阅读权限20帖子精华0积分351UID173350
初级会员, 积分 351, 距离下一级还需 -1 积分
声望0 寄托币371 注册时间精华0帖子
自己做的, 不知道答案对不对, 请楼主回答, 呵呵
最后登录在线时间215 小时寄托币1420 声望0 注册时间阅读权限25帖子精华0积分909UID207262
中级会员, 积分 909, 距离下一级还需 -159 积分
声望0 寄托币1420 注册时间精华0帖子
楼上的给出式子吧
█◤  ▄ ◢█◣ ◢█◣╭○╮●
█◥◣ █ ◥█◣ ◥█◣ /■\/■\& && && && && && && && && && && && && &10--22 北语
█ ◥ █ ◥█◤ ◥█◤ [| ||  
最后登录在线时间0 小时寄托币904 声望0 注册时间阅读权限25帖子精华1积分814UID2108588
中级会员, 积分 814, 距离下一级还需 -64 积分
声望0 寄托币904 注册时间精华1帖子
2.(4+4)/(6*6)=2/9
最后登录在线时间0 小时寄托币6212 声望0 注册时间阅读权限40帖子精华1积分5452UID180794
超级会员, 积分 5452, 距离下一级还需 548 积分
声望0 寄托币6212 注册时间精华1帖子
Originally posted by legend06w08 at
2.(4+4)/(6*6)=2/9
嗯,应该是这个,古典概型做的。
儿需成名! 酒需醉!
最后登录在线时间215 小时寄托币1420 声望0 注册时间阅读权限25帖子精华0积分909UID207262
中级会员, 积分 909, 距离下一级还需 -159 积分
声望0 寄托币1420 注册时间精华0帖子
6----6*3*2*2*1*1=72
█◤  ▄ ◢█◣ ◢█◣╭○╮●
█◥◣ █ ◥█◣ ◥█◣ /■\/■\& && && && && && && && && && && && && &10--22 北语
█ ◥ █ ◥█◤ ◥█◤ [| ||  
最后登录在线时间215 小时寄托币1420 声望0 注册时间阅读权限25帖子精华0积分909UID207262
中级会员, 积分 909, 距离下一级还需 -159 积分
声望0 寄托币1420 注册时间精华0帖子
4的式子怎么搞啊,独立分布?忘了给解答一下吧
█◤  ▄ ◢█◣ ◢█◣╭○╮●
█◥◣ █ ◥█◣ ◥█◣ /■\/■\& && && && && && && && && && && && && &10--22 北语
█ ◥ █ ◥█◤ ◥█◤ [| ||  
最后登录在线时间215 小时寄托币1420 声望0 注册时间阅读权限25帖子精华0积分909UID207262
中级会员, 积分 909, 距离下一级还需 -159 积分
声望0 寄托币1420 注册时间精华0帖子
1-----(20/100)*(20/50)*(1/20)=1/250?
█◤  ▄ ◢█◣ ◢█◣╭○╮●
█◥◣ █ ◥█◣ ◥█◣ /■\/■\& && && && && && && && && && && && && &10--22 北语
█ ◥ █ ◥█◤ ◥█◤ [| ||  
最后登录在线时间0 小时寄托币6212 声望0 注册时间阅读权限40帖子精华1积分5452UID180794
超级会员, 积分 5452, 距离下一级还需 548 积分
声望0 寄托币6212 注册时间精华1帖子
Originally posted by killowind at
1-----(20/100)*(20/50)*(1/20)=1/250?
1、 20/100*50,还是古典概型。
4、1-4/5*2/3*3/4
儿需成名! 酒需醉!
最后登录在线时间0 小时寄托币398 声望0 注册时间阅读权限20帖子精华0积分381UID2127948
初级会员, 积分 381, 距离下一级还需 -31 积分
声望0 寄托币398 注册时间精华0帖子
1:&&20/(100*50)=1/250
2: (2*4)/(6*6)=2/9
3:&&四个里面取两个/(2^4)=3/8
4: 1-4/5*3/4*2/3=3/5
5: 2*(3!*3!)=72
最后登录在线时间101 小时寄托币371 声望0 注册时间阅读权限20帖子精华0积分351UID173350
初级会员, 积分 351, 距离下一级还需 -1 积分
声望0 寄托币371 注册时间精华0帖子
1和2有疑问, 请楼主给出答案吧
最后登录在线时间53 小时寄托币218 声望1 注册时间阅读权限15帖子精华0积分187UID2101780
寄托新兵, 积分 187, 距离下一级还需 -37 积分
声望1 寄托币218 注册时间精华0帖子
这几题都选自管卫东的《GMAT数学》,1和2答案都有问题。
3. (4*3)/2*(1/2) (1/2) (1/2) (1/2) = 3/8
4. 1-(1-1/5)(1-1/3)(1-1/4)=3/5
5. 2*P(3,3)*P(3,3)=72
但是我知道答案也不懂啊
[ Last edited by 安卓美达 on
at 20:10 ]
上海新东方G093
上海新东方G094
广州九微教育科技有限公司
Copyright &
GTER All Rights Reserved
Powered by

我要回帖

更多关于 高考数学概率大题 的文章

 

随机推荐