بکندباز

عدد پی به روش های مختلفی محاسبه می شود.

ایده برنامه زیر این است که عدد پی را به چند روش تا دقت خواسته شده ی کاربرحساب کرده و به اون نشان بدهیم که کدام سری سریعتر به دقت مورد نظر می رسد و بازدهی بهتری دارد.

تابعی بنویسید که کاربر یک عدد بعنوان دقت اعشاری مورد نیاز خود وارد کرده و برنامه به سه روش زیر عدد پی را محاسبه کرده و در غالب یک دیکشنری تعداد تکراری را که آن دنباله در آن به دقت مورد نظر رسیده است را به شما بدهد.

روش اول محاسبه عدد پی : سری گرگوری- لایبنیتز

 …π=(4/1)-(4/3)+(4/5)-(4/7)+(4/9)-(4/11)+(4/13)-(4/15)

 

روش دوم محاسبه عدد پی :   سری نیلاکانتا

…π=3+4/(2*3*4)-4/(4*5*6)+4/(6*7*8)-4/(8*9*10)+4/(10*11*12)-4/(12*13·14)

روش سوم محاسبه عدد پی : استفاده از محاسبه حد تابع زیر در یک عدد به اندازه کافی بزرگ:

x * sin(180 / x)

باید زاویه x را به درجه وارد کنید.

بعنوان مثال :

برای دقت دو رقم اعشار خروجی مطابق دیکشنری زیر خواهد بود:

{pi’ : 3.14 , ‘Gregory-Leibniz’ : 120 , ‘Nilakantha’ : 3 , ‘Even Numbers’ : 5′}

نمونه ورودی و خروجی

FastestSeries(1) ➞ {'pi': 3.1, 'Gregory-Leibniz': 20, 'Nilakantha': 1, 'Even Numbers': 12}

FastestSeries(2) ➞ {'pi': 3.14, 'Gregory-Leibniz': 120, 'Nilakantha': 3, 'Even Numbers': 57}

FastestSeries(3) ➞ {'pi': 3.141, 'Gregory-Leibniz': 1689, 'Nilakantha': 8, 'Even Numbers': 94}
نکته 1 : فقط از ماژول math  و کلاس عدد pi بعنوان معیار سنجش دقت استفاده کنید.

نکته 2 : از هیچ کتابخانه ای برای محاسبه عدد پی نباید استفاده کنید. فقط از کتابخانه math عدد پی را جهت چک کردن دقت واقعی عدد پی تا اعشار داده شده کاربر استفاده کنید.

نکته 3 : خروجی به صورت یک دیکشنری می باشد

نکته 3 :  تضمین داده می شود که کاربر دقتی بیشتر از آن عدد پی که در کتابخانه math قرارداده شده است درخواست نکند. ( بیشتر از دقت 15 رقم اعشار بعنوان ورودی داده نمی شود )

FastestSeries(1)  ➞ {'pi': 3.1, 'Gregory-Leibniz': 20, 'Nilakantha': 1, 'Even Numbers': 12}
FastestSeries(2)  ➞ {'pi': 3.14, 'Gregory-Leibniz': 120, 'Nilakantha': 3, 'Even Numbers': 57}
FastestSeries(3)  ➞ {'pi': 3.141, 'Gregory-Leibniz': 1689, 'Nilakantha': 8, 'Even Numbers': 94}
FastestSeries(4)  ➞ {'pi': 3.1415, 'Gregory-Leibniz': 10795, 'Nilakantha': 14, 'Even Numbers': 237}

هنوز پاسخی برای این تمرین ثبت نشده است

تمرینات مرتبط