[已解决问题] 随机返回值的概率和预想的不一样呢?
提问时间: 2008-07-16 23:30
浏览:146 次
从1到100循环,如果返回0则输出Heads,否则输出Tails.
根据概率应该输出Heads和Tails的概率基本一样啊,应该都差不多为50次才对,可是结果是却令我非常吃惊。居然是Heads 26次,Tails 74次。
这是为什么呢?
 1#include<stdio.h>
 2#include<stdlib.h>
 3
 4int flip();
 5
 6int main()
 7{
 8    int i;
 9    int sum = 0;
10    for ( i = 1; i <= 100; i++ ){
11        if ( flip() ){
12            sum += flip();
13            printf( "Heads\n" );
14        }

15        else
16            printf( "Tails\n" );
17    }

18    printf( "Sum Heads: %d\n", sum );
19    printf( "Sum Tails: %d\n", i - 1 - sum );
20}

21
22int flip(){
23    return rand() % 2;
24}


提问者:SuperWulei - 初学一级
所有回答(1)
11 if ( flip() ){ 12 sum += flip(); 13 printf( "Heads\n" ); 14 } 看出问题了没有? 如果没有,正确的代码应该是这样的: int t = flip(); sum += t; if(t) printf("Heads\n");
2个月前   回答者:deerchao - 大侠五级
评论
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题

> 问题排行榜

相关内容

相关链接