Académique Documents
Professionnel Documents
Culture Documents
Algortmica III
El problema de la
mochila 0-1 y del cambio
de monedas
Docente
Alumno
Semestre
: 2016-II
Cdigo
: 100262
Cdigo en c:
#include<iostream>
#include<conio.h>
#define max 200
using namespace std;
int matriz[max][max],value[max],pesos[max],cap,sum=0;
void burbuja(int n)
{ int temp,i,j;
for (i=2; i<=n; i++)
for( j=1 ; j<=n - 1; j++)
{
if (pesos[j]< pesos[j+1])
{
temp = pesos[j];
pesos[j] = pesos[j+1];
pesos[j+1] = temp;}}
}
void prueba(int j, int c)
{
if(j>0){
if(c<pesos[j]) prueba(j-1,c);
else {
if((matriz[j-1][c-pesos[j]]+value[j])>matriz[j-1][c]){ prueba(j-1,c-pesos[j]);
cout<<"se tiene "<<pesos[j]<<endl; sum=value[j]+sum;}
else prueba(j-1,c);
}
}
}
prueba(n,cap);
}
getch();
}
}
return matrizCambio;
}
private int[] seleccionarMonedas(int c, int[] monedas, int[][]tabla ){
int i,j;
int[] seleccion = new int[monedas.length];
for(i = 0; i< monedas.length; i++){
seleccion[i]=0;
}
monedas.length;
j= c;
while(j>0){
if(i>1 && tabla[i][j]==tabla[i-1][j]){
i--;
}
else{
seleccion[i-1]++;
j = j - monedas[i-1];
}
}
return seleccion;
}
private int min(int a, int b){
if(a<b)
return a;
else
return b;
}
}
i=