روش نوشتن اعداد با سری های نامتناهی - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

روش نوشتن اعداد با سری های نامتناهی

+3 امتیاز
شنیدم یه سر عدد مثل عدد pi و e رو با سری نامتناهی میشه نوشت.

برای این دو عدد رو توضیح بدید. (هم سری رو و هم برنامه رو)
سوال شده اردیبهشت 18, 1393  بوسیله ی Amin (امتیاز 453)   10 17 43
این جا هفت خط ریاضی نیست
می دونم
بیشتر می خواهم با این سوال کار با عبارت های کسری رو یاد بگیرم.
برنامه نویسی همون ریاضیه
فقط زبونش فرق میکنه
شوخی میکنی دیگه :د
«الگوریتم» همون ریاضیه
برنامه نویسی که هزار جور کاربرد دیگه داره
توی برنامه نویسی سطح بالا اگه ریاضی و کلا ریاضیجات (تبدیلات لاپلاس و ....)
رو بلد نباشین  اصلا به عنوان برنامه نویس حساب نمیشین ما فقط از برنامه نویسی یاد گرفتیم یه رشته بدیم یه رشته دیگه تحویل بگیریم
منظور منم این نبود که برنامه نویسی همون ریاضی هست اما ارتباط تنگاتنگ و شباهت های زیادی به هم دارن مثلا تا ریاضیات مهندسی ، ماتریس و ... بلد نباشی هیچوقت نمیتونی اصلا به فکر نوشتن یه برنامه ای مثل فتوشاپ باشی
شباهت هاشم مثلا همین تابع و ...
از اون لحاظ که آره :د

2 پاسخ

+4 امتیاز
 
بهترین پاسخ

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

والا برای سری پی فقط 30-40 تا روششو من بلدم که خیلی بیشتر این حرفا هست حالا با تووجه به اینکه شما روش خاصی مد نظرتون نبوده من یکی از آسون ترین روش ها  و با نرخ محاسبه پایین رو براتون هم توضیح هم کد میزنم

خوب این سری اگه اشتباه نکنم برای لایبنیتز بوده که دانشمند معروف و خوبی!!! بوده

توی این روش میگه عدد پی برابر


 

 

 

خوب حالا کد روش اول رو میزنم

 

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	int a=0;
	double buf=3.;
	cout << "Please Enter a loop Number : ";
	cin >>  a;

	for (int i=1 ; i <= a ; i++){
		buf += ((double)((4)*(pow(2-3,i+1)))/((2*i)*(2*i +1)*(2*i +2)));
		cout << endl << i << " : " << buf ;
	}

	return 0;
}

 

اینم عکس با واتر مارک

 

راستی توی فرمول اول 2 ضربدر (آی +1) هست من یادم رفته پرانتز بزارم

پاسخ داده شده اردیبهشت 19, 1393 بوسیله ی Fire360Boy (امتیاز 2,524)   6 24 43
انتخاب شد اردیبهشت 22, 1393 بوسیله ی Amin
برای نپر هم فردا میزارم ساعت 5 دیگه
کم کم باید برم سرکار!!!
+2 امتیاز

سلام دوست عزیز!

 

بسط های مختلفی برای اینا وجود داره... این مقاله ها رو در Wikipedia ببینید:

(e (mathematical constant

Pi

 

یه مثال برای هر دو نوشتم:

 

#include <iostream>

using namespace std;

long double calc_e()
{
	const int k=1000;
	long double s=1;
	long double t=1;
	for (int i=1; i<=k; i++)
	{
		t /= i;
		s += t;
	}
	return s;
}

long double atg(double x)
{
	const int k=1000;
	long double s=x;
	long double t=x;
	for (int i=3; i<=k; i+=2)
	{
		t = -t*x*x;
		s += t/i;
	}
	return s;
}

long double calc_pi()
{
	return 16*atg(0.2)-4*atg(1.0/239);
}

int main()
{
	cout.precision(50);
	cout<<"e: "<<calc_e()<<endl;
	cout<<"pi: "<<calc_pi()<<endl;
	
	return 0;
}

 

در این برنامه از این فرمول ها استفاده شده:

 

سری Taylor تابع لگاریتم طبیعی برای محاسبه ی e:

Natural logarithm

 

 

 

فرمول Machin-like:

Machin-like formula

 

 

 

و سری Taylor تابع arctangent:

arctangent

 

 

 

پاسخ داده شده مرداد 7, 1393 بوسیله ی مسعود لپه‌چی (امتیاز 928)   12 31 50
...