SP5102 MYSTIC - Mystic Craft
题目描述
在《神秘熊猫大战》游戏中,玩家要扮演熊猫骑士的角色,通过击败邪恶的熊猫巫师来保护熊猫大陆。这些巫师拥有特殊的魔法能力,普通竹棍对他们无效,必须使用特定类型的“神秘竹棍”才能战胜他们。为了制作“神秘竹棍”,熊猫骑士需要按照特殊配方把普通竹棍与不同种类的魔法碎片结合。
通常情况下,熊猫魔法商店出售各种所需的魔法碎片,每个碎片售价 1 金币。理论上,只要有足够的金币,熊猫骑士就可以轻松购买所需的所有碎片。然而,由于最近的入侵事件,商店为了保护这些碎片免遭即将到来的邪恶熊猫的觊觎,将碎片隐藏在神秘盒子中。这些神秘盒子每盒包含一个随机的魔法碎片,盒子在购买和打开之前,无法知道里面具体是哪种碎片;每盒也是 1 金币一盒。
Wah 先生扮演的熊猫骑士不富裕,因此担心无法收集到足够的特定碎片以完成“神秘竹棍”的制作。你作为他最好的程序设计师朋友,需要帮他计算出他能否成功收集到所有必需碎片的概率,以便Wah 先生能制定相应的游戏策略。你可以放心假设购买的神秘盒子中会有所有必需的碎片,且每种碎片在盒子中出现的概率是相等的。
输入格式
第一行包含一个整数 $T$($1 \le T \le 100$),表示共有多少组测试用例。对于每个测试用例:
第一行是一个整数 $N$($1 \le N \le 32$),表示需要的魔法碎片种类数。
第二行是 $N$ 个整数 $a_1, a_2, \ldots, a_N$($1 \le a_i \le 10^5$),表示每种碎片需要的数量。
输出格式
对于每组测试用例,输出格式为“Case #x: y”,其中 x 是测试用例编号,从1开始;y 是成功制作神秘竹棍的概率,保留6位小数,并以百分比形式输出。
```
样例输入
5
3 2
1 1
8 3
3 2 2
10 3
1 2 3
7 7
1 1 1 1 1 1 1
32 8
1 1 1 1 1 1 1 1
样例输出
Case #1: 75.000000
Case #2: 23.472032
Case #3: 58.934106
Case #4: 0.611990
Case #5: 89.127753
```
### 样例解释
以第一个样例为例:熊猫骑士可以用 3 枚金币购买 3 个神秘盒子,可能得到 2^3 = 8 种不同的碎片组合:
```
1. 类型 1、类型 1、类型 1
2. 类型 1、类型 1、类型 2
3. 类型 1、类型 2、类型 1
4. 类型 1、类型 2、类型 2
5. 类型 2、类型 1、类型 1
6. 类型 2、类型 1、类型 2
7. 类型 2、类型 2、类型 1
8. 类型 2、类型 2、类型 2
```
其中有6种组合满足所需的碎片数量(至少一个类型1的碎片和一个类型2的碎片),因此成功制作神秘竹棍的概率为 \( \frac{6}{8} = 75\% \)。
**本翻译由 AI 自动生成**