سلامی دوباره
به لینک زیر هم توجه کنید
http://www.numberworld.org/y-cruncher/
عزیزان الان نیاز شدید به همکاری احساس میشه، من نشستم فهرست یکی از کتاب رو ترجمه کردم دوستان می تونن خود کتاب رو دانلود کنند و هر بخشی که براشون جزاب هستش رو ترجمه کنند
این هم لینک کتاب مورد نظر
http://jagvar.persiangig.com/interne...ming_Guide.pdf
و این هم فهرستی که ترجمه کردم، در زمینه ترجمه فعالیتی نداشتم اگر کسی دوستان برای بعضی قسمت ها پیشنهادی هم داشتن به کمال میل می پزیرم
http://jagvar.persiangig.com/interne...قاله.docx
---------------
خوب همزمان دارم چنتا کار رو پیش می برم خیلی وقتم رو میگره
بریم سر قضیه نحوه محاسبه عدد پی یا همون 3.14
فرمول های زیادی برای محاسبه عدد پی پیشنهاد شده که می تونید اینجا بیشتر در موردش بخونید http://en.wikipedia.org/wiki/Approximations_of_π
خودم تصمیم گرفتم در مرحله اول قبل از این که با خود کودا کد نویسی رو شروع کنم یکم قبلش یه آشنایی بیشتری باهاش پیدا کنم، نشستم و دوتا که پیچیدگی زمانی کمتری داشتن رو به یک برنامه کوچیک تبدیل کردم
فرمول اول
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
که به فرمول BBP معروف هستش و از روی نام دانشمندانی که کشفش کردن برداشته شده Bailey–Borwein–Plouffe formula
این هم توضیحات بیشتر که اینجا می تونید پیدا کنید .
و یک فرمول دیگه هم که مشتق شده فرمول قبلی هست رو می تونید ببینید
برای مشاهده این لینک/عکس می بایست عضو شوید ! برای عضویت اینجا کلیک کنید
و این هم باز به نام دانشمند ی که کشف کرده نام گذاری شده و به نام "فابریک بلارد" معروف هست ( Fabrice Bellard)
که هر دو فرمول رو هم توی زبان c++ و هم در C# تبدیل به کد کردم و می تونید ببینید
C#:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Numerics;
namespace PI
{
class Program
{
static void Main(string[] args)
{
decimal p=0 ;
for (int i = 0; i < 100; i++)
{
p +=(decimal)((1.0 / Math.Pow(16, i)) * ((4.0 / ((8 * i) + 1)) - (2.0 / ((8 * i) + 4)) - (1.0 / ((8 * i) + 5)) - (1.0 / ((8 * i) + 6))));
}
Console.WriteLine("P is = {0} ",p);
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test PI.txt", true);
file.WriteLine(p);
file.Close();
}
}
}C++:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Numerics;
namespace PI
{
class Program
{
static void Main(string[] args)
{
decimal p=0 ;
for (int i = 0; i < 100; i++)
{
p +=(decimal)((1.0 / Math.Pow(16, i)) * ((4.0 / ((8 * i) + 1)) - (2.0 / ((8 * i) + 4)) - (1.0 / ((8 * i) + 5)) - (1.0 / ((8 * i) + 6))));
}
Console.WriteLine("P is = {0} ",p);
System.IO.StreamWriter file = new System.IO.StreamWriter("c:\\test PI.txt", true);
file.WriteLine(p);
file.Close();
}
}
}
#include <iostream>
#include<math.h>
using namespace std;
void main()
{
double p1=0,p2=0;
for(int i =0 ; i<100;i++)
{
p1+=((1.0/64)*((pow(-1.0,i)/pow(2.0,(10.0*i)))*((256.0/((10.0*i)+1))-(64.0/((10.0*i)+3))-(4.0/((10.0*i)+5))-(4.0/((10*i)+7))+(1.0/((10.0*i)+9))-(32.0/((4.0*i)+1))-(1.0/((4.0*i)+3)))));
p2+= ((1/ (pow (16.0,i))) * ((4.0/((8*i)+1))-(2.0/((8*i)+4))-(1.0/((8*i)+5))-(1.0/((8*i)+6))));
}
printf("PI = 3.141592653589793238462643383279502884197169399375 1058209 \n");
printf("P1 = %1.30f \n",p1);
printf("p2 = %1.30f \n",p2);
cout<<" "<<p1<<"\n"<<" "<<p2<<endl;
}
که برای C# فرمول اول و دوم رو جدا گذاشتم ولی برای C++ هردو توی یک برنام هست
Bookmarks