PDA

View Full Version : تعریف متغیر خیلی بزرگ



esmaeilbf
یک شنبه 29 بهمن 1391, 22:25 عصر
واژه ی کلیدی برای تعریف متغیر 200 رقم اعشاری در سی شارپ چیه؟

Mr.Programmer
یک شنبه 29 بهمن 1391, 23:09 عصر
فکر کنم بزرگترین double باشه

Mr.Programmer
یک شنبه 29 بهمن 1391, 23:31 عصر
نه :D از یک منبع غیر معتبر دیدم
لطفا پاک کنید ، ببخشید

the king
دوشنبه 30 بهمن 1391, 00:33 صبح
واژه ی کلیدی برای تعریف متغیر 200 رقم اعشاری در سی شارپ چیه؟

جزو نوع داده های اصلی زبان نیست، از پیاده سازی های Big Numbers و Big Integers و ... استفاده کنید، مثلا :
CodeProject - C# BigInteger Class (http://www.codeproject.com/Articles/2728/C-BigInteger-Class)

esmaeilbf
دوشنبه 30 بهمن 1391, 18:46 عصر
متوجه نشدم میتونید راحتر توضیح بدین

the king
دوشنبه 30 بهمن 1391, 21:37 عصر
متوجه نشدم میتونید راحتر توضیح بدین

پردازنده داخل کامپیوتر برای محاسبات اعشاری و غیر اعشاری قابلیت ذاتی داره، اما نه با دقتی در حد 200 رقم.
برای نگهداری و محاسبات چنین ارقام بزرگی باید از کلاس هایی استفاده بشه که اعداد طولانی رو بصورت
آرایه ای ثبت می کنند و می توانند اعداد n رقمی رو ثبت و پردازش کنند. این کلاس ها معمولا با عبارت
Big Numbers یا Big Integers شناخته می شوند و تقریبا در همه زبان ها نمونه های متفاوتی از این کلاس ها
نوشته شده. معمولا جزء کلاس های ذاتی زبان نیستند و توسط برنامه نویسان علاقه مند تهیه می شوند.

محاسبات این کلاس ها به سرعت انواع داده ای ساده نمی رسه و به نسبت کند اند، اما
در عوض توانایی و دقت محاسبه شان در حد چندین هزار رقم است.

esmaeilbf
دوشنبه 30 بهمن 1391, 22:59 عصر
ممنون از پاسخ کاملتونیک مثال ساده برای ذخیره یک عدد چند صد رقمی میشه بزنید؟!

erfan_urchin
دوشنبه 30 بهمن 1391, 23:13 عصر
جزو نوع داده های اصلی زبان نیست، از پیاده سازی های Big Numbers و Big Integers و ... استفاده کنید، مثلا :
CodeProject - C# BigInteger Class (http://www.codeproject.com/Articles/2728/C-BigInteger-Class)

biginteger مال اعداد صحیح بسیار بزرگه نه مال اعداد اعشاری
که من یه بار یه محاسبه ای رو انجام دادم دیدم حتی تا 25,000 رقم رو حساب کرد اما فقط اعداد صحیح رو محاسبه میکنه نه اعداد اعشاری
منم جز Double چیز دیگه ای نمیشناسم
double هم بد نیست!! تا 14 رقم اعشار جواب میده

erfan_urchin
دوشنبه 30 بهمن 1391, 23:33 عصر
ممنون از پاسخ کاملتونیک مثال ساده برای ذخیره یک عدد چند صد رقمی میشه بزنید؟!

شما یرای اینکه یک عدد چندصد رقمی شما باید مراحل زیر رو طی کنید
1- در پنجره Solution Explorer روی Reference راست کلیک کنید و گزینه Add Reference رو انتخاب کنید
2- تو منوی باز شده باید System.Numerics رو پیداکنید و روی اون دابل کلیک کنید
3- using System.Numerics رو تو قسمت بالای برنامه اضافه میکنید
4- از کد زیر برای محاسه استفاده میکنید
private void button1_Click(object sender, EventArgs e)
{
// محاسبه 9563 به توان 1452
BigInteger a = 9563, b = 1;
for (int i = 1; i <= 1452; i++)
b *= a;
textBox1.Text = b.ToString();

}
البته این کد فقط یه مثاله شما میتونید هر عددی رو به توان هر عدد دیگه ای برسونین یا هر عملیات ریاضی دیگه ای انجام بدین

the king
سه شنبه 01 اسفند 1391, 01:26 صبح
BigFloat Class - Numerical Libraries for .NET (http://www.extremeoptimization.com/Documentation/Reference/Extreme.Mathematics.BigFloat.aspx)