1 条题解
-
0
自动搬运
来自洛谷,原作者为

ButterflyDew
life is hard搬运于
2025-08-24 21:52:52,当前版本为作者最后更新于2018-07-16 22:01:54,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
UDT:2018.9.25
之前写的有不小问题,居然没人提。。
详细一点的说一下
提一点:放招是不会互相影响的,1-7放招了,2-8还可以放招
首先直接考虑对于取的前7个能量晶体
设
考虑前7个一连串取出了的概率
为$\frac{a_1}{N} \times \frac{a_2}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times \frac{a_7}{N-6}$
因为是条件概率,所以样本空间减少了(n-x)
对条件概率: 简单一点的解释是,B在A发生的条件下发生的概率。
举个栗子,掷色子第一次投6概率为1/6,为A事件,第二次投6概率仍为1/6,为B事件。如果把两次投掷产生的一个结果算成一个最终状态,那么连续的状态AB发生的概率为1/36,也即是B在A发生的条件下发生的概率。
然后我们对取出1-7的式子发现,如果我们不按1-7的顺序取,分子分母并没有变化
那么直接按照排列组合,把所有顺序的全部统计
即$7! \times \frac{a_1}{N} \times \frac{a_2}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times \frac{a_7}{N-6}$
但其实后面每七位对应的答案都是这样,下面讲为什么
以上只是提供一个感性的类似的说明方法,和下面的并非直接相关
在考虑之后怎么取之前,我们先想一个问题。
你班要选择投票一个人,在班花喵面前吃巧克力,然后班主任拿了一个盒盒让你们摸球球,里面有1个红球和29个白球(你班30人),抽到红球的人就有了这个至高无上的权利,一个个的去抽,那么顺序不一样的话,是公平的吗??
当然...是了
第一个人抽中的概率是 第二个人抽中的概率是 第三个人抽中的概率是 $\frac {29}{30} \times \frac {28}{29} \times \frac {1}{28}$ ...
以上只是提供一个感性的类似的说明方法,和下面的并非直接相关
然后我们考虑用类似的方法把它说清楚
如果第一个取出
我们考虑它取出的合法的第2-8个,就可以再次放招了
概率为
$\frac{a_1}{N} \times \frac{a_2}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times \frac{a_7}{N-6} \times \frac{a_1-1}{N-7}$
同理组合有种(这是确定了首位而不定的情况)
如果第一个取
概率为
$\frac{a_2}{N} \times \frac{a_1}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times \frac{a_7}{N-6} \times \frac{a_2-1}{N-7}$
我们把第一个取出的7种可能加在一起
发现末项加起来化简是1
即
于是对第2-8位的贡献化简结果就是$7! \times \frac{a_1}{N} \times \frac{a_2}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times \frac{a_7}{N-6}$
所以最终答案就是(乘上了项) $7! \times \frac{a_1}{N} \times \frac{a_2}{N-1} \times \frac{a_3}{N-2} \times \frac{a_4}{N-3} \times \frac{a_5}{N-4} \times \frac{a_6}{N-5} \times {a_7}$
Code:
#include <cstdio> double a[8],s,ans=1; int main() { for(int i=1;i<=7;i++) { scanf("%lf",a+i); s+=a[i]; } for(int i=1;i<=6;i++) ans=ans*a[i]/(s+1-i)*double(i); ans=ans*a[7]*7.0; printf("%.3lf\n",ans); return 0; }
- 1
信息
- ID
- 2759
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 4
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者