Más contenido relacionado La actualidad más candente (20) Similar a Presentacion eda (20) Presentacion eda3. Sea W una secuencia de enteros no negativos y M un número entero positivo. El problema consiste en diseñar un algoritmo para encontrar todos los posibles subconjuntos de W cuya suma sea exactamente M. 4. a) Indica qué esquema es el más adecuado para resolver este problema. Explícalo razonadamente, desarrollando en pseudocódigo dicho esquema. 5. b) Desarrolla la implementación, sobre este problema, del esquema indicado en el apartado anterior. 9. Indica qué esquema es el más adecuado para resolver este problema. Explícalo razonadamente, desarrollando en pseudocódigo dicho esquema. 21. éxito ← VueltaAtrás (etapa_siguiente) 31. Indica qué esquema es el más adecuado para resolver este problema. Explícalo razonadamente, desarrollando en pseudocódigo dicho esquema. 43. éxito ← VueltaAtrás (etapa_siguiente) 53. Indica qué esquema es el más adecuado para resolver este problema. Explícalo razonadamente, desarrollando en pseudocódigo dicho esquema. 65. éxito ← VueltaAtrás (etapa_siguiente) 75. Desarrolla la implementación, sobre este problema, del esquema indicado en el apartado anterior. función sumadada(sol:vector,w:vector, p:entero pSol:entero, m:entero) : nada inicio si (m==0) MostrarSolucion(sol) sino mientras (p<w.tam) Y (m>0) sol[pSol] ← w[p] sumadada(sol,w,p+1,pSol+1,m-w[p]) p ←p+1 finmientras finsi fin función principal() : nada variables Sol, w : vector M, p, pSol : entero inicio m ← 7 p ← 0 pSol ← 0 w[0] ← 1 w[1] ← 2 w[2] ← 3 w[3] ← 4 w[4] ← 6 sumadada(sol,w,p,pSol,m) fin Solución Aceptable Selección Candidatos {Q} = {p ^ pSol < w.tam} {R} = { } 77. Desarrolla la implementación, sobre este problema, del esquema indicado en el apartado anterior. void sumadada(vector <int> sol, vector <int> w, int p, int pSol, int m) { if(m==0) { for (int i=0;i<sol.size();i++) cout<<sol[i]<<" "; cout<<endl; } else { while((p<w.size()) && (m>0)) { sol[pSol]=w[p]; pSol++; sumadada(sol,w,p+1,pSol,m-w[p]); p++; pSol--; } } } int main(int argc, char **argv) { vector <int> sol(5); vector <int> w(5); int m=7; int p=0; int pSol=0; w[0]=1; w[1]=2; w[2]=3; w[3]=4; w[4]=6; sumadada(sol,w,p,pSol,m); return 0; }