Você está na página 1de 8

// Declaracion de la clase public class Numeros_Aleatorios { int Lado ; // Izq = 1 , Der = 0; String Cadena; int Long_Cadena; int Salto;

int T_Digit; long R; int Cantidad; // constructor .... public Numeros_Aleatorios(int n) { Lado = 1; // Izq = 1 , Der = 0; Cadena =""; Long_Cadena = 0; Salto = 0; R = 0; T_Digit = 3; Cantidad = n; }// fin del contructor // Metodos.......................................... public void Cuadrado_Medio (int N ) { System.out.println("\nMetodo del Cuadrado Medio"); System.out.println(" ------------------"); // Variable para el ciclo int j = 0; while (j <= Cantidad) { // Obtenemos el cuadrado de N R = (long)Math.pow(N,2); // convertimos el double a cadena Cadena = Long.toString(R); j++; // Imprimimos en pantalla System.out.print("R["+j+"] = " + N + "^2 = " + Cadena); // tomamos el tamao de la cadena Long_Cadena = Cadena.length(); // Dejamos fuera el ".0" de la cadena if (Long_Cadena> 2) { if ((Long_Cadena - T_Digit) == 1 ) { T_Digit = T_Digit - 1; } // Obtenemos el salto de cadena Salto = (Long_Cadena - T_Digit) / 2; if (((Long_Cadena - T_Digit) % 2) != 0) { Salto = Salto + Lado;

} // fin del if // Obtenemos los numeros que solo necesitamos Cadena = Cadena.substring(Salto,Salto+T_Digit); // Convertimos la cadena a entero System.out.print(" == " + Cadena + "\n"); N = Integer.parseInt(Cadena); } else { break; // romper ciclo while } Salto = 0; } // final del while } // fin del metodo public void Multiplicador_Constante(int K , int X ) { System.out.println("\nMetodo del Multiplicador Constante"); System.out.println(" ------------------"); // Variable para el ciclo int j = 0; while (j <Cantidad) { // Obtenemos el resultado R = (K * X); // convertimos el double a cadena Cadena = Long.toString(R); j++; // Imprimimos en pantalla System.out.print("R["+j+"] = " + K + " x " + X + " = " + Cadena);

// tomamos el tamao de la cadena Long_Cadena = Cadena.length(); // Dejamos fuera el ".0" de la cadena if (Long_Cadena> 2) { if ((Long_Cadena - T_Digit) == 1 ) { T_Digit = T_Digit - 1; } // Obtenemos el salto de cadena Salto = (Long_Cadena - T_Digit) / 2; if (((Long_Cadena - T_Digit) % 2) != 0) { Salto = Salto + Lado; } // fin del if

// Obtenemos los numeros que solo necesitamos Cadena = Cadena.substring(Salto,Salto+T_Digit); // Convertimos la cadena a entero X = Integer.parseInt(Cadena); System.out.print(" == " + X + "\n"); } else { break; // fin del ciclo } Salto = 0; } // final del while } // fin del metodo public void Producto_Medio (int R1 , int R2 ) { System.out.println("\nMetodo del Cuadrado Medio"); System.out.println(" ------------------"); // Variable para el ciclo int j = 0; while (j <= Cantidad) { // Obtenemos el cuadrado de N R = R1 * R2; // convertimos el double a cadena Cadena = Long.toString(R); j++; // Imprimimos en pantalla System.out.print("R["+j+"] = " + R1 + " x " + R2 + " = " + Cadena); // tomamos el tamao de la cadena Long_Cadena = Cadena.length(); // Dejamos fuera el ".0" de la cadena //si la cadena es mayor a 2 if (Long_Cadena> 2) { //verifica si puede obtener un producto medio if ((Long_Cadena - T_Digit) == 1 ) { T_Digit = T_Digit - 1; } // Obtenemos el salto de cadena Salto = (Long_Cadena - T_Digit) / 2; if (((Long_Cadena - T_Digit) % 2) != 0) { Salto = Salto + Lado; } // fin del if

// Obtenemos los numeros que solo necesitamos Cadena = Cadena.substring(Salto,Salto+T_Digit); // Convertimos la cadena a entero R = Integer.parseInt(Cadena); } else { break; // rompemos ciclo } Salto = 0; System.out.println(" == " + R); R1 = R2; R2 = (int)R; } // final del while } // fin del metodo . public void Congruencial_Mixto(int a,int x, int c, int m ) { System.out.println("\nMetodo Congruencial Mixto"); System.out.println(" ------------------"); int n = 0; while(n <Cantidad){ // formula x = ((a * x) + c) % m; n++; System.out.println("X"+n+" = (("+ a +" x "+x+") + " + c + ") mod "+ m); }//fin del while }// fin del metodo public void Congruente_Multiplicativo(int b,int m, int c, int mod ) { System.out.println("\nMetodo Congruente Multiplicativo"); System.out.println(" ------------------"); int n = 0; while(n <Cantidad){ // formula m = (b * m + c) % mod;

n++; System.out.print("M"+n+" = ("+ b +" x "+ m + " + " + c + " ) mod "+ mod); System.out.println(" = " + m); } // fin del while }// fin del metodo public void MultiplicativoCongruencia(int k,int x, int m ) { System.out.println("\nMetodo Multiplicativo de Congruencia"); System.out.println(" ------------------"); int n = 0; while(n <Cantidad){ x = (k * x) % m; n++; System.out.print("X"+n+" = ("+ k +" x "+ x + " ) mod " + m); System.out.println(" = " + x); }//fin del while }// fin del metodo public void Congruencial_Aditivo(int Parametros [] , int m , int n) { System.out.println("\nMetodo Congruencial Aditivo"); System.out.println(" ------------------"); . ListaDoble ListaD = new ListaDoble(); int j = 0; int i; int x; for (i = 0 ; i <5 ; i++ ) { ListaD.IntroducirDato_Final(Parametros[i]); } // fin del bucle i++; while (j <= Cantidad) { System.out.print("X"+i+"= (" + ListaD.Buscar_Nodo(i-1) + " + " + ListaD .Buscar_Nodo(i-n)); x = (ListaD.Buscar_Nodo(i-1) + ListaD.Buscar_Nodo(i-n) ) % m; ListaD.IntroducirDato_Final(x); System.out.println(") mod " + m + " = " + x); j++; i++;

} // fin del while

} // fin del metodo } // fin del la clase // Mas clases ............................................... class Nodo{ // Atributos de la clase public public public public int Dato; int n; Nodo Next; Nodo Prev;

// Contructor de la Clase public Nodo(int Dato , int n){ this.Dato = Dato; this.n = n; Next = null; Prev = null; } // final del constructor } // fin de la clase // lista dobles .......................... class ListaDoble { public Nodo Lista ; public int i ; public ListaDoble () { Lista = null; i = 1; } // final del constructor // Introducir Datos ----------------------------public void IntroducirDato_Final(int Dato) { Recorrer_Lista_Next (); Nodo Nuevo = new Nodo(Dato,i); if ( Lista == null ) {

Lista = Nuevo; } else { Nuevo.Prev = Lista; Lista.Next = Nuevo; } // Fin del if i++; } // Fin del Metodo // Imprimir Nodos ------------------------------------public void ImprimirNodo_Next() { Recorrer_Lista_Prev(); if (Lista == null ) { System.out.println("La pila esta vacia!!!"); } else { System.out.println("\n\n\t Lista \n"); int Index = 1; while (Lista.Next != null) { System.out.println(" "+ Index + " .- " + Lista.Dato); Lista = Lista.Next; Index ++; } // Fin del Ciclo while System.out.println(" "+ Index + " .- " + Lista.Dato); System.out.println("\n"); } // Fin del if } // Fin del Metodo public int Buscar_Nodo(int i) { Recorrer_Lista_Prev (); while (Lista.n != i) { Lista = Lista.Next; } return Lista.Dato; } // fin del metodo

// Recorridos -----------------------------------------------------public void Recorrer_Lista_Next () { if (Lista != null ) { while (Lista.Next != null) { Lista = Lista.Next; } } } public void Recorrer_Lista_Prev () { if (Lista != null ) { while (Lista.Prev != null) { Lista = Lista.Prev; } } } }// fin de la clase

Você também pode gostar