传送门

考虑前面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 小魔女帕琪的更多相关文章

  1. 洛谷 P3802 小魔女帕琪 解题报告

    P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...

  2. 洛谷P3802 小魔女帕琪

    P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...

  3. Luogu P3802 小魔女帕琪

    P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...

  4. P3802 小魔女帕琪 期望

    P3802 小魔女帕琪 期望 题面 题意稍微不清楚,题中的a[i]指的是属性i的魔法有a[i]个. 题目大意:有7种魔法,每种数量a[i],每次随机放出一个魔法,问放完为止出现7次魔法都不相同的期望次 ...

  5. Luogu P3802 小魔女帕琪(期望)

    P3802 小魔女帕琪 题意 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组 ...

  6. P3802 小魔女帕琪 概率与期望

    P3802 小魔女帕琪 题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从 ...

  7. 洛谷 P3802 小魔女帕琪

    传送门 题目大意:7个东西,每个有ai个,只有选7次 把7个东西都选到了才行. 题解:7!排列数*每次选择的概率 代码: #include<iostream> #include<cs ...

  8. 洛谷P3802:小魔女帕琪

    题目背景 从前有一个聪明的小魔女帕琪,兴趣是狩猎吸血鬼. 帕琪能熟练使用七种属性(金.木.水.火.土.日.月)的魔法,除了能使用这么多种属性魔法外,她还能将两种以上属性组合,从而唱出强力的魔法.比如说 ...

  9. AC日记——小魔女帕琪 洛谷 P3802

    小魔女帕琪 思路: 概率公式计算: 代码: #include <bits/stdc++.h> using namespace std; ],sig; int main() { ;i< ...

随机推荐

  1. C# WinForm 关闭登陆窗体后进程还再内存怎么办?

    问题:我们通常再制作WinForm应用程序的时候,运行程序的第一个窗口一般是登陆窗口.代码如下: 那么这种方式有一个弊端,这种启动方式,其实就是把登陆窗口设置为主窗体.因此,再登陆后,我们通常是调用H ...

  2. jQuery的AJax异步加载

    主要用到load()方法以及getScript()方法,具体以一个例子说明: 在现有html文件中加载一个拟好的片段,以及在片段加载完成之前阻止用户进一步操作的弹出框. 首先是现有html代码,无任何 ...

  3. maven 本地jar包依赖生成

    转载自:http://www.cnblogs.com/wuyouwulv/p/maven_configure_oracle_jdbc.html 由于Oracle授权问题,Maven不提供Oracle ...

  4. sqlplus--spool命令参数详解

    sqlplus--SPOOL参数详解 Spool是Oracle快速导出数据的工具,是sqlplus的指令,不是sql语法里的东西 一.Spool常用的设置set arraysize 5000;  // ...

  5. wait命令

    wait命令用来等待指令的指令,直到其执行完毕后返回终端.该指令常用于shell脚本编程中,待指定的指令执行完成后,才会继续执行后面的任务.该指令等待作业时,在作业标识号前必须添加备份号"% ...

  6. 数组中的最大值以及最小值的位置变换的问题(C++)

    将一个5×5的数组中的最大值放到数组的中心位置 分析:遍历数组,找到最大的元素,然后将该元素与中心位置的元素交换位置 #include<iostream> #include <std ...

  7. ngx-bootstrap使用03 Alerts组件、利用Object.assign复制对象

    1 Alerts 该组件用于给用户操作提供反馈信息或者提供一些警告信息 2 用法 2.1 下载ngx-bootstrap依赖 参考博文:点击前往 2.2 在模块级别导入AlertModule模块 技巧 ...

  8. Python_pip_02_利用pip安装模块(以安装pyperclip为例)

    >任务:利用pip安装pyperclip模块 >前提 你已经在你的电脑里面安装啦Python2.7的Windows版本,并且已经配置了环境变量 >实现步骤 >>打开你的P ...

  9. matlab 修改文件夹下所有文件名大写为小写

    1. path = './DIR/';Files = dir(fullfile(path,'*.m'));LengthFiles = length(Files);for count_i = 1 : L ...

  10. 机器人自主移动的秘密:实际应用中,SLAM究竟是如何实现的?(二)

    博客转载自:https://www.leiphone.com/news/201612/FRzmoEI8Iud6CmT2.html 雷锋网(公众号:雷锋网)按:本文作者SLAMTEC(思岚科技公号sla ...