UVA11181条件概率 Probability|Given

2024-02-12 06:52

本文主要是介绍UVA11181条件概率 Probability|Given,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

条件概率 Probability|Given - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

样例解释:

需要学习条件概率贝叶斯定理 

//1 2 -		0.1*0.2*(1-0.3)  == 0.014
//1 - 3		0.1*0.8*0.3 == 0.024
//- 2 3		0.9*0.2*0.3 == 0.054
//						   0.092//(0.014+0.024)/0.092 == 0.413043

包含1的概率 除以 所有情况的概率之和  就是1买到东西的概率

(所有情况是这里r==2时的所有情况)

接下来可以欣赏洛谷题解了。

代码:

我用的状态压缩(即二进制表示)来做的。

暴力r符合的情况做统计,就是根据上面贝叶斯公式来计算。

double arr[25] = { 0 };
double dp[25][1ll << 20];
signed main()
{//ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t = 1;//cin >> t;//for (int i = 1; i <= t; i++)//{//	solve(i);//}int n, r;int round = 1;while (1){cin >> n >> r;if (n == 0 && r == 0)break;for (int i = 0; i < n; i++){cin >> arr[i];}double asum = 0;double sum[22] = { 0 };for (int i = 0; i < (1ll<<20); i++){//如果是r个int cnt = 0;for (int j = 0; j < n; j++){if ((i >> j & 1) == 1)cnt++;}if (cnt != r)continue;double tmp = 1;for (int j = 0; j < n; j++){if ((i >> j & 1) == 1)tmp *= arr[j];elsetmp *= (1 - arr[j]);}for (int j = 0; j < n; j++){if ((i >> j & 1) == 1){sum[j] += tmp;}}asum += tmp;}cout << "Case "<< round++ << ":" << endl;for (int i = 0; i < n; i++){printf("%.6lf\n", sum[i] / asum);}}return 0;
}

这篇关于UVA11181条件概率 Probability|Given的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701940

相关文章

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Java中Switch Case多个条件处理方法举例

《Java中SwitchCase多个条件处理方法举例》Java中switch语句用于根据变量值执行不同代码块,适用于多个条件的处理,:本文主要介绍Java中SwitchCase多个条件处理的相... 目录前言基本语法处理多个条件示例1:合并相同代码的多个case示例2:通过字符串合并多个case进阶用法使用

SpringBoot条件注解核心作用与使用场景详解

《SpringBoot条件注解核心作用与使用场景详解》SpringBoot的条件注解为开发者提供了强大的动态配置能力,理解其原理和适用场景是构建灵活、可扩展应用的关键,本文将系统梳理所有常用的条件注... 目录引言一、条件注解的核心机制二、SpringBoot内置条件注解详解1、@ConditionalOn

SpringIntegration消息路由之Router的条件路由与过滤功能

《SpringIntegration消息路由之Router的条件路由与过滤功能》本文详细介绍了Router的基础概念、条件路由实现、基于消息头的路由、动态路由与路由表、消息过滤与选择性路由以及错误处理... 目录引言一、Router基础概念二、条件路由实现三、基于消息头的路由四、动态路由与路由表五、消息过滤

Nginx中location实现多条件匹配的方法详解

《Nginx中location实现多条件匹配的方法详解》在Nginx中,location指令用于匹配请求的URI,虽然location本身是基于单一匹配规则的,但可以通过多种方式实现多个条件的匹配逻辑... 目录1. 概述2. 实现多条件匹配的方式2.1 使用多个 location 块2.2 使用正则表达式

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

Python按条件批量删除TXT文件行工具

《Python按条件批量删除TXT文件行工具》这篇文章主要为大家详细介绍了Python如何实现按条件批量删除TXT文件中行的工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1.简介2.运行效果3.相关源码1.简介一个由python编写android的可根据TXT文件按条件批

hdu4865(概率DP)

题意:已知前一天和今天的天气概率,某天的天气概率和叶子的潮湿程度的概率,n天叶子的湿度,求n天最有可能的天气情况。 思路:概率DP,dp[i][j]表示第i天天气为j的概率,状态转移如下:dp[i][j] = max(dp[i][j, dp[i-1][k]*table2[k][j]*table1[j][col] )  代码如下: #include <stdio.h>#include

封装MySQL操作时Where条件语句的组织

在对数据库进行封装的过程中,条件语句应该是相对难以处理的,毕竟条件语句太过于多样性。 条件语句大致分为以下几种: 1、单一条件,比如:where id = 1; 2、多个条件,相互间关系统一。比如:where id > 10 and age > 20 and score < 60; 3、多个条件,相互间关系不统一。比如:where (id > 10 OR age > 20) AND sco