Autor
|
Tema: Como puedo saber los números que faltan dentro del rango ? (Leído 14,501 veces)
|
luis456
Desconectado
Mensajes: 551
|
Como puedo saber los números que faltan dentro del rango ? tengo esta función que recibe los resultados de tres array donde hago unas sumas: y me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas. es posible ? Rango 00 al 99 ReadOnly MAX As Integer = 99 Dim Rand As New Random ' Concateno, y... ' Elimino duplicados, y... ' Selecciono los números inferiores a MAX, y... ' Convierto los números mayores a MAX a números aleatorios entre 0 y MAX. Dim Result1 As IEnumerable(Of Integer) = (Result1.Concat(Result3).Concat(Result3). Distinct. Select(Function(Value As Integer) Return If(Value < MAX, Value, Rand.Next(0, MAX)) End Function)) ' Result = 1, RANDOM, 2, 3, 4, 5, RANDOM, 6, 7, 8, 9, 10, 99 ListBox11.Items.AddRange(Result1.Cast(Of Object).ToArray)
Luis Edito= no se porque no me sale bien el poner el codigo entre el insert codigo ?
|
|
« Última modificación: 18 Enero 2014, 15:05 pm por Eleкtro »
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
luis456
Desconectado
Mensajes: 551
|
?????? ni mi amigo Elektro jejjeje
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Yo no entiendo muy bien la pregunta "saber los números que faltan dentro del rango".
saludos
|
|
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Yo no entiendo muy bien la pregunta "saber los números que faltan dentro del rango".
saludos
Se referirá a los numeros que no esten entre 0 y 99 !!!CREO!!!ReadOnly MAX As Integer = 99 Select(Function(Value As Integer) Return If(Value < MAX, Value, Rand.Next(0, MAX)) End Function))
Hombre pues asi a bote pronto o hace un if con Value > MAX o en el if añades un else para que cualquier otro resultado que no sea Value < MAX. Iba a dejar code pero de los retos se aprende Saludos.
|
|
« Última modificación: 19 Enero 2014, 03:00 am por .:Weeds:. »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Se referirá a los numeros que no esten entre 0 y 99 !!!CREO!!! Aquí no es necesario el sarcasmo, primero habla del rango, pero luego según dice: ' me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas', como ves no dice: ' los números que NO están dentro del rango'. Si tu comprendes lo que significa " un número que no está dentro de una suma", me parece bien, aunque digo yo que si sumas 1+1 todo el resto de números existentes estarán fuera de la suma, así que a dudas poco detalladas prefiero preguntar para estar seguro de lo que quiere. Saludos
|
|
« Última modificación: 19 Enero 2014, 04:20 am por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Aquí no es necesario el sarcasmo, primero habla del rango, pero luego según dice: 'me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas', como ves no dice: 'los números que NO están dentro del rango'.
Si tu comprendes lo que significa "un número que no está dentro de una suma", me parece bien, aunque digo yo que si sumas 1+1 todo el resto de números existentes estarán fuera de la suma, así que a dudas poco detalladas prefiero preguntar para estar seguro de lo que quiere.
Saludos
Hola No vi anoche el tema jej Si Elektro si la función ( pondré corto los números) me da" 2, 4 ,6,8, 9 " y el rango es de 0 al 10 entonces me faltaría el " 1,3, 5, 7 " ademas de mostrar " 2, 4 ,6,8, 9 " también quiero mostrar " 1,3, 5, 7 " pero en otro listbox Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
engel lex
|
mi solución seria organizar el array y recorrerlo buscando donde se salta
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
Si Elektro si la función ( pondré corto los números) me da" 2, 4 ,6,8, 9 " y el rango es de 0 al 10 entonces me faltaría el " 1,3, 5, 7 " ademas de mostrar " 2, 4 ,6,8, 9 " también quiero mostrar " 1,3, 5, 7 " pero en otro listbox Eso es algo facil de hacer ya sea usando un FOR o usando LINQ, pero como no encontré nada en Google para mostrarte diréctamente un ejemplo parecido al problema que describiste, yo mismo hice una función de uso genérico, aquí la tienes: ' Get Numbers Not In Range. ' ( By Elektro ) ' ' Usage Examples: ' ' MsgBox(String.Join(", ", GetNumbersNotInRange({1, 3, 5, 7, 9}, 0, 10).ToArray)) ' Result: 0, 2, 4, 6, 8, 10 ' ''' <summary> ''' Given a numeric collection, gets all the numbers which are not in a specified range. ''' </summary> ''' <param name="NumbersInRange">Indicates the numbers collection which are in range.</param> ''' <param name="MinRange">Indicates the minimum range.</param> ''' <param name="MaxRange">Indicates the maximum range.</param> ''' <returns>System.Collections.Generic.IEnumerable(Of System.Int32).</returns> Private Function GetNumbersNotInRange(ByVal NumbersInRange As IEnumerable(Of Integer), ByVal MinRange As Integer, ByVal MaxRange As Integer) As IEnumerable(Of Integer) Return From Number As Integer In Enumerable.Range(MinRange, MaxRange + 1) Where Not NumbersInRange.Contains(Number) End Function
Ejemplo de uso: Private Sub Test(sender As Object, e As EventArgs) Handles MyBase.Shown Dim NumbersInRange As Integer() = {2, 4, 6, 8, 9} Dim NumbersNotInRange As Integer() = GetNumbersNotInRange(NumbersInRange, 0, 10).ToArray MsgBox(String.Join(", ", NumbersNotInRange)) ' Result: 0, 1, 3, 5, 7, 10 End Sub
Saludos
|
|
« Última modificación: 19 Enero 2014, 17:12 pm por Eleкtro »
|
En línea
|
|
|
|
.:Weeds:.
Desconectado
Mensajes: 122
|
Aquí no es necesario el sarcasmo, primero habla del rango, pero luego según dice: 'me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas', como ves no dice: 'los números que NO están dentro del rango'.
Si tu comprendes lo que significa "un número que no está dentro de una suma", me parece bien, aunque digo yo que si sumas 1+1 todo el resto de números existentes estarán fuera de la suma, así que a dudas poco detalladas prefiero preguntar para estar seguro de lo que quiere.
Saludos
No era sarcasmo, puse creo (Lo añadi editando el mensaje) por que no estaba seguro despues de leer el mensaje 3 o 4 veces mas. Saludos.
|
|
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 551
|
Nada dos dias y nada no logro hacerlo funcionar Public Class Form1 Dim XMax As Short = 99 Dim Xmin As Short = 0 Dim x As Integer = 0 Dim Número As Double Private TextBoxes As TextBox() = {Nothing} Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32() Private _textBox As Object Private _getNumbersNotInRange As Object Private Property ListBox1Count As Integer ReadOnly MAX As Integer = 99 Private Property Calcular As Object Private Property TextBox(ByVal TextBoxCount As Short) As Object Get Return _textBox End Get Set(ByVal value As Object) _textBox = value End Set End Property ReadOnly Property Num1 As Int32 Get Return CInt(TextBox1.Text) End Get End Property ReadOnly Property Num2 As Int32 Get Return CInt(TextBox2.Text) End Get End Property ReadOnly Property Num3 As Int32 Get Return CInt(TextBox3.Text) End Get End Property Private Property GetNumbersNotInRange(ByVal Result11 As IEnumerable(Of Integer), ByVal Xmin As Integer, ByVal XMax As Integer) As Object Get Return _getNumbersNotInRange End Get Set(ByVal value As Object) _getNumbersNotInRange = value End Set End Property Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click Result1 = {Num1 + 10, Num1 + 20, Num1 + 30} _ .Distinct().ToArray ' Elimino duplicados Result2 = {Num2 + 10, Num2 + 20, Num2 + 30} _ .Distinct().ToArray ' Elimino duplicados Result3 = {Num3 + 10, Num3 + 20, Num3 + 30} _ .Distinct().ToArray ' Elimino duplicados ' primero concatenas y eliminas duplicados en el primer array: Dim Result11 As IEnumerable(Of Integer) = (Result1.Concat(Result3).Concat(Result3). Distinct).ToArray ' luego instancias un segundo array que obtiene los números que no están dentro del rango 'Xmin'-'Xmax' del primer array: Dim NumbersNotInRange As Integer() = GetNumbersNotInRange(Result11, Xmin, XMax).ToArray ' Y por último reemplazas los números que no están en el rango, en el primer array: Result11 =Result11.Select(Function(Value As Integer) ReadOnly If(Value < MAX, Value, Rand.Next(0, MAX)) End Function)) ' y los añades a los listbox: ListBox1.Items.AddRange(Result11.Cast(Of Object).ToArray) ListBox2.Items.AddRange(NumbersNotInRange.Cast(Of Object).ToArray) End Sub End Class
Luis
|
|
« Última modificación: 21 Enero 2014, 22:28 pm por Eleкtro »
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como hacer un programa que imprima los numeros que no estan dentro de una rango
Programación C/C++
|
pefo
|
6
|
5,842
|
21 Noviembre 2012, 20:49 pm
por rir3760
|
|
|
Como limitar rango de numeros en un texbox
« 1 2 »
Programación Visual Basic
|
luis456
|
14
|
7,251
|
23 Septiembre 2013, 16:01 pm
por luis456
|
|
|
¿Cómo puedo saber si alguién me espían dentro de mi red wifi?
Seguridad
|
zythun
|
1
|
6,333
|
1 Junio 2016, 04:41 am
por engel lex
|
|
|
[PYTHON]¿Cómo guardar datos de un rango de números que genero con un While?
Scripting
|
4T1L4
|
2
|
3,484
|
24 Octubre 2016, 15:23 pm
por 4T1L4
|
|
|
[BATCH][Aporte] Range.bat (generador de numeros aleatorio dentro de un rango)
Scripting
|
CodeRed
|
1
|
4,073
|
23 Mayo 2020, 20:44 pm
por .:Xx4NG3LxX:.
|
|