Description

James得到了一堆有趣的硬币,于是决定用这些硬币跟朋友们玩个小游戏。在一个N行M列的表格上,每一个第i行第j列的格子上都放有一枚James的硬币,抛该硬币正面朝上的概率为Pij,所有抛硬币事件两两之间是相互独立的。

现在,玩家在M列硬币中,从每一列里各选择1枚,共M枚,构成一组。如此重复选择N组出来,且保证被选择过的硬币不能再选。选好组之后,每组的M枚硬币各抛一次,如果都是正面朝上,则该组胜利,总分赢得1分;否则该组失败,总分不加也不减。请问,如果让你自行选择硬币的分组,游戏总得分的数学期望的最大值是多少?

Input

输入有多组数据。每组数据第一行为N和M,1≤N≤100,1≤M≤10,以空格分隔。接下来有N行,每行M个小数,表示表格中对应的Pij

输入以N=M=0结束,这组数据不输出结果。

Output

对于每组数据,输出对应游戏总得分的数学期望的最大值,四舍五入精确至4位小数。每组数据的输出占一行。

Sample Input

2 3
1.0 1.0 1.0
0.5 0.4 0.3
0 0

Sample Output

1.0600

Hint

计算期望
#include<stdio.h>
#include<string>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
int m, n;
double map[15][110];
int main()
{while (~scanf("%d%d", &n, &m)){if (!m && !n)break;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){scanf("%lf", &map[j][i]);//注意这里 i j 的位置}}for (int i = 0; i < m; i++)sort(map[i], map[i] + n);double sum = 0;for (int i = 0; i < n; i++){double cnt = 1;for (int j = 0; j < m; j++)cnt *= map[j][i];sum += cnt;}printf("%.4lf\n", sum);}return 0;
}/**********************************************************************Problem: 1009User: leo6033Language: C++Result: ACTime:4 msMemory:2036 kb
**********************************************************************/

转载于:https://www.cnblogs.com/csu-lmw/p/9124450.html

CSUOJ 1009 抛硬币相关推荐

  1. 有道概率题:一个有趣的抛硬币问题

    假设有一个硬币,抛出字(背面)和花(正面)的概率都是0.5,而且每次抛硬币与前次结果无关.现在做一个游戏,连续地抛这个硬币,直到连续出现两次字为止,问平均要抛多少次才能结束游戏?注意,一旦连续抛出两个 ...

  2. bzoj4830 hnoi2017 抛硬币

    题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个月,却一次都没有抽到 SSR,让他非常怀疑人生.勤勉的小 A ...

  3. 抛硬币直到若干次(k次)连续正面向上的概率

    文章目录 问题描述 说明 解答过程 问题描述 问题描述:抛一枚硬币,当出现连续的三次(或k次)正面向上的时候停止,问抛硬币的次数期望是多少? 说明 这个问题网上有很多答案,解释都不清楚,很多解释都误导 ...

  4. 抛硬币 直到连续出现两次字为止

    题目: [plain] view plaincopy 假设有一个硬币,抛出字(背面)和花(正面)的概率都是0.5,而且每次抛硬币与前次结果无关.现在做一个游戏,连续地抛这个硬币,直到连续出现两次字为止 ...

  5. boost::math模块二项式分布来预测概率 抛硬币时的正面和反面的测试程序

    boost::math模块二项式分布来预测概率 抛硬币时的正面和反面的测试程序 实现功能 C++实现代码 实现功能 boost::math模块二项式分布来预测概率 抛硬币时的正面和反面的测试程序 C+ ...

  6. Java黑皮书课后题第5章:5.40(模拟:正面或反面)编写程序,模拟抛硬币一百万次,显示出现正面和反面的次数

    5.40(模拟:正面或反面)编写程序,模拟抛硬币一百万次,显示出现正面和反面的次数 题目 题目概述 破题 代码 运行示例 题目 题目概述 5.40(模拟:正面或反面)编写程序,模拟抛硬币一百万次,显示 ...

  7. 用贝叶斯来看看抛硬币的概率

    前面介绍了贝叶斯学派的思想和先验分布.后验分布的相关知识,古典频率学派认为抛硬币的概率是常数,本文从贝叶斯学派的角度看待抛硬币的概率问题.本文详细介绍了  分布,重述贝叶斯思想,对于抛硬币的概率问题作 ...

  8. 从抛硬币试验看随机游走定义的基本概念错误

    全世界只有3.14 % 的人关注了 爆炸吧知识 随机游走(Random Walk)是<随机过程>教科书中用于描述动态随机现象的一种基本随机过程,许多重要的随机过程都可由它派生出来,其理论不 ...

  9. 抛硬币正面期望_如果抛硬币,正面的数量多于反面的可能性

    抛硬币正面期望 Problem statement: 问题陈述: Let N be a positive odd number. There are N coins, numbered 1, 2 , ...

  10. 差分隐私中随机响应的抛硬币问题(LDP)

    [关于随机响应的抛硬币问题和LDP的思考] RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response [论文笔记] 写在前 ...

最新文章

  1. 201521123030《Java程序设计》 第2周学习总结
  2. SparkSQL读取文件时,数据字段类型调整
  3. 实验11.2 链表 6-4 链表拼接
  4. C++空类和string类
  5. oracle语法官方文档,Oracle官方文档必备语法知识
  6. python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)...
  7. CPU多核并发缓存架构介绍
  8. 笨办法学 Python · 续 练习 49:`sed`
  9. flask response对象
  10. SQL:查询表中各类点数量以及各类点满足某条件数量
  11. 自制hdmi线一头改vga图_破拆电脑VGA电缆以制作收音机天线零件:双目铁氧体磁芯...
  12. Spark SQL 创建局部视图和全局视图,以及找不到全局视图的问题解决
  13. 用Python做一个Mean Rerversion策略
  14. Linux命令行窗口无法输入密码
  15. 安克创新能否锚定全球家用储能市场 隆起新的增长极?
  16. android手机主板,主板芯片全解
  17. 马明哲:平安最大对手是阿里和腾讯等现代科技企业
  18. PHP+Nginx+宝塔+rsync代码同步 实现Nginx负载均衡
  19. 7-65 字符串替换 (15 分) 本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换: 原字母 对应字母 A Z B Y C X D W … … X C Y B Z A
  20. 微信小程序源码删除解决办法解包

热门文章

  1. 百度文库下载器 V2.3.4.3 支持豆丁百度文库道客巴巴
  2. oracle 下载 pb12.5,PowerBuilder 12.6
  3. Lingo 11.0免费下载安装
  4. 让你的MSN更精彩!聊天伴侣小i机器人试用体验
  5. 条件语句与循环语句:将数字一二三四五六七八九十转化成汉字大写的壹, 贰,叁,肆,伍,陆,柒,捌,玖,拾
  6. LAMP兄弟连PHP高薪就业班2012召集令
  7. 会话描述协议-SDP
  8. 计算机的各种配件知识,菜鸟必读:DIY装机需要知道的一些配件小知识
  9. 程序猿常识--OJ系统和ACM测试考试大全
  10. 【ichart】简单的统计图表ichart.js的使用