P3802 小魔女帕琪
考虑前面7个魔法
如果前面七个魔法各不相同,那么就能完成一次帕琪七重奏
设 A=a1*a2*...*a7,S=a1+a2+...+a7,B=S*(S-1)*...*(S-6)
对于不同的施法顺序,前面七个魔法各不相同的概率总是:A/B
不同的顺序如: a1,a3,a2,a4,a5,a6,a7 和 a1,a2,a3,a4,a5,a6,a7 是不同的施法顺序
它们的概率分别为:(a1 / S) * (a3 / (S-1)) * (a2 / (S-2)) * (a4 / (S-3)) * (a5 / (S-4)) * (a6 / (S-5)) * (a7 / (S-6))
: (a1 / S) * (a2 / (S-1)) * (a3 / (S-2)) * ... * (a7 / (S-6))
稍微整理一下就是(a1*a2*...*a7)/(S*(S-1)*...*(S-6)) = A/B
所以就算施法顺序不同,但是概率总是一样的
不同的施法顺序总共有 7! 种
所以对于前面七个魔法的所有顺序,触发一次帕琪七重奏的概率就是 7! * (A/B)
考虑第 2~8 个魔法
如果第 1 个魔法为 a1 ,第 2~8 个魔法能再次触发帕琪七重奏总概率为
((a1-1)*a2*a3...*a7)/((S-1)*(S-2)*...*(S-7))
化简得 (A/a1*(a1-1))/(B/S*(S-7))
如果第一个魔法为 a2
那么第 2~8 个魔法能再次触发帕琪七重奏总概率同样可化简得
(A/a2*(a2-1))/(B/S*(S-7))
...
...
...
一直到 (a7-1)/(S-7),总概率同样化简得 (A/a7*(a7-1))/(B/S*(S-7))
那么把7种情况的概率加起来:(A/a1*(a1-1)+A/a2*(a2-1)+...+A/a7*(a7-1))/(B/S*(S-7))
把A和B提取出来并化简得(最好自己在纸上写一下):
(A/B)*((a1-1+a1-1+...+a7-1)*S/(a1*a2*...*a7)/(S-7)) = (A/B)*((S-7)*S/S/(S-7)) = (A/B)*1 !!
所以第 2~8 个魔法能触发帕琪七重奏的概率就是 7! * A/B(因为第 2~8 个魔法也有 7! 种组合)
同理第 3~9 个魔法能触发帕琪七重奏的概率也一样(可以用同样的方法,自己在纸上写一下,就不一一列举了)
所以总期望就是 7! * A/B * (S-6) (乘上S-6 是因为期望要从第 1~7 个魔法算到第 (S-6)~S 个魔法,一共算了 S-6 次)
所以代码量为 0
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
double a[],s,ans=;
int main()
{
for(int i=;i<=;i++) cin>>a[i],s+=a[i];
for(int i=;i<;i++)
ans=ans*a[i]/(s+-i)*double(i);
printf("%.3lf",ans*a[]*7.0);
return ;
}
P3802 小魔女帕琪的更多相关文章
- 洛谷 P3802 小魔女帕琪 解题报告
P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...
- 洛谷P3802 小魔女帕琪
P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...
- Luogu P3802 小魔女帕琪
P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...
- P3802 小魔女帕琪 期望
P3802 小魔女帕琪 期望 题面 题意稍微不清楚,题中的a[i]指的是属性i的魔法有a[i]个. 题目大意:有7种魔法,每种数量a[i],每次随机放出一个魔法,问放完为止出现7次魔法都不相同的期望次 ...
- Luogu P3802 小魔女帕琪(期望)
P3802 小魔女帕琪 题意 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组 ...
- P3802 小魔女帕琪 概率与期望
P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...
- 洛谷 P3802 小魔女帕琪
传送门 题目大意:7个东西,每个有ai个,只有选7次 把7个东西都选到了才行. 题解:7!排列数*每次选择的概率 代码: #include<iostream> #include<cs ...
- 洛谷P3802:小魔女帕琪
题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从而唱出强力的魔法.比如说 ...
- AC日记——小魔女帕琪 洛谷 P3802
小魔女帕琪 思路: 概率公式计算: 代码: #include <bits/stdc++.h> using namespace std; ],sig; int main() { ;i< ...
随机推荐
- Android Fragment用法详解(1)--静态使用Fragment
先说明一下,本例子是运行在Android Studio下面的.同样的代码复制粘贴到Eclipse运行却会报错.具体原因我也没有细查.知道的哥们,留言通知下呗. Fragment,也就是碎片,本意是为了 ...
- TextView中ellipsize属性
TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式: 例如,"encyclopedia"显示, 只是举例,以实际显示为准:) ...
- condition实现通知部分线程
多个condition实现通知部分线程: import java.util.concurrent.locks.Condition; import java.util.concurrent.locks. ...
- linux所有文件中查找关键字的命令
grep 192.168.1.1 * -r 在所有文件中查找192.168.1.1
- Java50道经典习题-程序38 求字符串长度
题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度. import java.util.Scanner; public class Prog38 { public stat ...
- socket网络服务实战
一.epoll模型的构建 由于网络服务高并发的需求,一般socket网络模型都采用epoll模型,有关epoll模型的原理在相关论坛中有许多讲述,在此不做重复讲解,主要讲一讲epoll模型的封装实现. ...
- JAVA学习第三篇Boolean
Boolean是布尔值. 布尔值只有两个值:真和假.写作:true false. 那么如何使用呢? 最简单的用法: public class demo{ public static void main ...
- HBase - 安装过程中的问题
问题1:启动时start-hbase.sh 报 权限不够 原因:在移动文件时,使用root用户在/usr/local下创建的hbase,所以hbase文件夹的使用者为root,其他人没权限 解决方案: ...
- CHNS类
NS类集合介绍 1.常用部分 NSDictionary NSString NSArray 数组 NSTimer 定时器 NSRange 范围 NSNotification 2.网络相关 NSURLCo ...
- Beautiful Sequence
Beautiful Sequence 给定一些数(可能相同),将它们随机打乱后构成凹函数,求概率 .N<=60 . 首先,这种题求概率事实上就是求方案.所以现在要求的是用这些数构成凹函数的方案数 ...