Título: Random VB.NET Publicado por: Jeezy en 5 Agosto 2018, 05:16 am Hola quiero hacer lo siguiente:
Quiero hacer que en un textbox se pongan numeros random pero no los que quiera sino una secuencia que yo ponga ejemplo : que se ponga el 1 luego el 20 luego en 50... y que no se ponga cualquier otro numero solo los que yo diga Tengo una forma que es usando varios timers, pero quisiera saber si hay otra forma mas optimizada Título: Re: Random VB.MET Publicado por: Serapis en 5 Agosto 2018, 17:02 pm Creas un array, metes ahí todos los números personalizados que quieras...
Luego se trata de eleigr al azar un índice entre 0 y el último índice del array. Si tienes 25 números en el array, entonces los índices van del 0 al 24. Y Random debe elegir un valor entre 0 y 24... Finalmente en tu textbox pones el valor que consta en el array en la posición obtenida al azar... Para forzar una mayor entropía, con cada número obtenido intercambia el par de valores según indiceprevio e índiceactual. Y si... si quieres que el número cambie por sí solo, usar un timer está bien, pero recuerda que habrá algún momento en que deba estar activo y alguno en que deba ser desactivado (salvo que solo tenga un propósito decorativo), y recuerda que el lapso de tiempo debe ser algo que mantenga el valor el tiempo suficiente para ser visualizado, o si se trata de simular un 'barajado' puede ser algo más rápido, pero que todavía dé tiempo a poder leer valores... Código
Título: Re: Random VB.MET Publicado por: Eleкtro en 5 Agosto 2018, 19:16 pm Aquí tienes otra forma de hacerlo...
Básicamente declaro un Array con los valores (la ordenación de los valores no importa) y se añaden desordenados a una pila. En cada tic del temporizador se comprueba si la pila está vacía, y si lo está entonces se vuelve a llenar con un una nueva desordenación de los valores. Dicho de otra forma, la secuencia se desordena una vez, se añaden los valores desordenados a una pila, y cuando la pila está vacía la secuencia se vuelve desordenar y se vuelve a llenar la pila con la nueva desordenación. No sé si esto es exactamente lo que quieres hacer, tampoco has dado suficientes detalles... Código
La clase Random se basa en un algoritmo de pseudo-aleatoriedad, es más que suficiente para la gran mayoría de escenarios/aplicaciones no-científicas, pero si por lo que sea necesitas un algoritmo de aleatoriedad más sofisticado con mayor entropía, con una distribución de mayor singularidad sobre todos los posibles resultados, entonces usa la clase RNGCryptoServiceProvider. Saludos. |