DIM semilla AS String DIM D AS Integer DIM aux AS Integer DIM N AS Integer, iCount AS Integer DIM x AS String DIM y AS String
semilla = Application.Args[1] N = Val(Application.Args[2]) D = Len(semilla)
FOR iCount = 1 TO N y = Format$(Val(semilla) ^ 2, "#")
aux = Len(y) IF aux < D THEN x = String$(D - aux, "0") & y ELSE IF D MOD 2 THEN ' D impar IF NOT (aux MOD 2) THEN y = "0" & y ' Len(y) no es impar, hacer impar x = Mid$(y, (Len(y) - D) / 2 + 1, D) ELSE ' D par IF aux MOD 2 THEN y = "0" & y ' Len(y) es impar, hacer par x = Mid$(y, (Len(y) - D) / 2 + 1, D) ENDIF
semilla = x PRINT "y[" & iCount & "]= " & y & " "; PRINT "x[" & iCount & "]= " & x & " "; PRINT "r[" & iCount & "]= " & "0." & x NEXT
int cantidad,semilla=1835; int tamano1,tamano2,i; String cadena,new_numero; cadena=String.valueOf(semilla); // conversion de entero a cadena tamano1=cadena.length(); // tamao de la cadena
double semilla_cuadrada=0;
cantidad=Integer.parseInt(JOptionPane.showInputDialog(" NUMEROS A GENERAR"));
} return new_cadena; } static int tamano(double semilla) { int i=0,c=0; for(i=0; i<20; i++) { c++; semilla=semilla/10;
if (semilla<10) { c++; i=20; } } return c; } }
PROGRAMA DE LOS CUADRADOS MEDIOS EN PHP <?php echo "Cuadrados medios <br>"; $n = $_POST[n]; // $n toma el valor de la casilla n $x0 = $_POST[x0]; // $x0 toma el valor de la casilla x0 Semilla $m = $_POST[m]; // $m toma el valor de la casilla Cantidad de nmeros aleatorios
// Creamos el bucle para que se generen los numeros hasta la cantidad de numeros deseada M for($i=1;$i<=$m;$i++) { $x1= $x0*$x0; //multiplicando x0 entre x0
METODO DE CUADRADOS MEDIOS (CODIGO JAVA) Un primer mtodo a estudiar en la generacin de nmeros pseudoaleatorios es el de los Cuadrados Medios siguiendo estos pasos.
1.- Generar una Semilla Xo 2.- Obtener el cuadrado de dicho nmero. 3.- Extraer n digitos de la parte central del nmero obtenido en el punto 2. 4.- Repetir el paso 2 utilizando X1 como la nueva Semilla.
CODIGO EN JAVA (NetBeans)
/** * * @author HIMDAWIES */ import java.io.*; import javax.swing.JOptionPane; public class Cuadrado { public static void main(String arg[])throws IOException {
int cantidad,semilla=Integer.parseInt(JOptionPane.showInputDialog(" INTRODUZCA SEMILLA"));; int tamano1,tamano2,i; String cadena,new_numero; cadena=String.valueOf(semilla); // conversion de entero a cadena tamano1=cadena.length(); // tamao de la cadena
double semilla_cuadrada=0;
cantidad=Integer.parseInt(JOptionPane.showInputDialog(" NUMEROS A GENERAR"));
} return new_cadena; } static int tamano(double semilla) { int i=0,c=0; for(i=0; i<20; i++) { c++; semilla=semilla/10;
if (semilla<10) { c++; i=20; } } return c; } }
Generar Numeros Pseudoaleatorios por metodo de Cuadrado Medio Bien Ahora veremos como funciona cada libreria que como sabemos no es mas que un programa normal el cual podemos implementar en otros programas como veran el algoritmo para generar los numeos no es nada complicado
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace CuadradoMedio //este es el nombre de la libreria o el nombre del proyecto { public class cuadradoM //es la clase principal de el programa { public double[] numeros; // Este arreglo es el que enviaremos de regreso con los numeros public double[] cuadrado; //Este arreglo son los numeros generados al cuadrado public string[] completo; //Arreglo con los numeros completos si les faltaba un 0 public string[] central; /los numeros del numcentro
public void Generar(double digitosE, double total, double inicialE)//aqui esta el metodo al que le enviamos los datos del post pasado {
double totalnum = total; double digitos = digitosE; double inicial = inicialE; numeros = new double[int.Parse(totalnum.ToString()) + 1]; cuadrado = new double[int.Parse(totalnum.ToString())]; completo = new string[int.Parse(totalnum.ToString())]; central = new string[int.Parse(totalnum.ToString())];
string numero; numeros[0] = inicial;
for (int i = 1; i <= totalnum; i++)//aqui implementamos el metodo de cuadrado medio { inicial = Math.Pow(inicial,2); cuadrado[i - 1] = inicial;
double equilibrado = (inicial.ToString().Count()) - digitos; //asi sabremos si no faltan 0 double eliminarlugares; if (equilibrado % 2 == 0) { numero = inicial.ToString(); eliminarlugares = equilibrado / 2; completo[i - 1] = numero;
} numcentro=numcentro.Replase("X",""); //aqui cambiamos las X por lugares vacios central[i - 1] = numcentro; numeros[i] = double.Parse(numcentro);//aqui se van guardando los numeros aleatorios inicial = double.Parse(numcentro); } }