CF452C Magic Trick

题目描述

Alex 喜欢表演魔术。他有一个魔术需要使用 $n$ 张牌。他有 $m$ 副相同的、每副包含 $n$ 张不同牌的牌堆,这些牌已经混合在一起。当 Alex 准备表演魔术时,他会随机抽出 $n$ 张牌,并使用这些牌来表演。这组牌看起来像一副正常的牌,但其中可能有些牌是重复的。 魔术的表演过程如下:首先,Alex 让你从这 $n$ 张牌中随机抽取一张,你需要记住这张牌再将其放回。然后,Alex 洗牌,从中抽出一张牌。如果这张牌和你记住的一样,这次魔术就算成功。 你并不认为 Alex 是一个很厉害的魔术师,你觉得他其实就是从牌堆里随机抽一张。请你计算,在这种情况下,Alex 魔术成功的概率是多少。

输入格式

输入的第一行包含两个整数 $n$ 和 $m$($1 \leq n, m \leq 1000$),用空格分隔,分别表示每副牌的张数以及总共有多少副牌。

输出格式

输出一行一个浮点数,表示 Alex 成功表演魔术的概率。输出的答案相对或绝对误差不超过 $10^{-6}$。

说明/提示

在第一个样例中,有一定概率两张同值的牌来自不同的牌堆,这种情况下魔术一定成功。 其余情况下,抽到的是两张不同的牌,此时魔术成功的概率是 $1/2$。 最终概率为 $ (n-1)/n \times 1 + 1/n \times 1/2 $。 由 ChatGPT 5 翻译