Programación General > ASM (Ensamblador)

 Necesito El Codigo De Un Generador De Nºs De 0 A N

(1/1)

PeterM:
Hola. Necesito hacer un trabajo sobre un generador de números desde 0 a N (N se lo doy yo) y por más que busco en la red no encuentro ni un solo código. Un ejemplo es el algoritmo de Tausworthe, pero este lo ha dao el profesor y va a ser q no vale. Me hariais un gran favor facilitandome uno. Thank you very much.  :comp:

Super_G:
¿es un contador?

PeterM:
No es un contador. He estado mirando los otros ejemplos que hay en el foro: de sumar uno hasta pulsar una tecla xo eso no creo q m valga. Lo q yo pido,creo, es un algoritmo generador ya hexo ya que el q se me ha facilitado a mi tiene autor conocido.

Algoritmo de Tausworthe.
Pasos:

1. Se toma una semilla inicial, que llamaremos seed, con una longitud de 8 bits. Por ejemplo: seed = 10111001

2. Se desplaza seed tres bits a la derecha. El resultado lo guardamos en
seed_desplazamiento1, con lo cual tenemos que: seed_desplazamiento1 = 00010111

3. Se hace la operación: seed2 = seed_desplazamiento1 XOR seed = 10101110

4. Se desplaza seed2 cinco bits a la izquierda. El resultado lo guardamos en
seed_desplazamiento2, con lo cual tenemos que: seed_desplazamiento2 = 11000000

5. Se hace la operación: seed_final = seed_desplazamiento2 XOR seed2 = 01101110

6. Se repite la secuencia de pasos 1-5 cien veces mediante un bucle, tomando como semilla inicial (seed) en cada iteración el valor de seed_final en la iteración anterior. El último valor que se obtenga para seed_final es nuestro primer número aleatorio.

7. Cuando se vaya a calcular el siguiente número aleatorio hay que actualizar la semilla.Para ello habrá que hacer: seed = seed_final

Esta forma de proceder genera números aleatorios entre 0 y 255 (8 bits)

Alpha_:
Hmmm bueno, si lo que necesitás es un generador de números pseudo-aleatorios, te presto un algoritmo fácil que suelo usar:

-El usuario introduce N. Mientras lo introduce, nosotros contamos el tiempo que tarda en hacerlo (por ejemplo, +1 en la iteración mientras está presionada la tecla).

-Luego, obtengo los milisegundos de la hora actual.

-Efectúo un XOR de ambos valores.

-Y a ese número, le aplico MOD N para obtener el deseado.

No lo he probado mucho, pero suele ser bastante aleatorio.

PeterM:
Muxas gracias, lo probaré. De todos modos si alguien sabe de alguno otro pseudo-algoritmo se siguen aceptando propuestas.  :kicking:

Navegación

[0] Índice de Mensajes

Ir a la versión completa