Magic Trick - 题解

题目传送门

一道简单的数学概率题。

首先分类讨论选两张牌时的不同情况。

  • 拿相同位置上的:\(\frac 1n\)
  • 第二次拿不同位置上的,以为第一次已经拿了\(nm\),所以要从\(nm-1\)张牌中选出\(m-1\)张。

综上所述,我们可以推出公式:

\[ \frac 1n+\frac{ n-1}{n}\times\frac{m-1}{nm-1} \]

下面的就是简单的输入输出和代入公式计算了,不再赘述。

但是要注意,当\(m=1\)时,公式就化简变为:

\[\frac{1}{n} \]

AC CODE(-std=c++14 -O2)

#include<bits/stdc++.h>
using namespace std;
int n,m;
int main()
{
	cin>>n>>m;
	if(m==1)
	{
		cout<<fixed<<setprecision(16)<<1.0/(n*1.0);
		return 0;
	}
	cout<<fixed<<setprecision(16)<<1/(n*1.0)+(n-1)/(n*1.0)*(m-1)/((n*m-1)*1.0);
}

posted @ 2023-08-13 10:42  _Unnamed  阅读(26)  评论(0)    收藏  举报