硬币抛掷模拟(使用数组)

如果抛掷硬币N次,看到头像的期望值是N/2次,但实际值也可能是0~N次,以下程序进行M次试验,M和N都从命令行获取。它使用一个数组f来跟踪出现“i次头像”的概率,其中0<=i<=N。然后打印试验结果的柱状图。

 #include <stdlib.h>

#include  < stdio.h >
int  heads()
  { 
return  rand()  <  RAND_MAX / 2 ; }
main(
int  argc,  char   * argv[])
  { 
int  i, j, cnt;
    
int  N  =  atoi(argv[ 1 ]), M  =  atoi(argv[ 2 ]);
    
int   * =  malloc((N + 1 ) * sizeof ( int ));
    
for  (j  =   0 ; j  <=  N; j ++ ) f[j]  =   0 ;
    
for  (i  =   0 ; i  <  M; i ++ , f[cnt] ++ )
      
for  (cnt  =   0 , j  =   0 ; j  <=  N; j ++
        
if  (heads()) cnt ++ ;
    
for  (j  =   0 ; j  <=  N; j ++
      {
        printf(
" %2d  " , j);
        
for  (i  =   0 ; i  <  f[j]; i += 10 ) printf( " * " );
        printf(
" \n " );
      }
 }

转载于:https://www.cnblogs.com/cpoint/archive/2011/04/25/2028783.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值