zoukankan      html  css  js  c++  java
  • 一道概率题From VCK 小白

    题目描述:一个随机函数f(),只返回1和0,返回1的概率是p,返回0的概率是1-p,构造另外一个函数,只返回1和0,概率各1/2

    答案,有代码有真相

     1 int func()
     2 {
     3     int i ;
     4     int j ;
     5     while(true
     6     {
     7         i = f() ;
     8         j = f() ;
     9         if(i == 1 && j == 0)
    10             return 1;
    11         else if(i == 0 && j == 1)
    12             return 0;
    13     }
    14 }

    以下代码等概率产生0和1

    代码
     1 #include <iostream>
     2 #include "time.h"
     3 using namespace std ;
     4 
     5 
     6 int main(void)
     7 {
     8     srand((unsigned int)time(0));
     9 
    10     int c0 = 0 ;    // count for 0
    11     int c1 = 0 ;    // count for 1
    12 
    13     // 随机产生1000次,i越大,c0和c1就越接近1:1
    14     for (int i = 0; i < 1000++i)
    15     {
    16         int m = rand() % 2;
    17         int n = rand() % 2 ;
    18 
    19         // 构造两个等概率事件
    20         // 以下两个if语句对应两个等概率事件,所以当i足够大的时候,c0和c1应该是趋于相等的
    21         if (m == 0 && n == 1)
    22         {
    23             cout << 0 ;
    24             ++c0 ;
    25         }
    26 
    27         if (m == 1 && n == 0)
    28         {
    29             cout << 1 ;
    30             ++c1 ;
    31         }
    32     }
    33     
    34     cout << "number of 0 is: " << c0 << endl ;
    35     cout << "number of 1 is: " << c1 << endl ;
    36 
    37     system("pause") ;
    38     return 0 ;
    39 }

     --

  • 相关阅读:
    剑指offer23-二叉搜索树的后序遍历序列
    剑指offer24-二叉树中和为某一值的路径
    剑指offer-复杂链表的复制
    剑指offer-二叉搜索树与双向链表
    剑指offer-字符串的排序
    剑指offer-数组中出现次数超过一半的数字
    剑指offer-最小的k个数
    c++中参数加&与不加的区别
    第九届蓝桥杯(A组填空题)
    基于优先级的多道程序系统作业调度——基于优先级
  • 原文地址:https://www.cnblogs.com/graphics/p/1683959.html
Copyright © 2011-2022 走看看