FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Diferencia entre random y randomize
Holas,
Segun el HELP de borland: Cita:
Pero y cuando uso el random sin el randomize, igual me genera numero aleatorios cual es la diferencia. Realice un ejemplo para ver el funcionamiento de esto y obtuve cosas diferentes que desearia entender Código:
void SeteaVector(int vec1[]) { randomize(); int i; for (i=0;i<10;i++) { int n=random(105); vec1[i]=n; } } void main() { int vec1[10],i; SeteaVector(vec1); SeteaVector(vec2); for (i=0;i<10;i++) printf("%d ",vec1[i] ); printf("\n" ); for (i=0;i<10;i++) { printf("%d ",vec2[i] ); } getch(); } Porque? Como funciona realmente? Me explican? :P Grax |
#2
|
|||
|
|||
random
hay q hacer el random en el principal ya que q te inicializa los valores al principio y una sóla vez.
Si lo haces en la función te iniciará los valores cada vez q entres en la función. |
#3
|
||||
|
||||
Para entender mejor como funciona el Randomize, hay que entender como se generan los numeros aleatorios.
La funcion Random es una función que genera numeros de apariencia aleatoria, pero en realidad es una secuencia de numeros predeterminados. Esta secuencia es lo suficientemente larga para que si generas una cantidad grande de numeros no se repita la misma secuencia. Ahora bien, como dijimos, es una secuencia predeterminada, por lo que simpre comienza igual. Ej: 5-9-1-3-7-4-8-3-7-2-4-8-1-9-5-3-7-8-2 Aunque esta secuencia pareciera aleantoria, si siempre empizo desde el primer numero 5, sabria que numeros le siguen. Randomize justamente lo que hace es inicializar el generador en un valor diferente cada vez que es llamado, por lo que es suficiente que sea llamado una sola vez en tu programa.
__________________
[Crandel] |
#4
|
||||
|
||||
Una pregunta: ¿cómo se hace esta inicialización? Porque la respuesta inmediata sería: aleatoriamente, pero supongo que si así fuera entonces también podrían generarse verdaderos números aleatorios sin necesidad de randomize.
// Saludos |
#5
|
||||
|
||||
Cita:
|
#6
|
||||
|
||||
Volviendo al problema de generar "verdaderos" números aleatorios, no hay forma de generarlos por software. Existen aparatos electrónicos que aprovechando distintas características físicas de los materiales intentan generar números aleatorios, otros usan sistemas tan ingeniosos como usar una consulta a google para generar los números, la entrada de audio de la tarjeta de sonido, o servidores que generan números aleatorios a partir de las peticiones que se le hacen a través de la red, etc ...
|
#7
|
||||
|
||||
Como ya viste en la respuesta de seoane, esta relacionado con el tiempo de encendido de la maquina.
Pero porque no es valida como generador de numeros aleatorios? xq imaginate el caso extremo de llamarla sucesivamente a la misma funcion en intervalos de tiempo muy pequeños, estariamos obteniendo numeros sucesivos. La generación de numeros aleatorios es todo una ciencia, pero para mundanos como nosotros la función Random es perfecto para lo que necesitamos Con exepción de nuestro amigo Fede
__________________
[Crandel] |
#8
|
||||
|
||||
Alguna vez leí de un método que tenía que ver con los movimientos del ratón que hiciera el usuario. Creo que era para generar un número de serie.
Cita:
La secuencia que usa el Random, ¿de dónde la saca? ¿Qué pasa con Federico? ¿A él no le es suficiente? // Saludos |
#9
|
||||
|
||||
Cita:
Cita:
|
#10
|
||||
|
||||
Cita:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Diferencia entre Consultas | santi33a | MS SQL Server | 1 | 08-11-2005 09:19:22 |
Diferencia entre .GDB y .FDB | CarlosHernandez | Firebird e Interbase | 3 | 14-09-2005 05:08:49 |
Diferencia entre versiones. | Markos1970 | Debates | 6 | 14-07-2005 22:56:17 |
Diferencia entre fechas.... | seb@ | OOP | 1 | 21-08-2003 16:57:22 |
|