hola amigos, miren necesito un programita que genere numeros aleatorios, algo sencillo para saber como hacerlo, el codigo fuente de preferencia en pascal,v.c, visual fox
hola amigos, miren necesito un programita que genere numeros aleatorios, algo sencillo para saber como hacerlo, el codigo fuente de preferencia en pascal,v.c, visual fox
en pascal tenes random.. aqui un ejemplo
busca
y aqui un juego: http://moratiel.com/pascal/random.zipCódigo:program alter; var i,alteratorio,elige:integer; begin read(elige); randomize; (* semilla *) for i:=1 to 10 do begin alteratorio:=random(elige); write (alteratorio); (* esto te va a mostrar en pantalla una cadena de números ej: 5842634871 *) end; end.
Última edición por Cypress; 19-02-2007 a las 17:24 Razón: Me olvide decir lo que hacia :P
gracias por la ayuda, pero necesito que los numeros los genere por una formula y no por la funcion random, si tienes algo de eso porfavor pasamelo
Por que formula? Si no te explicas mejor poco se te podrá ayudar.
hola killer te sirve esto :
Saludos.-Iniciado por http://www.gamarod.com.ar/trucos/generacion_sencilla_de_numeros_aleatorios.asp
Hola, buenas! Podemos generar números pseudoaleatorios mediante la siguiente fórmula recursiva:
Xn+1 = (A*Xn + C) mod M;
En donde el término siguiente (Xn+1) depende del anterior (Xn), y para el primer caso, tomaremos una semilla inicial, que establecemos manualmente.
El éxito de esta fórmula depende de los parámetro A, C, M y de la semilla (X0).
Se debe cumplir que la semilla, A y C sean menores que M.
Es evidente que los valores generados se encuentran entre 0 y M-1, y que el numero maximo de cifras distintas que se pueden obtener es M, es decir llegará un momento en que el primer numero generado se repetirá y a partir de el todos los restantes.
Podemos obtener ciclos de longitud máxima atendiendo a los siguientes casos:
Si c distinto de 0, se debe cumplir que:
a) m.c.d (c, m)=1; maximo comun divisor de c y m = 1.
b) A sea congruente con 1 mod p, para cada factor primo "p" de M.
Es decir, si descomponemos M en producto de factores primos (M=p1*p2*...*pk), entonces la división entera entre la constante A y cada uno de estos factores debe dar como resto 1.
Si c=0 entonces se debe cumplir que:
a) M sea primo
b) A^((M-1)/p) sea congruente con 1 mod M, siendo "p" cada uno de los factores primos al descomponer M-1 en producto de estos.
Por ejemplo, vamos a generar aleatorios entre 0 y 31 y vamos a optimizarlo para que los ciclos sean de longitud máxima:
Xn+1 = (5*Xn + 3) mod 32; y tomaremos como semilla X0 = 1
Hemos tomado A=5, C=3 razonadamente para obtener el ciclo maximo:
m.c.d(3, 32) = 1; y ademas, 32=2*2*2*2*2, por lo que 5 mod 2 = 1
Así la secuencia obtenida sería: 1, 8, 11, 26, 5, 28, 15, 14, 9, 16, 19, 2, 13, 4, 23, 22, 17, 24, 27, 10, 21, 12, 31, 30, 25, 0, 3, 18, 29, 20, 7, 6, 1...(aquí se volvería a repetir el ciclo)
Espero que sirva de algo, un saludo a tod@s.
Buen aporte,hystd ya hacia días que no sabíamos de ti, nos alegramos de tu vuelta
mmm un programa que genere numeros aleatorios, toma el # de ciclos de reloj de tu cpu por minuto y dividelo entre el numero de ciclos de reloj que tardo en ejecutarse tu programa, si el numero excede los 4 digitos sumas los valores de cada uno y lo reduces a 2 o uno o 3 segun sea tu conveniencia porque si queres un numero aleatorio de un numero infiito de numeros obvio sea muy dificil, asì lo hice alguna vez y resulto de poca.
gracias esto era lo que buscaba
Marcadores