#P2321. GYM
GYM
问题描述
模拟一个随机的体育课游戏。
在小学体育课上,有一个有趣的游戏设置如下:
- 在体育馆地板上放置 个篮子,每个篮子上有一个独特的图片标识。
- 每个篮子中包含若干张索引卡片,每张卡片上写有一个目的地名称。
游戏规则如下:
- 孩子们聚集在一个指定的起始篮子。
- 每个孩子依次从当前篮子中随机抽取一张卡片,记住目的地,然后将卡片放回篮子。
- 当老师吹响哨子时,所有孩子移动到卡片上指示的篮子。
给定每个篮子中索引卡片的配置,你需要计算在前 步游戏中,孩子们出现在每个篮子的概率。
示例
假设有四个篮子,分别为 "tree"、"house"、"car" 和 "park"。每个篮子中的卡片分布如下:
- "tree" 篮子: 张 "tree"、 张 "house"、 张 "car"、 张 "park"。
- "house" 篮子: 张 "tree"、 张 "house"、 张 "car"、 张 "park"。
- "car" 篮子: 张 "tree"、 张 "house"、 张 "car"、 张 "park"。
- "park" 篮子: 张 "tree"、 张 "house"、 张 "car"、 张 "park"。
用表格表示如下:
篮子 \ 目的地 | tree | house | car | park |
---|---|---|---|---|
tree | 2 | 1 | 2 | 0 |
house | 1 | 0 | 1 | 2 |
car | 0 | |||
park | 1 |
初始时,所有孩子都在 "tree" 篮子,因此初始概率为:
$$P_0(\text{tree}) = 1.0, \quad P_0(\text{其他篮子}) = 0.0 $$在游戏过程中,下一步出现在某个新位置的概率等于上一步出现在任意位置的概率乘以从该位置转移到目标位置的概率。例如:
$$P_{s+1}(\text{tree}) = 0.40 \cdot P_s(\text{tree}) + 0.25 \cdot P_s(\text{house}) + 1.00 \cdot P_s(\text{car}) + 0.25 \cdot P_s(\text{park}) $$输入输出
输入:
- 输入包含 行,每行表示一个篮子中卡片的分布(对应表格中的一行)。
- 每行的数字表示该篮子中对应目的地的卡片数量。
- 篮子数量 满足 ,且每个篮子至少有一张卡片。
输出:
- 输出 行,每行表示前 步中每一步孩子们在每个篮子的概率。
- 概率需要保留 位小数,建议使用双精度浮点数计算。
示例输入输出
输入 1:
2 1 2 0
1 0 1 2
1 0 0 0
1 1 1 1
输出 1:
1.00000 0.00000 0.00000 0.00000
0.40000 0.20000 0.40000 0.00000
0.61000 0.08000 0.21000 0.10000
0.49900 0.14700 0.28900 0.06500
0.54160 0.11605 0.25260 0.08975
0.52069 0.13076 0.26809 0.08046
0.52917 0.12425 0.26108 0.08549
0.52519 0.12721 0.26411 0.08350
0.52686 0.12591 0.26275 0.08448
0.52609 0.12649 0.26334 0.08408
提示
- 假设游戏总是从第一个篮子开始。