# Estimating $p_{13}−p_{13}$
https://neoj.sprout.tw/problem/1024/
$π$ 是一個神奇的數字,約等於 $3.14159$,但在許多工程師們的眼中 $π:=3$.

這讓把 $π$ 當作幸運數字的派派覺得非常生氣。為了諷刺這種荒謬的行為,他決定透過計算各種 $π$ 近似值的差值之大來告訴眾工程師這樣的行為是非常不可取的。
而且對派派而言,$π$ 就是 $π$,$π$ 的近似值根本沒有資格被稱為 $π$,於是他給了他們另一個名字:$p_{13}$,所以他稱這次的計畫為 $p_{13}−p_{13}$ 計畫。
首先他把他的目標放在了下面的等式上
$$\fracπ2=\prod_{i=1}^\infty(\frac{2i}{2i−1}⋅\frac{2i}{2i+1})=(\frac21⋅\frac23)⋅(\frac43⋅\frac45)⋅(\frac65⋅\frac67)⋯$$
派派心想:「誰有時間等你算到無限項!?**等你算好了愛情摩天輪都蓋好了,太平島的石油也都流到台灣來了!**」。於是他只允許利用這個等式算到第 $k$ 項的估計值來當作第一個 $p_{13}$。
另外,在派派氣憤的同時,他發現還有一群人在利用 [蒙地卡羅法](https://zh.wikipedia.org/wiki/%E8%92%99%E5%9C%B0%E5%8D%A1%E7%BE%85%E6%96%B9%E6%B3%95) 來估算 $π$,舉體作法如下:一次估計中選取隨意 $t$ 組亂數 $(x,\ y),\ 0≤x,\ y≤1$ 並計算有幾組的 $(x,\ y)$ 滿足 $\sqrt{x^2+y^2}≤1$。假設有 $c$ 組的 $(x,\ y)$ 滿足 $\sqrt{x^2+y^2}≤1$,則當次估計的 $p_{13}=4⋅\frac ct$

於是他把 $t=10^7$ 的蒙地卡羅法估算值當作第二個 $p_{13}$,現在請你幫幫派派計算 $∣p_{13}−p_{13}∣$ 四捨五入到小數點後第二位的值為多少。
### 輸入說明
每筆測資只有一行包含一個整數 $k,\ (0<k≤100)$ 請以此 $k$ 計算第一個 $p_{13}$ 並計算 兩種 $p_{13}$ 的差值,並四捨五入到小數點後第二位後輸出。
### 輸出說明
輸出一行包含一個浮點數,為該測次測資的 $|p_{13}−p_{13}|$ 估計值。請注意若答案為 $6.3$ 請輸出 $6.30$
### Hint
要產生在 $[0,1]$ 間的隨機浮點數可引入 `<random>` 並使用 `(double)rand() / RAND_MAX`。
運算過程中的變數型別請使用 `double` 或 `long double`,以免精度誤差造成計算錯誤。
#### 範例輸入 1
```
1
```
#### 範例輸出 1
```
0.48
```
#### 範例輸入 2
```
10
```
#### 範例輸出 2
```
0.07
```
#### 範例輸入 3
```
100
```
#### 範例輸出 3
```
0.01
```
# Code
```cpp
#include <iostream>
#include <stdlib.h>
#include <cmath>
#include <iomanip>
using namespace std;
double p1 = 1, p2, k, x, y, c, n;
int main(){
cin >> k;
for (double t = 1; t <= k; t++)
p1 *= (2 * t / (2 * t - 1))
* (2 * t / (2 * t + 1));
for (n = 0; n < 1e+7; n++)
{
x = (double)rand()/RAND_MAX;
y = (double)rand()/RAND_MAX;
if (x * x + y * y <= 1)
c++;
}
p2 = 4 * c / n;
p1 *= 2;
int out = (abs(p1 - p2) + 0.005) * 100;
cout << setiosflags(ios::fixed)
<< setprecision(2)
<< (double)out / 100 << endl;
}
```