ayuda sobre combinaciones
tengo que hacer un programa que me calcule las combinaciones (utilizando la tecnica del factorial) de 500 elementos tomados de a 50, la cosa es que usando los tipos de variables tradicionales, no me deja calcular la combinacion por arriba de 20 elementos tomados a 10 por ejemplo, o algo asi
me tira un error, obviamente porque el calculo implica un numero mucho mas grande de la capacidad que tienen los tipos para almacenar.
Como hago entonces???
me tira un error, obviamente porque el calculo implica un numero mucho mas grande de la capacidad que tienen los tipos para almacenar.
Como hago entonces???
// program combina.cpp
// written in borland c++ - ver 4.5
// para calcular Combinaciones(500,50) = 500!/(50!*450!) simplificamos
// lo factoriales y nos queda = 451*452* ... *500/50!
#include <iomanip.h>
#include <iomanip.h>
void main()
{
double result = 1;
for(int x = 451;x <= 500;x++) // calculo de 451*452*...*500
{
result *= x;
cout << setw(20) << result;
}
cout << endl << endl;
for(x = 2;x <= 50;x++) // division por 1*2*3...*50
{
result /= x;
cout << setw(20) << result;
}
cout << endl << endl;
cout << "Combinaciones(500,50) = " << result << endl << endl;
cout << "end of program - good bye ! ! !" << endl;
} // MAIN
// written in borland c++ - ver 4.5
// para calcular Combinaciones(500,50) = 500!/(50!*450!) simplificamos
// lo factoriales y nos queda = 451*452* ... *500/50!
#include <iomanip.h>
#include <iomanip.h>
void main()
{
double result = 1;
for(int x = 451;x <= 500;x++) // calculo de 451*452*...*500
{
result *= x;
cout << setw(20) << result;
}
cout << endl << endl;
for(x = 2;x <= 50;x++) // division por 1*2*3...*50
{
result /= x;
cout << setw(20) << result;
}
cout << endl << endl;
cout << "Combinaciones(500,50) = " << result << endl << endl;
cout << "end of program - good bye ! ! !" << endl;
} // MAIN
