题目传送门
题目大意
在一个随机的正整数集合中,任意两个数互质的可能性为 6 π 2 \dfrac{6}{\pi^2} π26。
给出一个正整数集合,根据这个集合求出
π
\pi
π 的近似值,如果没有互质的数,输出 No estimate for this data set.
解题思路
找出 a i , a j a_i,a_j ai,aj 的 最大公约数,判断是否为 1 1 1。
互质的满足条件为:只有因数 1 1 1。
但是,这里我们为了优化,用 辗转相除法 来做。
代码:
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}
化简题目式子得 π ≈ 3 N ( N − 1 ) x ( x ≠ 0 ) \pi \approx \sqrt{\frac{3N(N-1)}{x}}(x\neq0) π≈x3N(N−1)(x=0)。
最后输出 x x x 即可。
总结
这道题目还是有点难度的,求最大公约数的部分比较简单,但是化简式子的话还是得有一点点基础的。