Trở về đầu
Mời các bạn xem nội dung tại đây: Click here
Cách tính hàm arcsin:
Code bằng C++:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000;
const double epsilon = 0.0001, pi = M_PI;
int n;
double a[maxn], L, R;
void Enter()
{
freopen("duongtron.inp", "r", stdin);
freopen("duongtron.out", "w", stdout);
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i];
}
void Init()
{
L = 0, R = 0;
for (int i = 1; i <= n; i++)
R += a[i] * 2;
}
double SumAngle(double RR)
{
double s = 0;
for (int i = 1; i <= n; i++)
s += 2 * asin(a[i] / (a[i] + RR));
return s;
}
double Bin()
{
double m;
while (R - L >= epsilon)
{
m = (L + R) / 2;
if (pi * 2 - SumAngle(m) > epsilon)
R = m;
else
L = m;
if (R - L < epsilon)
return m;
}
}
int main()
{
Enter();
Init();
printf("%0.4lf", Bin());
return 0;
}