Description
给定一个边长为 \(1\) 的正 \(2n\) 边形,求能容纳它的最小的正方形的边长。
Solution
根据对称性得,在转动 \(\pi / 4n\) 的时候取得极值,容易验证其为最小值。
考虑边长为 \(1\) 时,弦心距为 \(\frac {1} {2 \sin(\pi / 2n)}\),于是正方形边长为 \(2 \frac {cos(\pi / 4n)} {2 \sin(\pi / 2n)}\) = $ \frac {cos(\pi / 4n)} {\sin(\pi / 2n)}$。
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1000005;
int n;
const double pi = acos(-1);
void solve()
{
cin>>n;
double ans = cos(pi/4/n) / sin(pi/2/n);
printf("%.10lf\n",ans);
}
signed main()
{
int t;
cin>>t;
while(t--)
{
solve();
}
}