elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


  Mostrar Mensajes
Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ... 88
641  Media / Diseño Gráfico / Re: Retoque: Pimp my car en: 14 Octubre 2008, 14:29 pm
Muchas gracias  ;D ;D

Lo estoy poniendo en practica  :D

Un saludo

OHK
642  Foros Generales / Sugerencias y dudas sobre el Foro / Re: Agragar imagen a temas en: 11 Octubre 2008, 06:06 am
no, icono no, una imagen...

Código:
[img]AQUI LA DIRECCION DE LA IMAGEN[/img]

 ;D ;D
643  Programación / Ejercicios / Re: Ejercicios Revursivos en Java y sus Soluciones en: 11 Octubre 2008, 03:47 am
Alguien se anima a resolver el ejercicio 14 ?

OHK
644  Programación / Ejercicios / Ejercicios Recursivos en Java y sus Soluciones en: 11 Octubre 2008, 03:19 am
Planteamiento del Ejercicio acompañado del algoritmo de resolución en Java

Planteamiento:

Ejercicio 1. Programar un algoritmo recursivo que calcule el factorial de un número.

Solución:

Código
  1.    int factorial(int n){
  2.      if(n==0) return 1;   //AXIOMA
  3.      else return n*factorial(n-1);  //FORMULA RECURSIVA
  4.   }  



Planteamiento:

Ejercicio 2. Programar un algoritmo recursivo que calcule un número de la serie fibonacci.

Solución:

Código
  1.    int fibonaci(int n){
  2.      if(n==1 || n==2) return 1;
  3.      else return fibonaci(n-1)+fibonaci(n-2);
  4.    }  



Planteamiento:

Ejercicio 3. Programar un algoritmo recursivo que permita hacer la división por restas sucesivas.

Solución:

Código
  1.    int division (int a, int b)
  2.    {
  3. if(b > a) return 0;
  4. else
  5.    return division(a-b, b) + 1;
  6.    }
  7.  



Planteamiento:

Ejercicio 4. Programar un algoritmo recursivo que permita invertir un número. Ejemplo: Entrada: 123 Salida: 321

Solución:

Código
  1.     int invertir (int n)
  2.    {
  3. if (n < 10)         //caso base
  4.    return n;
  5. else
  6.    return (n % 10) + invertir (n / 10) * 10;
  7.    }



Planteamiento:

Ejercicio 5. Programar un algoritmo recursivo que permita sumar los dígitos de un número. Ejemplo: Entrada: 123 Resultado:6

Solución:

Código
  1.     int sumar_dig (int n)
  2.    {
  3. if (n == 0)      //caso base
  4.    return n;
  5. else
  6.    return sumar_dig (n / 10) + (n % 10);
  7.    }



Planteamiento:

Ejercicio 6. Programar un algoritmo recursivo que permita hacer una multiplicación, utilizando el método Ruso. Para mas informacion: aqui.

Solución:

Código
  1.     int mult_rusa(int A, int B)
  2.    {
  3.        if(A==1){
  4.    return (B);
  5. }
  6. if(A%2!=0){
  7. return(B+mult_rusa( A/2 , B*2));
  8. }
  9. else{
  10. return(mult_rusa( A/2 , B*2));
  11. }                                
  12.    }



Planteamiento:

Ejercicio 7. Programar un algoritmo recursivo que permita sumar los elementos de un vector.

Solución:

Código
  1.     int suma_vec(int v [], int n)
  2.    {
  3. if (n == 0)
  4.    return v [n];
  5. else
  6.    return suma_vec(v, n - 1) + v [n];
  7.    }



Planteamiento:

Ejercicio 8. Programar un algoritmo recursivo que permita multiplicar los elementos de un vector.

Solución:

Código
  1.     int multiplicar (int vec [], int tam)
  2.    {
  3. if (tam == 0)
  4.    return (vec [0]);
  5. return (vec [tam] * multiplicar (vec, tam - 1));
  6.    }



Planteamiento:

Ejercicio 9. Programar un algoritmo recursivo que calcule el Maximo comun divisor de dos números.

Solución:

Código
  1.    int sacar_mcd(int a, int b) {
  2.        if(b==0)
  3.            return a;
  4.        else
  5.            return sacar_mcd(b, a % b);
  6.    }
  7.  



Planteamiento:

Ejercicio 10. Programar un algoritmo recursivo que determine si un número es positivo.

Solución:

Código
  1.   public boolean positivo(int n){
  2.     if(n>0) return true;
  3.     else return negativo(n);
  4.    }
  5.  
  6.    public boolean negativo(int n){
  7.     if(n<0) return false;
  8.     else return  positivo(n);
  9.    }



Planteamiento:

Ejercicio 11. Programar un algoritmo recursivo que determine si un número es impar utilizando recursividad cruzada.

Solución:

Código
  1.        public boolean par(int n){
  2. if(n==0) return true;
  3. else return impar(n-1);
  4. }
  5.  
  6. public boolean impar(int n){
  7. if(n==0) return false;
  8. else return par(n-1);
  9. }



Planteamiento:

Ejercicio 12. Programar un algoritmo recursivo que permita sumar los elementos de una matriz.

Solución:

Código
  1.     int suma (int fila, int col, int orden, int mat [] [])
  2.    {
  3. if (fila == 0 && col == 0)
  4.    return mat [0] [0];
  5. else
  6.    if (col < 0)
  7. return suma (fila - 1, orden, orden, mat);
  8.    else
  9. return mat [fila] [col] + suma (fila, col - 1, orden, mat);
  10.    }



Planteamiento:

Ejercicio 13. Programar un algoritmo recursivo que permita resolver el cuadro latino. Ejemplo de cuadro latino:

0 0 0 0 1
0 0 0 1 2
0 0 1 2 3
0 1 2 3 4
1 2 3 4 5


Solución:

Código
  1.     latino (int fila, int col, int cont, int orden, int mat [] [])
  2.    {
  3. if (fila == 0 && col == 0)
  4.    mat [0] [0] = 1;
  5. else
  6.    if (fila == col)
  7. latino (fila - 1, orden - 1, orden, orden, mat);
  8.    else
  9.    {
  10. mat [fila] [col] = cont;
  11. latino (fila, col - 1, orden + 1, orden, mat);
  12.    }
  13.    }



Planteamiento:

Ejercicio 14. Programar un algoritmo recursivo que permita resolver la siguiente matriz:

1 1 1 1 1
1 2 2 2 2
1 2 4 4 4
1 2 4 8 8
1 2 4 8 16


Solución: Solucionado por: AmeRiK@nO

Código
  1. public class MatrizRecursividad {
  2.  
  3. private static int a=0, aux=1, b=0; //Declaramos los datos necesarios
  4. private static int[][] matriz = new int[6][6]; //La matriz debe ser cuadrada
  5.  
  6. public static void main(String[] args) {
  7.  
  8. llenarMatriz(matriz, a, b); //Iniciamos el llamado recursivo
  9. imprimir(); //imprimimos la matriz
  10.  
  11. }
  12.  
  13. public static void llenarMatriz(int matriz[][], int i, int j){
  14.  
  15. if(j > matriz.length -1){ //Si llegó a la ultima coluna, reseteamos los datos para la siguiente
  16. i++;
  17. j=0;
  18. aux++;
  19. }
  20. if(i <matriz.length){ // compara que no hallamos llegado al final
  21.  
  22. if(i==(aux-1) && j >= (aux-1)){ //comprueba que estemos en el lugar adecuado, es decir ira imprimiento escaladamente
  23. if(i==0)// si es la primera fila ingresamos aux=1
  24. matriz[i][j] = matriz[i][j]=aux;
  25. else
  26. matriz[i][j] = matriz[i][i-1]*2;//ingresamos el valor correspondiente al ultimo de la "escala" *2
  27. llenarMatriz(matriz, i , j+1);
  28. }
  29. else{ //si no, asignamos los valores anteriores de la escala
  30. if(j==0)// comprobamos si es el primer digito a ingresar
  31. matriz[i][j] = j+1;
  32. else
  33. matriz[i][j] = matriz[i-1][j];// asignamos el mismo numero de la fila anterior (i-1)
  34. llenarMatriz(matriz, i, j+1);
  35. }
  36. }
  37. }
  38.  
  39. public static void imprimir(){ //este metodo nos imprime la matriz por consola
  40.  
  41. for(int i=0; i< matriz.length; i++){
  42. for(int j=0; j< matriz.length; j++){
  43. System.out.print(matriz[i][j] + " ");
  44. }
  45. System.out.print("\n");
  46. }
  47. }
  48.  
  49. }



Planteamiento:

Ejercicio 15. Programar un algoritmo recursivo que ejecute la matriz del cubo mágico.

Solución:

Código
  1.    void magico(int mat [] [], int fil, int colmedio, int c, int n)
  2.    {
  3. if (c == n * n)
  4. {
  5.    mat [n-1] [colmedio] = c;
  6. }
  7. else
  8. {
  9.    if (fil < 0 && colmedio == n)
  10.    {
  11. magico(mat, fil + 2, n - 1, c, n);
  12.    }
  13.    else
  14.    {
  15. if (fil < 0)
  16. {
  17.    magico(mat, n - 1, colmedio, c, n);
  18. }
  19. else
  20. {
  21.    if (colmedio == n)
  22.    {
  23. magico(mat, fil, 0, c, n);
  24.    }
  25.    else
  26.    {
  27. if (mat [fil] [colmedio] == 0)
  28. {
  29.    mat [fil] [colmedio] = c;
  30.    magico(mat, fil - 1, colmedio + 1, c + 1, n);
  31. }
  32. else
  33. {
  34.    magico(mat, fil + 2, colmedio - 1, c, n);
  35. }
  36.    }
  37. }
  38.    }
  39.  
  40. }
  41.    }



Planteamiento:

Ejercicio 16. Programar un algoritmo recursivo que muestre el numero menor de un vector.

Solución:

Código
  1.        int menorvec (int x [], int n, int menor) {
  2.        if (n == 0)
  3.            if (menor > x [n]) return x [0];
  4.            else return menor;
  5.        else
  6.            if (menor > x [n]) return menorvec (x, n - 1, x [n]);
  7.            else return menorvec (x, n - 1, menor); }



Planteamiento:

Ejercicio 17. Programar un algoritmo recursivo que muestre el numero mayor de un vector.

Solución:

Código
  1.        int mayor (int numeros [], int posicion) {
  2.        int aux;
  3.        if (posicion == 0) return numeros [posicion];
  4.        else {
  5.            aux = mayor (numeros, posicion - 1);
  6.            if (numeros [posicion] > aux) return numeros [posicion];
  7.            else return mayor (numeros, posicion - 1);
  8.         }    
  9.        }



Citar
Recursividad

1.1. Introducción.

El concepto de recursividad va ligado al de repetición. Son recursivos aquellos algoritmos que, estando encapsulados dentro de una función, son llamados desde ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen uso de bucles while, do-while, for, etc.

1.2. Definición.

Algo es recursivo si se define en términos de sí mismo (cuando para definirse hace mención a sí mismo). Para que una definición recursiva sea válida, la referencia a sí misma debe ser relativamente más sencilla que el caso considerado.
1.3. Elementos de la Recursión

1.3. 1. Axioma

Es un caso donde el problema puede resolverse sin tener que hacer uso de una nueva llamada a sí mismo. Evita la continuación indefinida de las partes recursivas.

1.3.2. Formula recursiva

Relaciona el resultado del algoritmo con resultados de casos más simples. Se hacen nuevas llamadas a la función, pero están más próximas al caso base.
Por ejemplo: El factorial de un número

factorial(0)   ->  1
factorial(1)   ->  1*factorial(0)
factorial(2)   ->  2*factorial(1)
factorial(3)   ->  3*factorial (2)
…               ->  …
factorial(N)   ->  3*factorial (N-1)

En la resolución de algoritmos recursivos es imprescindible encontrar estos dos elementos.

1.4. Tipos de recursión

1.4.1. Recursividad simple

Aquella en cuya definición sólo aparece una llamada recursiva. Se puede transformar con facilidad en algoritmos iterativos.

1.4.2. Recursividad múltiple
Se da cuando hay más de una llamada a sí misma dentro del cuerpo de la función, resultando más difícil de hacer de forma iterativa. Un ejemplo típico es la función de fibonacci
 
1.4.3. Recursividad anidada
En algunos de los argumentos de la llamada recursiva hay una nueva llamada a sí misma. La función de Ackermann se define por recursividad como sigue:

1.4.4. Recursividad cruzada o indirecta
Son algoritmos donde una función provoca una llamada a sí misma de forma indirecta, a través de otras funciones.

OHK
645  Media / Diseño Gráfico / Re: Retoque: Pimp my car en: 11 Octubre 2008, 01:41 am
vaya, tiene buena pinta.
Podrias explicar como lo hiciste?

Un tuto o algo asi  ;D

Un saludo

OHK
646  Programación / PHP / Re: Ejercicios PHP en: 8 Octubre 2008, 18:04 pm
Mira aqui:

http://foro.elhacker.net/ejercicios/ejercicios_php-t36010.0.html

Un saludo
OHK
647  Programación / Ejercicios / Re: Encriptacion basica con matrices en: 8 Octubre 2008, 16:54 pm
Citar
¿la palabra clave la podemos elegir nosotros y dejarla como valor constante para todo el programa, o debe de insertarla el usuario?

Ambas opciones, puedes predefinirla tu si asi lo deseas, o puedes pedirle al usuario que ponga una palabra clave a su gusto.

Si lo haces preguntando al usuario, tienes un plus  ;)

Un saludo
OHK
648  Media / Diseño Gráfico / Re: [BattleArt] Con mucha Pluma (Votacion) en: 8 Octubre 2008, 07:26 am
jejeje

Bueno, de hecho ambos estan muy bien  :D
Pero es mas de mi gusto, esta vez el de Azielito  :P
649  Media / Diseño Gráfico / Re: [BattleArt] Con mucha Pluma (Votacion) en: 8 Octubre 2008, 07:25 am
Azie, mi voto es por vos  ;)
Te quedo muy bien  ::)
650  Programación / Ejercicios / Re: Encriptacion basica con matrices en: 4 Octubre 2008, 17:10 pm
Solo una pregunta ¿Es necesario hacer todos esos pasos o solo con que de el mismo resultado basta?

Si es necesario mostrar todos los pasos sin falta.
Osea que debes imprimir 3 matrices antes de sacar el resultado  :P

Un saludo
OHK
Páginas: 1 ... 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 [65] 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 ... 88
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines