用C语言编写一个程序,求掷硬币1000次,至少有一次连续出现10次正面的概率。或者讲讲算法。

是否需要用随机数模拟呢?

有两种办法:
第一种就是用随机数进行模拟,然后进行至少100轮的模拟,取平均数
第二种就是用公式,根据概率学进行公式推导,然后使用C语言进行计算。
第一种并不能很准确,但是有说服力,模拟轮数越多越趋向于准确
第二种准确并有说服力,但是需要理论支持去计算。
公式的话:
全部可能出现的排列,是2的1000次方
特定位置可能出现满足的排列,比如前10个都是正面,剩下的随便排列,就是2的990次方
特定位置数,一共是991个
所以,几率就是:991 * 2^990 / 2^1000
(好久没有算过了,可能不太对,但是思路差不多,你好好想想吧)
因为,前11个都是正面的,同时满足第一个和第二个位置的,是重复,需要排除一个,所以还需要额外考虑排除,需要进行处理一下……实际比上述的几率小,具体公式仍需推导……非专业人员帮不到你
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-10-24

追问

只进行一轮模拟是不是有些不准确?需不需要多循环几次?

追答

可以多轮,概率分布

本回答被提问者采纳

...至少有一次连续出现10次正面的概率。或者讲讲算法。
第一种就是用随机数进行模拟,然后进行至少100轮的模拟,取平均数 第二种就是用公式,根据概率学进行公式推导,然后使用C语言进行计算。第一种并不能很准确,但是有说服力,模拟轮数越多越趋向于准确 第二种准确并有说服力,但是需要理论支持去计算。公式的话:全部可能出现的排列,是2的1000次方 特...

掷1000次硬币,出现连续十次正面的概率是多少
每次出现正面的概率都是0.5,连续5次的概率就是0.5的5次方.10次里面连续5次的情况有多少种?1-5,2-6,3-7...共6种.所以答案是6*(0.5的5次方).连续6,7,8,9,10次的情况也包括5次在内,计算方法一样.加起来就可以了.

用c语言模拟抛硬币的过程
void main(){ int N=0;\/\/总共抛硬币次数 double odd=0;\/\/奇数代表印花面;double even=0;\/\/偶数代表数字面 printf("请输出抛硬币的次数:");scanf("%d",&N);for(int i=0;i<N;i++){ if(rand()%2==0){ even++;}else{ odd++;} } double rate=odd\/even;printf("印花面次数:%...

c语言,编写模拟翻硬币得程序。
int main(void){ int n;\/\/读入一个数,为结束的次数 int i;int a[10];\/\/10个硬币 int biaoji = 0;\/\/当这个标记能被3或7整除,说明恰好数了3次或7次 scanf("%d", &n);for (i = 0; i < 10; i++) \/\/将硬币都初始化为正面的状态,即1 a[i] = 1;biaoji = 1;\/\/因为a[...

求编写一个程序模拟投硬币,统计正反面出现的机率
下面是我用c语言编的 输入1代表正面,输入0代表背面#include<stdio.h>int main(){int i,j,k,a,n;scanf("%d",&n); 输入 进行的试验次数for(i=0;i<n;i++){scanf("%d",&a); if(a==0) k++; 反面else j++; 正面}printf("正面是%d,反面是%d",j\/(j+k),k...

1000 硬币, 1 坏的两面一样,999 好的.随便拿一个,丢十次,都是正面出现...
若坏的,两面都是正面的话。所求概率=P(坏硬币且抽一个丢十次均为正面)\/P(抽一个丢十次均为正面).P(坏硬币且抽一个丢十次均为正面)=1\/1000 P(抽一个丢十次均为正面)=P(坏硬币且抽一个丢十次均为正面)+P(好硬币且抽一个丢十次均为正面)=1\/1000+999\/1000*0.5^10 则所求概率为1024...

掷一枚硬币,连续出现正面的几率有多大?
出现连续9次正面的方法只有1\/2^9种,出现连续10次正面的情况只有1\/2^10种,所以:连续3次是正面的概率是:1\/2^3+。。。1\/2^10=255\/1024 硬币m次,其中出现至少连续n次是正面的概率是:1\/2^n。。。+1\/2^m={1\/2^n-1\/2^(m+1)}\/(1-1\/2)=1\/2^(n-1)-1\/2^m ...

扔硬币,连续扔出10次正面或者反面的概率是多少?谢谢!
连续十次正面朝上的概率等于连续十次反面朝上的概率 为(1\/2)^10=1\/1024 望采纳

请问,如何编写 随机产生正反面的投硬币的 代码,要求一定要是随机_百度...
we run.\/ srand( (unsigned)time( NULL ) );\/* 做10次实验 *\/ for( i = 0; i < 10;i++ )if( rand()%2 ){ a++;printf( "第%2d次:正面\\n", i+1);} else{ b++;printf( "第%2d次:反面\\n", i+1);} printf("共%2d次正面,%2d次反面\\n", a, b);} ...

抛硬币100次,出现10次以上连续正面的概率是多少?
首先抛100次硬币所有可能情况为2^100.本题的关键在于计算连续10次以上出现正面的情况数.假设n个硬币出现连续10次以上正面的可能次数为An,现在我们来计算An的递推式.我们把"第一组连续10次以上出现正面的第一个硬币"简称为"第零硬币"如果第零硬币排在第一位,那么可能次数为B1=2^(n-10)如果第零...

相似回答