Autor
|
Tema: rellenar con rand variable ya cargada de datos (Leído 3,453 veces)
|
luis456
Desconectado
Mensajes: 551
|
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 If Resultados.Count < 30 Then Resultados = Resultados.Concat(Enumerable.Repeat(Of Integer)(0, (30 - Resultados.Count))) 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 If Resultados.Count < 30 Then Resultados = numerosFaltantesdelRango 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
Mensajes: 3.412
ASMático
|
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
Mensajes: 551
|
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
Mensajes: 3.412
ASMático
|
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
Mensajes: 1.263
Be the change you wanna see in te world
|
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
Mensajes: 551
|
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 Dim Resultados As IEnumerable(Of Integer)
Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
DarK_FirefoX
Desconectado
Mensajes: 1.263
Be the change you wanna see in te world
|
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
Mensajes: 9.885
|
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... Dim col As IEnumerable(Of Integer) = {1, 2, 3, 4, 5} Dim minColCount As Integer = 10 Dim minRandValue As Integer = 1 Dim maxRandValue As Integer = 10 Dim rand As Random = New Random If col.Count < minColCount Then Dim randCol As IEnumerable(Of Integer) = From value As Integer In Enumerable.Range(minRandValue, maxRandValue) Order By rand.Next Where Not col.Contains(value) Take (minColCount - col.Count) col = Enumerable.Concat(col, randCol.ToArray) End If Debug. WriteLine(String. Join("; ", col ))
Saludos
|
|
« Última modificación: 9 Abril 2015, 18:23 pm por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
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... Dim col As IEnumerable(Of Integer) = {1, 2, 3, 4, 5} Dim minColCount As Integer = 10 Dim minRandValue As Integer = 1 Dim maxRandValue As Integer = 10 Dim rand As Random = New Random If col.Count < minColCount Then Dim randCol As IEnumerable(Of Integer) = From value As Integer In Enumerable.Range(minRandValue, maxRandValue) Order By rand.Next Where Not col.Contains(value) Take (minColCount - col.Count) col = Enumerable.Concat(col, randCol.ToArray) End If 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
|
|
|
|
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
|
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
|
9 Mayo 2012, 10:31 am
por |Miguel|
|
|
|
Depurar DLL cargada dinámicamente
Programación C/C++
|
javiherro
|
7
|
3,216
|
11 Diciembre 2013, 11:14 am
por javiherro
|
|
|
Rellenar con rand no me funciona
.NET (C#, VB.NET, ASP)
|
luis456
|
7
|
4,320
|
2 Abril 2015, 05:33 am
por luis456
|
|
|
Ayuda con rellenar una matriz con rand()
Programación C/C++
|
serg2404
|
7
|
3,231
|
2 Julio 2016, 04:53 am
por serg2404
|
|