首页 > 其他分享 >三门问题的简单c语言代码

三门问题的简单c语言代码

时间:2023-04-14 15:35:54浏览次数:36  
标签:rand guess 语言 胜率 prizeDoor 代码 三门 stayWins open

int i, n, stayWins = 0, switchWins = 0;
srand(time(NULL));
printf("请输入尝试次数:");
scanf("%d", &n);
for(i = 0; i < n; i++)
{
    prizeDoor = rand() % 3 + 1;
    guess = rand() % 3 + 1;
    do
    {
        open = rand() % 3 + 1;
    } while(open == prizeDoor || open == guess);
    remainingDoor = 6 - guess - open;
    // 不换门
    if(guess == prizeDoor)
        stayWins++;
    // 换门
    if(remainingDoor == prizeDoor)
        switchWins++;
}

printf("不换门胜率:%f\n", (double)stayWins / n);
printf("换门胜率:%f\n", (double)switchWins / n);

return 0;

上计算生物学提到的三门问题,第一反应有点反常规,仔细思考过后通过c语言用大量重复次数验证了正确答案(换门胜率2/3,不换门胜率1/3)。

三门问题的简单c语言代码_i++

标签:rand,guess,语言,胜率,prizeDoor,代码,三门,stayWins,open
From: https://blog.51cto.com/u_16071620/6190402

相关文章

  • Linux内核进程管理原理详解(代码演示)
    **前言:**Linux内核里大部分都是C语言。建议先看《Linux内核设计与实现(LinuxKernelDevelopment)》,RobertLove,也就是LKD。Linux是一种动态系统,能够适应不断变化的计算需求。Linux计算需求的表现是以进程的通用抽象为中心的。进程可以是短期的(从命令行执行的一个命令),也可以是......
  • C语言-指针
    C语言-指针指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构;能很方便地使用数组和字符串;并能象汇编语言一样处理内存地址,从而编出精练而高效的程序。指针极大地丰富了C语言的功能。学习指针是学习C语言中最重要的一环,......
  • C语言报错
    1、Useofundeclaredidentifier'SPIT_FLAG_TIMEOUT'  解决:使用未定义的标识符:SPIT_FLAG_TIMEOUT没有定义,但用#define修饰的语句又不标红。......
  • python + QXDM5高通平台通过自动化截取log方法及代码
    转自python+QXDM5高通平台通过自动化截取log方法及代码准备工作:1.安装QXDM52.配置adb环境变量3.使用python3以上4.完成代码如下1importsys2importtime3importos45ifsys.platform.startswith("linux"):6sys.path.append('/opt/qcom/QXD......
  • 直播平台源代码,图片放大浏览功能
    直播平台源代码,图片放大浏览功能HTML <view><view><blockv-for="(item,index)infen"><view><image@click="previewImage(index)":src="item.picture"mode=""></image></view></block><......
  • 2.4 Go语言从入门到精通:条件和循环
    在程序中必然少不了条件语句和循环语句,Go语言在条件、循环语句方面与其他语言存在一定的差异,本文将针对Go语言中条件语句、循环语句的使用,这将会奠定后续复杂程序的基础。1、条件语句条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为true来决定是否执行指定语句,......
  • 2.3 Go语言从入门到精通:数据类型
    文章目录1、基本数据类型1.1布尔型1.2数值型1.2.1整型1.2.2浮点型1.2.3复数1.3字符串型2、派生数据类型2.1指针2.2数组2.3结构体2.4通道(channel)2.5切片(slice)2.6函数2.7接口(interface)2.8Map3、其他3.1数据类型转换3.2类型别名4、小结Go语言是一种静态类型的......
  • 3.3 Go语言从入门到精通:包管理工具之Govendor
    Govendor是Go的另一个依赖包管理工具,它的出现可以避免不同用户在clone同一个工程后从外部获取不同依赖库版本的问题,很好的弥补了GOPATH包管理的缺陷。govendor会将工程需要的依赖包添加到工程的vendor目录下,并且该目录中vendor.json文件会保存添加的依赖包的路径等信息......
  • 3.1 Go语言从入门到精通:包
    Go语言像Java语言一样都拥有包的概念,通过使用包来组织源代码。包(package)是多个Go源码的集合,是一种高级的代码复用方案。Go语言中为我们提供了很多内置包,如fmt、os、io等。任何Go源代码文件都必属于某个包,同时源码文件的第一行有效代码必须是packagepacakgeName语句,通过......
  • 3.2 Go语言从入门到精通:包管理工具之GOPATH
    当我们真正用Go去做项目,或者阅读Go项目(如,Go实现的开源项目)时,不可避免的会遇到包依赖问题,一些包管理方式总是很难区分、选择。Go的包管理与Java的Maven依赖管理不太一样,起初Go的包管理方式经常会被人吐槽,但随之Go版本的升级也出现了不同的包管理方式,以满足不同的需求。今天,我们......