jueves, 2 de abril de 2009

backtraking que la fuerza bruta este contigo

Tenemos unos objetos que queremos guardar en una mochila. El problema es que la mochila solo puede llevar un peso máximo y si guardasemos todos los objetos sobrepasariamos el peso máximo que puede aguantar la mochila. Escogemos los objetos segun su peso, buscando llevar siempre el máximo posible en la mochila. Los objetos tienen que entrar enteros dentro de la mochila, no se pueden partir, por lo que o entran enteros o no entran.

este es el problema comun pero en el codigo solo se pide la cantidad de elementos y no el peso para saber de cuantas formas se puede gaurdar en la mochila

include

using namespace std;
# define MAX 20
void escojer(int k ,int n ,bool[]);
void imprimir(int n ,bool[]);
main()
{
int i,n;
bool desicion [MAX];
cout<<"numero de elemnetos"; cin>>n;
for(i=0;i {
desicion[i]=false;
escojer(0,n,desicion);
}
}
void imprimir(int n ,bool desicion [])
{
for(int i=0;i {
cout<

}
cout< system("pause");

}
void escojer(int k ,int n ,bool desicion [])
{
if(k {
desicion[k]=false;
escojer(k+1,n,desicion);
desicion[k]=true;
escojer(k+1,n,desicion);
desicion[k]=false;
}
else
{
imprimir(n,desicion);
}
}

by cesar avila

0 comentarios:

Publicar un comentario

Tu comentario será moderado la primera vez que lo hagas al igual que si incluyes enlaces. A partir de ahi no ser necesario si usas los mismos datos y mantienes la cordura. No se publicarán insultos, difamaciones o faltas de respeto hacia los lectores y comentaristas de este blog.