گفتگوی لاک پشتی
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

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

3 مشترك

اذهب الى الأسفل

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

پست من طرف Developer Programmer 12/1/2010, 03:48

یکی از سرگرمی های دوستان برنامه نویس در ترم های پایین، محاسبه فاکتوریل و سری فیبوناچی بوده و هست. در این روش همیشه سعی میکنن با روش بازگشتی، فرمولی تولید و حاصل عدد مذکور رو پیدا کنن.
منتها این روش برای اعداد بزرگ جواب نمیده چون غالبا عدد تولیدی خیلی بزرگ میشه و از محدوده کلیه DataType ها خارج میشه.
اخیرا به حول و قوه شرکت مایکروسافت، نوع جدیدی از Data Type به نام BigInteger اومده که ما رو قادر می کنه اعداد خیلی بزرگ رو هم در محاسبه شرکت بدیم.

ابتدا رفرنس های لازم:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Numerics;

سپس یه کلاس ساده:
public class CFibonacci
{
public static IEnumerable<BigInteger> BigFib(Int64 toNumber)
{
BigInteger previous = 0;
BigInteger current = 1;

for (Int64 y = 1; y <= toNumber; y++)
{
var auxiliar = current;
current += previous;
previous = auxiliar;
yield return current;
}
}

public static IEnumerable<BigInteger> BigFact(Int64 toNumber)
{
BigInteger i = 0;
BigInteger fact = 1;
if (toNumber <= 1)
{
yield return 1;
}
else
{
for (i = 1; i <= toNumber; i++)
{
fact *= i;
}
yield return fact;
}

}
}
}
و حالا طرز استفاده :
private void button1_Click(object sender, EventArgs e)
{
var num = Convert.ToInt32(txtNumber.Text);
var fib = CFibonacci.BigFib(num).Last();
txtFib.Text = fib.ToString();

var fact = CFibonacci.BigFact(num).Last();
txtFact.Text = fact.ToString();
}
Developer Programmer
Developer Programmer
کاربر خوب لاک پشتی
کاربر خوب لاک پشتی

تشکر : 88

بازگشت به بالاي صفحه اذهب الى الأسفل

محاسبه فاکتوریل و سری فیبوناچی اعداد خیلی بزرگ! Empty رد: محاسبه فاکتوریل و سری فیبوناچی اعداد خیلی بزرگ!

پست من طرف MohammadRN 12/1/2010, 05:12

من که چیزی متوجه نشدم! لطفاً بیشتر توضیح بدید
MohammadRN
MohammadRN
مدیرکل گفتگوی لاک پشتی
مدیرکل گفتگوی لاک پشتی

گروه گرافیک گفتگوی لاک پشتی
تشکر : 144

بازگشت به بالاي صفحه اذهب الى الأسفل

محاسبه فاکتوریل و سری فیبوناچی اعداد خیلی بزرگ! Empty رد: محاسبه فاکتوریل و سری فیبوناچی اعداد خیلی بزرگ!

پست من طرف Foad 12/1/2010, 08:21

چه جالب، یعنی دیگه لازم نیست از دیتا استراکچرهای مختلف و ابداعی یا انواع کیو و ستک برای این کار استفاده کرد!
Foad
Foad
حامی حیوانات لاک پشتی
حامی حیوانات لاک پشتی

تشکر : 243

بازگشت به بالاي صفحه اذهب الى الأسفل

محاسبه فاکتوریل و سری فیبوناچی اعداد خیلی بزرگ! Empty رد: محاسبه فاکتوریل و سری فیبوناچی اعداد خیلی بزرگ!

پست من طرف MohammadRN 12/1/2010, 12:21

یه جور توضیح بدید ما هم متوجه بشیم خیلی خوشحال
MohammadRN
MohammadRN
مدیرکل گفتگوی لاک پشتی
مدیرکل گفتگوی لاک پشتی

گروه گرافیک گفتگوی لاک پشتی
تشکر : 144

بازگشت به بالاي صفحه اذهب الى الأسفل

بازگشت به بالاي صفحه

- مواضيع مماثلة

 
صلاحيات هذا المنتدى:
شما نمي توانيد در اين بخش به موضوعها پاسخ دهيد