|
Mostrar Temas
|
Páginas: 1 [2]
|
12
|
Programación / Programación C/C++ / Ayuda con Algoritmo Voraz!!
|
en: 3 Abril 2016, 20:46 pm
|
Dado un conjunto de M números enteros ordenados crecientemente se pretende extraer información del mismo. Por ej: (1,3,4,5)
Problema 1: ¿Existe algún subconjunto de índices del array cuyos elementos tengan una media aritmética igual a N(N es un valor que introducimos nosotros).
Proporciónese un algoritmo que en caso afirmativo lo muestre y que en caso contrario indique que no existe tal subconjunto.
Me han comentado de pasarlo a binario. Sé que hay 2^n subconjuntos del array, pero no logro dar en la diana.
|
|
|
13
|
Programación / Java / Multiplicar polinomios y derivada
|
en: 5 Marzo 2015, 20:43 pm
|
Hola amigos, hoy les traigo un reto, mi profesor nos ha mandado multiplicar dos polinomios y hacerles sus derivadas. El problema, no tengo ni idea de hacerlo. Aquí está lo que llevo hecho: package polinomio public class Poli { private double coef[]; public Poli(){ } public Poli(double c[]){ coef=new double [c.length]; for (int i = 0; i < c.length; i++) { coef[i]=c[i]; } } public Poli (int g, double c){ coef=new double [g+1]; for (int i = 0; i <coef.length ; i++) { coef[i]=c; } } public Poli (Poli p){ this(p.coef); } public Poli(int g){ this(g,1); } public Poli(double c){ this(0,c); } public int ObtenerGrado(){ return coef.length-1; } public double obtenCoef(int t){ return coef[t]; } public double[] obtenTodosLosCoef(){ double aux[]=new double[coef.length]; for (int i = 0; i<coef.length; i++) { aux[i]=coef[i];} return aux; } public double obtenCoefInd(){ return 0; } public void negado(){ for (int i = 0; i < coef.length; i++) { coef[i]=-coef[i]; } } public void suma(Poli b){ Poli aux= new Poli(b); if (aux.coef.length>=coef.length) { for (int i = 0; i < coef.length; i++) { aux.coef[i]+=coef[i]; } } else{ for (int i = 0; i < aux.coef.length; i++) { coef[i]+=aux.coef[i]; } } } public Polinomio suma2 (Poli b){ Poli aux= new Poli(b); Poli aux2= new Poli(b); if(aux.coef.length>=aux2.coef.length){ for (int i = 0; i < aux2.coef.length; i++) { aux2.coef[i]+=coef[i]; } } else{ for (int i = 0; i < aux2.coef.length; i++) { coef[i]=aux2.coef[i]; } } return null; } public Poli resta(Poli p){ Poli aux=new Poli (p); aux.negado(); suma(aux); return aux; } public void multiplicar (Poli p){ Poli aux=new Poli(p); for (int i = 0; i < coef.length; i++) { } } public void derivada(){ } public double evalua(double x){ return 0; } public void ponCoef(int t,double c){ } @Override for (int i = 0; i < this.coef.length; i++) { if(coef[i]!=0){ aux=aux+"("+coef[i]+"x^"+i+")"+" + "; } } return aux; } }
Y aquí el main: package polinomio; public class Polinomio { public static void main (String[] args ) { Poli a,b,c; double datos1[]={3,1,5,6,9}; double datos2[]={8,4,-5,9,-8}; Polinomio p=new Polinomio(); a=new Poli(datos1); b=new Poli(datos2); c=new Poli(); //System.out.println("Polinomio a "+a); //System.out.println("Polinomio b "+b); // System.out.println("Polinomio c "+c); double datos3[]=b.obtenTodosLosCoef();//Para el obtenerTodosLosCoef for (int i = 0; i < datos3.length; i++) { // System.out.print(datos3[i]+" "); } b=new Poli(a); b.negado(); a.suma(b); } }
Sinceramente, llevo más de una semana con todo esto y ya estoy saliendo loco, no sé como hacer la multiplicación y la derivada, si alguien me pudiera ayudar se lo agradecería. Gracias de verdad.
|
|
|
14
|
Programación / Java / Problema repetición de números
|
en: 21 Febrero 2015, 02:08 am
|
Hola amigos, tengo un problema. Un profesor nos ha mandado "jugar la lotería" con un boleto que siempre contiene los mismos números (los números van entre 1 y 49). Entonces su intención es averiguar el número de dias, meses, etc que se tarda en realizar n coincidencias (máximo 6 coincidencias). Entonces, mi problema reside en la comparación de número random generado y los que ya tengo en el vector. He probado mil métodos y no doy con el adecuado, si me pudiérais ayudar os lo agradezco. package sorteo; import java.util.Random; import java.util.Scanner; public class Sorteo { public static void main (String[] args ) { int i,j,contador = 0,semanas=0,n; int numeros[]=new int[6]; int boleto[]=new int[6]; Scanner s = new Scanner (System. in); System. out. println("Dame número de coincidencias"); n=s.nextInt(); //Boleto predefinido boleto[0]=1; boleto[1]=3; boleto[2]=15; boleto[3]=35; boleto[4]=39; boleto[5]=40; //Generar números aleatorios while(contador!=n){ semanas++; contador=0; for( i=0;i<6;i++){ int x=(int)(rnd.nextInt(49-1+1)+1); if(i==0)//Sólo para la primera posición del vector numeros[i]=x; else{ for(j=0;j<i;j++){ if((numeros[j]!=x)){//Comparación de número generado con el del vector numeros[i]=x; } else{ i--; //j=6; } } } } //Ver numeros del vector aleatorios for(i=0;i<6;i++) System. out. println(numeros [i ]); System. out. println("------------------------------------"); //Comparar números del boleto aleatorio del fijo for(i=0;i<6;i++){ for(j=0;j<6;j++){ if((boleto[i])==(numeros[j])) { contador++; } } } //System.out.println("Contador"+contador); } // System.out.println("Contador"+contador); System. out. println("Las semanas han sido: "+semanas ); double meses,años,siglos; meses=semanas/4; años=meses/12; siglos=años/100; System. out. println(meses +" meses"); System. out. println(años +" años"); System. out. println(siglos +" siglos"); } }
|
|
|
15
|
Programación / Programación C/C++ / Ayuda Programa con estructuras C
|
en: 2 Diciembre 2014, 22:29 pm
|
Hola, quisiera saber si alguno me hace el favor de decirme en qué me he equivocado porque me estoy volviendo loco y no encuentro el motivo. El ejercicio es el siguiente:
Escribe un subprograma que muestre las asignaturas en las que se encuentra matriculado un alumno, al subprograma se le pasará como parámetro la lista de alumnos, y el dni del alumno del que se quiere mostrar sus datos. Escribe un ejemplo de llamada.
Bien, yo he hecho lo siguiente:
#include <stdio.h> #include <stdlib.h> void verDatos(struct lista la, char *cdni);
struct asignatura{ char nombre[30]; int creditos; }; struct alumno{ char nombre [30]; char dni[10]; struct asignatura matricula[12]; int nsignaturas; }; struct lista{ struct alumno listadoAlumnos[100]; int numero_real; }; struct informe{ int creditosTotales; int nalumnos; }; struct lista listaAdmitidos={ { {"juan","334g",{{"física",6}},1}, {"maria","445h",{{"fisica",2},{"fundamentos1",6}},2}, {"luis","145g",{{"fisica",6}},1}, {"pedro","678p",{{"fisica",3}},1}, {"lorena","745h",{{"fisica",6},{"fundamentos1",6}},2}, {"pascual","554g",{{"fisica",6},{"calculo",6},{"dibujo",9}},3}, }, 6 };
int main(int argc, char** argv) {
} void verDatos(struct lista la, char *cdni){ int i,j; for(i=0;i<la.numero_real;i++){ if(strcmp(la.listadoAlumnos.dni,cdni)==0){ for(j=0;j<la.listadoAlumnos.nsignaturas;j++){ printf("Asignatura: %s\n",la.listadoAlumnos.matricula[j].nombre); } } } }
Me da error en el subprograma como conflicto en verDatos.
Muchas gracias de antemano por leer tanto rollo.
|
|
|
|
|
|
|