LightOJ – 1072 – Calm Down

Problem link

Image 1

আলোচনাঃ

প্রশ্নে বলা আছে যে, বড় বৃত্তের ব্যাসার্ধ, R এবং ছোট বৃত্তের ব্যাসার্ধ r , এবং বড় বৃত্তের ভেতরে n সংখ্যক ছোট বৃত্ত আছে । আমাদের বের করা লাগবে ছোট বৃত্তের ব্যাসার্ধ ,r = ?

উত্তরঃ

আমরা জানি, একটা বৃত্ত =360 degree. তাহলে একটা বৃত্তকলার (sector) কোণ, ∠OGF = 360 / n (degree) ——(1)

আবার বৃত্তকলার কোণ, 2θ = ∠OGF ——(2)

সুতরাং, ∠OEF = θ (theta)

From (1) and (2) ,

 2θ = 360 / n (degree) =(2*pi)/n (degree) [ in radian 360 degree = 2*pi radian ]

সুতরাং,  θ = (2*pi)/(2*n) = pi/n —————- (3)

          চিত্র থেকে পাই,

OE = R

AE = AB = r

So, OA = OE – AE = R – r

From △OAB =>

              sinθ = AB/OA

            => sin(pi/n) = r / ( R – r ) [ from (3) we get,  θ= (pi/n) ]

            => R*sin(pi/n) – r*sin(pi/n) = r

            => R*sin(pi/n) = r + r*sin(pi/n)

            => R*sin(pi/n) = r * (1 + sin(pi/n) )

            So, r = ( R*sin(pi/n) ) / (1 + sin(pi/n) )

C++ Code:

#include<bits/stdc++.h>
using namespace std;
#define PI acos(-1.0)
int main(){
    int t;
    double R,r,n;
    cin>>t;
    for(int i=1;i<=t;i++){
        cin>>R>>n;
        double angle=PI/n;
        r=(R*sin(angle))/(1+sin(angle));
        printf("Case %d: %.10lf\n",i,r);
    }
 
}   
        // Complexity : O(1)

Leave a Reply