ارسال پاسخ 
 
رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
فاکتوریل اعداد خیلی بزرگ
02-10-2007, 06:43 AM
ارسال: #1
فاکتوریل اعداد خیلی بزرگ
سلام دوستان کسی میتونه در مورد محاسبه فاکتوریل اعداد خیلی بزرگ که توی c++ امکانش رو نداریم یک روش خوب کاملا برام توضیح بده ممنون می شم.
یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
02-10-2007, 02:01 PM (آخرین تغییر در این ارسال: 02-10-2007 03:25 PM توسط soheil_sf.)
ارسال: #2
RE: فاکتوریل اعداد خیلی بزرگ
سلام
من تابع ضرب اعداد بزرگ رو براتون میذارم (البته برای دیدن نتیجه ی نهایی به این لینک هم برین و تابع جمع اعداد بزرگ رو هم بردارین و این 2 تا تابع با هم میتونن هر عملی روی اعداد بزرگ رو پوشش بدن.)

لینک جمع اعداد بزرگ:
http://forum.codecorona.com/showthread.php?tid=639
اینم کد ضرب اعداد بزرگ که با تابع لینک قبلی میتونه ترکیب بشه:
کد:
//written by soheil setayeshi
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
#include<conio.h>
using namespace std;
vector<string> multiply( string ,string );
int main()
{
    string num1,num2,product;
    vector<string> v;
    cout<<"Enter first number : ";
    cin>>num1;
    cout<<"Enter second number : ";
    cin>>num2;
    v=multiply(num1,num2);
    cout<<"The products are :\n";
    for (int i=0;i<v.size();i++)
        cout<<v[i]<<endl;
    cout<<"The final product is sum of this numbers (with BigSum fauction)";
    getch();
    return 0;
}
vector<string> multiply( string n1 ,string n2 )
{
       int carry=0,count=0,i,j,k;
       long int m=0;
       string temp,product;
       vector<string> v;
       for (i=n1.size()-1 ; i>=0 ; i--)
       {
           for (j =n2.size()-1 ; j>=0 ; j--)
           {
              
               m +=(int)(n1[i]-48) * (int)(n2[j]-48) + carry;
               temp += m%10 + 48;
               carry = m/10;
               m=0;
           }
           if (carry)
           {
              temp+=carry+48;
              carry=0;
           }
           reverse(temp.begin(),temp.end());
           for (k=0 ; k < count ; k++)
               temp+='0';
           v.push_back(temp);
           temp.clear();
           count++;
       }
       return v;
}

Just OpenGL

International Stroop Test link1
International Stroop Test link2
Android and Web programming
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
02-10-2007, 02:41 PM
ارسال: #3
RE: فاکتوریل اعداد خیلی بزرگ
دوست من ممنون ، واقعا کارتون خیلی درسته .ولی من شنیده بودم که برای محاسبه فاکتوریل اعداد بزرگ یک روشی هستش که نمی دونم اسمش چیه که با آرایه ها کار می کنه و فاکتوریل اعداد خیلی بزرگ رو که به طور معمول نمیشه حساب کرد توی آرایه انجام میده!حالا اگه کسی در این مورد چیزی می دونه لطف کنه برام الگوریتمش رو بزاره.
یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
02-10-2007, 03:23 PM (آخرین تغییر در این ارسال: 02-10-2007 03:26 PM توسط soheil_sf.)
ارسال: #4
RE: فاکتوریل اعداد خیلی بزرگ
منم از همون روش استفاده کردم.(ضرب ها رو در string یا آرایه ای از کاراکتر ها انجام دادم. )
برای محاسبه ی فاکتوریل اعداد بزرگ باید اول بتونیم ضرب اعداد بزرگ رو انجام بدیم و همچنین برای ضرب کردن اعداد بزرگ باید اول بتونیم اعداد بزرگ رو با هم جمع کنیم.
حالا من و دوستم این دو کار رو انجام دادیم و شما باید با استفاده از این 2 تا عمل اصلی بتونین فاکتوریل عدد رو محاسبه کنین.
روش محاسبه ی فاکتوریل هم همون ضرب عدد مورد نظر ، از خودش تا 2 ( به صورت نزولی هر دفعه یک واحد کمتر بشه ) هستش.

Just OpenGL

International Stroop Test link1
International Stroop Test link2
Android and Web programming
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
15-11-2007, 10:26 PM
ارسال: #5
RE: فاکتوریل اعداد خیلی بزرگ
فاکتوریل اعداد خیلی بزرگ
برنامه ای که 8 وزیردر92حالت نتوانند همدیگر را بزنن
طرز چیدن 8 وزیر بروی صفحه شطرنج که همدیگر را نتوانند بزنندتعداد حالت هایشان 92تا
یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
15-11-2007, 10:34 PM
ارسال: #6
RE: فاکتوریل اعداد خیلی بزرگ
این پست شما یعنی چی ؟ الان مشکلی با 8 وزیر دارین؟

Life Is An Infinit Loop Try To Find A Way
To Exit From It.
.Bienvenue à notre emplacement.
http://www.codecorona.com
مشاهده سایت کاربر یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
15-11-2007, 10:34 PM
ارسال: #7
RE: فاکتوریل اعداد خیلی بزرگ
گرافیکی برج های هانوی
طرز چیدن 8 وزیر بروی صفحه شطرنج که همدیگر را نتوانند بزنندتعداد حالت هایشان 92تا را می خواستم عزیزم
یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
15-11-2007, 11:35 PM (آخرین تغییر در این ارسال: 15-11-2007 11:45 PM توسط rrm.)
ارسال: #8
RE: فاکتوریل اعداد خیلی بزرگ
من نمیدونم روش سهیل چه مشکلی داره ولی خوب این کدم هست: (عینا از کتاب art of programming contest کپی شده)
کد:
#include <stdio.h>
#include<string.h>

char f[10000];
char factorial[1010][10000];

void multiply(int k)
{
    int cin,sum,i;
    int len = strlen(f);
    cin=0;
    i=0;
    while(i<len)
    {
        sum=cin+(f[i] - '0') * k;
        f[i] = (sum % 10) + '0';
        i++;
        cin = sum/10;
    }
    while(cin>0)
    {
        f[i++] = (cin%10) + '0';
        cin/=10;
    }
    f[i]='\0';
    for(int j=0;j<i;j++)
        factorial[k][j]=f[j];

    factorial[k][i]='\0';
}
void fac()
{
    int k;
    strcpy(f,"1");
    for(k=2;k<=1000;k++)
        multiply(k);
}
void print(int n)
{
    int i;
    int len = strlen(factorial[n]);
    printf("%d!\n",n);
    for(i=len-1;i>=0;i--)
        printf("%c",factorial[n][i]);
    printf("\n");
    }
int main()
{
    int n;
    factorial[0][0]='1';
    factorial[1][0]='1';
    fac();
    while(scanf("%d",&n)==1){
    print(n);
}
    return 0;
}

LOVE ALL , TRUST A FEW
یافتن تمامی ارسال‌های این کاربر
Like Post نقل قول این ارسال در پاسخ
ارسال پاسخ 


موضوعات مشابه ...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  جمع و ضرب و تفريق و فاتوريل اعداد بزرگ با ليست پيوندي mohammadnrn 4 5,637 06-12-2010 11:26 PM
آخرین ارسال: sorset
Bell بازی حدس یک عدد 4 رقمی(فوری فوری خیلی فوری) F.M 1 3,424 25-12-2009 12:39 PM
آخرین ارسال: mohammad
  ضرب اعداد بزرگ maryam_masiha 3 5,238 17-04-2009 10:35 PM
آخرین ارسال: زهرا
  عملیات روی اعداد بزرگ dj_nemo 5 8,195 30-06-2008 10:41 PM
آخرین ارسال: soheil_sf
  ضرب اعداد بزرگ soheil_sf 2 9,001 02-10-2007 10:35 PM
آخرین ارسال: mohammad
  جمع اعداد خیلی بزرگ mohammad 3 4,951 02-10-2007 10:03 PM
آخرین ارسال: mohammad
  complex class اعداد مختلط ),ورژن 2 mohammad 0 1,870 17-06-2007 08:21 AM
آخرین ارسال: mohammad
  complex class اعداد مختلط mohammad 0 2,189 17-05-2007 07:55 PM
آخرین ارسال: mohammad

پرش در انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان









ترجمه MyBB فارسی - فارسی ساز نسخه ۱.۶
قدرت گرفته از MyBB, © 2002-2014 MyBB Group.

Theme "Aadamentium" created by: MyBB Themes | Tutoriale


server monitor