elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  rellenar con rand variable ya cargada de datos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: rellenar con rand variable ya cargada de datos  (Leído 3,453 veces)
luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
rellenar con rand variable ya cargada de datos
« en: 9 Abril 2015, 14:35 pm »

 Otro de mis inventos :)

quiero rellenar con numeros aleatorios cuando la cuenta de la variable este por debajo de 30, el rango de estos numeros es 00 al 99, pero no deberian de repetir en la variable.

tengo esto que rellena pero con ceros

Código
  1. If Resultados.Count < 30 Then
  2.  
  3.           Resultados = Resultados.Concat(Enumerable.Repeat(Of Integer)(0, (30 - Resultados.Count)))
  4.  
  5.          End If

entonces se me ocurrio esto pero nunca me da la seguridad de tener como minimo 30 datos en la variable :( a veces el programa entero no llega a esa cantidad y FALLO

Código
  1. If Resultados.Count < 30 Then
  2.  
  3.           Resultados = numerosFaltantesdelRango
  4.  
  5.        End If




Luis


« Última modificación: 10 Abril 2015, 10:55 am por luis456 » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: rellenar con rand variable ya cargada de datos
« Respuesta #1 en: 9 Abril 2015, 14:49 pm »

Si quieres insertar sin repetición 30 números del 0 al 99, puedes cargar un vector con las 100 posibilidades, y luego ir eligiendo al azar, e insertando. Al insertar, lo borras del vector para evitar duplicados.


En línea

luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: rellenar con rand variable ya cargada de datos
« Respuesta #2 en: 9 Abril 2015, 15:06 pm »

Si quieres insertar sin repetición 30 números del 0 al 99, puedes cargar un vector con las 100 posibilidades, y luego ir eligiendo al azar, e insertando. Al insertar, lo borras del vector para evitar duplicados.

No es meter o insertar 30 numeros es completar explico, si hay 25 numeros la funcion rand debera de llegar a completar la diferencia sin repetir los numeros :)  porque si no lo que podria hacer es sumar otra variable cargada fija a la otra y utlizar " distint" para eliminar repetidos :)

Gracias por responder

Luis
En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: rellenar con rand variable ya cargada de datos
« Respuesta #3 en: 9 Abril 2015, 15:13 pm »

Para el ejemplo que di antes, si ya hay valores, basta retirar inicialmente los valores que ya hay del vector.
En línea

DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: rellenar con rand variable ya cargada de datos
« Respuesta #4 en: 9 Abril 2015, 15:25 pm »

Si entendí bien, digamos que en resultado tienes una serie de números como "resultado" de algo, y quieres con la función rand, llegar a 30 números sin que se repita ninguno de los anteriores!

¿Que cosa es la variable resultado?
En línea

luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: rellenar con rand variable ya cargada de datos
« Respuesta #5 en: 9 Abril 2015, 16:03 pm »

Si entendí bien, digamos que en resultado tienes una serie de números como "resultado" de algo, y quieres con la función rand, llegar a 30 números sin que se repita ninguno de los anteriores!

¿Que cosa es la variable resultado?

Hola
si la variable se llena con una funcion que tengo, esta funcion genera numeros que van desde 00 al 99 pero a veces esta funcion genera menos de 30 numeros y como utilizo otras particiones para formar claves numericas si no llega a este minimo el programa me da error

Y me imagino que preguntas por esto de la variable y es la debe de tener mas de 30 registros

Código
  1. Dim Resultados As IEnumerable(Of Integer)  

Luis


En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
DarK_FirefoX


Desconectado Desconectado

Mensajes: 1.263


Be the change you wanna see in te world


Ver Perfil
Re: rellenar con rand variable ya cargada de datos
« Respuesta #6 en: 9 Abril 2015, 16:10 pm »

A ver, yo me pierdo un poco con la sintaxis de VB.NET, entonces, te voy a tratar de explicar lo que yo haría:

Tuviera un array de bool con un tamaño de 100 (00 a 99), entonces cada vez que tu función genere un número lo guardas normal, pero en este array de bool indexas en ese número y lo pones en true, y así sucesivamente, luego, cuando vayas a generar tus números con rand (en caso de que lo necesites, si el count<30), lo capturas antes de agregarlo a resultado e indexas y chequeas en ese array de bool a ver si está en true, si esta en true, calculas otro aleatorio, sino, lo insertas y lo pones en true. De esta manera evitaras tener valores repetidos

Me explico?
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: rellenar con rand variable ya cargada de datos
« Respuesta #7 en: 9 Abril 2015, 18:07 pm »

No hay manera, he, luis?.

En el siguiente ejemplo, tengo una colección del 1 al 5, y relleno la colección con números aleatorios del 1 al 10 sin que estos se repitan entre ellos ni entre los números que ya hay en la colección, hasta incrementar la cantidad de elementos de la colección a 10.

Dicho de otra forma, tengo una lista del 1 al 5, genero una secuencia aleatoria del 1 al 10 y relleno la lista del 1 al 5 con los 5 números restantes del 5 al 10.

Puedes modificar los valores para tus necesidades...

Código
  1. Dim col As IEnumerable(Of Integer) = {1, 2, 3, 4, 5}
  2. Dim minColCount As Integer = 10
  3. Dim minRandValue As Integer = 1
  4. Dim maxRandValue As Integer = 10
  5. Dim rand As Random = New Random
  6.  
  7. If col.Count < minColCount Then
  8.  
  9.    Dim randCol As IEnumerable(Of Integer) =
  10.        From value As Integer In Enumerable.Range(minRandValue, maxRandValue)
  11.        Order By rand.Next
  12.        Where Not col.Contains(value)
  13.        Take (minColCount - col.Count)
  14.  
  15.    col = Enumerable.Concat(col, randCol.ToArray)
  16.  
  17. End If
  18.  
  19. Debug.WriteLine(String.Join("; ", col))

Saludos
« Última modificación: 9 Abril 2015, 18:23 pm por Eleкtro » En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: rellenar con rand variable ya cargada de datos
« Respuesta #8 en: 10 Abril 2015, 10:56 am »

No hay manera, he, luis?.

En el siguiente ejemplo, tengo una colección del 1 al 5, y relleno la colección con números aleatorios del 1 al 10 sin que estos se repitan entre ellos ni entre los números que ya hay en la colección, hasta incrementar la cantidad de elementos de la colección a 10.

Dicho de otra forma, tengo una lista del 1 al 5, genero una secuencia aleatoria del 1 al 10 y relleno la lista del 1 al 5 con los 5 números restantes del 5 al 10.

Puedes modificar los valores para tus necesidades...

Código
  1. Dim col As IEnumerable(Of Integer) = {1, 2, 3, 4, 5}
  2. Dim minColCount As Integer = 10
  3. Dim minRandValue As Integer = 1
  4. Dim maxRandValue As Integer = 10
  5. Dim rand As Random = New Random
  6.  
  7. If col.Count < minColCount Then
  8.  
  9.    Dim randCol As IEnumerable(Of Integer) =
  10.        From value As Integer In Enumerable.Range(minRandValue, maxRandValue)
  11.        Order By rand.Next
  12.        Where Not col.Contains(value)
  13.        Take (minColCount - col.Count)
  14.  
  15.    col = Enumerable.Concat(col, randCol.ToArray)
  16.  
  17. End If
  18.  
  19. Debug.WriteLine(String.Join("; ", col))

Saludos


 Perfecto :) me lees la mente jejejje

Gracias otrar ves mas

Luis


                       


En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Verificar si una dll está cargada en un ejectuable? « 1 2 »
Ingeniería Inversa
.:UND3R:. 18 12,492 Último mensaje 24 Febrero 2012, 21:09 pm
por Иōҳ
ASP; Cómo uso datos de un XML para rellenar un gráfico con Chart
.NET (C#, VB.NET, ASP)
|Miguel| 1 2,868 Último mensaje 9 Mayo 2012, 10:31 am
por |Miguel|
Depurar DLL cargada dinámicamente
Programación C/C++
javiherro 7 3,216 Último mensaje 11 Diciembre 2013, 11:14 am
por javiherro
Rellenar con rand no me funciona
.NET (C#, VB.NET, ASP)
luis456 7 4,320 Último mensaje 2 Abril 2015, 05:33 am
por luis456
Ayuda con rellenar una matriz con rand()
Programación C/C++
serg2404 7 3,231 Último mensaje 2 Julio 2016, 04:53 am
por serg2404
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines