Autor
|
Tema: formar combinaciones de 7 y 8 numeros con 25 numeros (Leído 28,788 veces)
|
luis456
Desconectado
Mensajes: 548
|
Bien es el mismo error que puse antes Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
El desplazamiento y la longitud están fuera de los límites para esta matriz o el recuento es superior al número de elementos desde el índice al final de la colección de origen. Excepción del tipo 'System.ArgumentException' en mscorlib.dll
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.697
|
En serio, Luis... ... Piensa un poco en lo que estás haciendo, si quieres te lo digo yo... pero es que a estas alturas... como mínimo deberías poder darte cuenta tú de este fallo tan obvio y básico. Te muestro la parte del código en conflicto: Dim constantValues As IEnumerable(Of Integer) = ( From Value As Integer In (Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6)).Distinct Where Value <= MAX ) Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim constantValues As New List(Of Integer) Do Until ... Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length) Do Until ... Loop Loop End Sub
¿ Lo entiendes ? Aparte del sin sentido que estás intentando hacer, luego está esto otro, lo cual en conjunto con el otro fallo me ha tocado un poco las narices ver esto... para ser sinceros, no me explico esta contradicción que añadiste (¿sumas el valor, y seguídamente le reasignas un cero?, ¿entonces para que sumas, si siempre será cero?): Do Until ... Do Until ... Loop skipStart += 1 skipStart = 0 Loop
La instrucción ' Skipstart = 0' debe ir fuera del búcle como comenté, esto significa fuera de la anidación (fuera del bloque de los 2 búcles, debajo del todo), no fuera del primer búcle. De todas formas directamente elimina esa modificación del 0, ya que no estás rehutilizando la variable fuera del búcle así que no tienes porque reasignarle el valor 0. Saludos
|
|
« Última modificación: 15 Octubre 2014, 22:10 pm por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 548
|
En serio, Luis... ... Piensa un poco en lo que estás haciendo, si quieres te lo digo yo... pero es que a estas alturas... como mínimo deberías poder darte cuenta tú de este fallo tan obvio y básico. Te muestro la parte del código en conflicto: Dim constantValues As IEnumerable(Of Integer) = ( From Value As Integer In (Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6)).Distinct Where Value <= MAX ) Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim constantValues As New List(Of Integer) Do Until ... Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length) Do Until ... Loop Loop End Sub
¿ Lo entiendes ? Aparte del sin sentido que estás intentando hacer, luego está esto otro, lo cual en conjunto con el otro fallo me ha tocado un poco las narices ver esto... para ser sinceros, no me explico esta contradicción que añadiste (¿sumas el valor, y seguídamente le reasignas un cero?, ¿entonces para que sumas, si siempre será cero?): La instrucción ' Skipstart = 0' debe ir fuera del búcle como comenté, esto significa fuera de la anidación (fuera del bloque de los 2 búcles, debajo del todo), no fuera del primer búcle. De todas formas directamente elimina esa modificación del 0, ya que no estás rehutilizando la variable fuera del búcle así que no tienes porque reasignarle el valor 0. Saludos Sábado a programar ( bueno creo yo jejej) si elektro fallos muy tontos pero que para mi son insondables porque antes de poner el código probé cambiando a integer y casi me explota el PC jejeje por eso lo deje como en principio lo puse,ya que al poner integer la variable me pone que 'Count' no es un miembro de 'Integer'. 'GetRange' no es un miembro de 'Integer' Lo que trato es de usar los mismos datos que estan en : Dim Resultss As IEnumerable(Of Integer) = ( From Value As Integer In (Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6)).Distinct Where Value <= MAX ) ListBox1.Items.AddRange(Resultss.Cast(Of Object).ToArray) ListBox1.Sorted = True
en : constantValues luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.697
|
'Count' no es un miembro de 'Integer'. 'GetRange' no es un miembro de 'Integer' Será porque Integer es un DataType, no una Lista / Colección Genérica, por lo tanto no contiene esas extensiones de método... Sin ánimo de ofender, pero ya es hora de aprender lo básico por tu cuenta para no tener que pedirlo todo hecho siempre, ¿no crees?. Saludos
|
|
« Última modificación: 18 Octubre 2014, 20:49 pm por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 548
|
BUAAAA No me pegues que no es mi culpa por ser tan bruto  estoy en ello luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
luis456
Desconectado
Mensajes: 548
|
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
luis456
Desconectado
Mensajes: 548
|
Formar combinaciones por Subrangos Bueno ya resuelto un problema  ahora se me ocurre formar estas combiaciones dentro de subrangos ya tenemos la variable " constantValues" con x numeros como siempre ocurre con mis ideas locas  siempre trabajo con el rango de 00 al 99 estas se subdividirian en : subrangos 00 al 09 10 al 19 20 al 29 30 al 39 40 al 49 50 al 59 60 al 69 70 al 79 80 al 89 90 al 99 La pregunta como haria que las combinaciones no tomen mas de dos numeros de un mismo subrango ? ejemplo 02 08 10 15 21 28 50 58... ETC Codigo funcionando constantValues.AddRange(Resultss.ToArray()) <-----variable con numeros con los que formamos las combinaciones Dim combinations As New List(Of List(Of Integer)) Dim length As Integer = 7 Dim skipStart As Integer = 0 Do Until skipStart = (constantValues.Count - length) Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length) Dim count As Integer = 0 Do Until count = (constantValues.Count - length - skipStart) combinations.Add(values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToList) Debug. WriteLine(String. Join(", ", values. Concat(constantValues. Skip(skipStart + length + count ). Take(1)). ToArray)) count += 1 Loop ' count = (constantValues.Count - length) skipStart += 1 Loop ' skipStart = (constantValues.Count - length) combinations.ForEach(Sub(combination As List(Of Integer)) ListBox2.Items.Add(String.Join(", ", From value As Integer In combination Select If(value.ToString.Length = 1I, value.ToString.Insert(0I, "0"c), value.ToString))) End Sub) ListBox2.Sorted = True
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.697
|
Namespace LuisLibrary Friend NotInheritable Class Group Protected Friend Property First As Integer = 0I Protected Friend Property Second As Integer = 0I End Class End Namespace Dim values As New List(Of Integer) From { 2, 8, 9, 10, 11, 15, 21, 22, 28, 50, 55, 58 } Dim groupedValues As List(Of LuisLibrary.Group) = (From i As Integer In values Group By i.ToString("00").First Into items = Group Select New LuisLibrary.Group With { .First = items(0), .Second = items(1) }).ToList For Each g As LuisLibrary.Group In groupedValues Dim str As String = String.Format("{0:00}, {1:00}", g.First, g.Second) MessageBox.Show(str) Next g
...O bien: ' Type anónimo Dim groupedValues = From i As Integer In values Group By i.ToString("00").First Into items = Group Select New With { Key .First = items(0), Key .Second = items(1) }
...O también: Dim groupedValues As List(Of List(Of Integer)) = (From i As Integer In values Group By i.ToString("00").First Into items = Group Select New List(Of Integer) From {items(0), items(1)} ).ToList
Saludos.
|
|
« Última modificación: 22 Octubre 2014, 18:47 pm por Eleкtro »
|
En línea
|
|
|
|
luis456
Desconectado
Mensajes: 548
|
Namespace LuisLibrary Friend NotInheritable Class Group Protected Friend Property First As Integer = 0I Protected Friend Property Second As Integer = 0I End Class End Namespace Dim values As New List(Of Integer) From { 2, 8, 9, 10, 11, 15, 21, 22, 28, 50, 55, 58 } Dim groupedValues As List(Of LuisLibrary.Group) = (From i As Integer In values Group By i.ToString("00").First Into items = Group Select New LuisLibrary.Group With { .First = items(0), .Second = items(1) }).ToList For Each g As LuisLibrary.Group In groupedValues Dim str As String = String.Format("{0}, {1}", g.First.ToString("00"), g.Second.ToString("00")) MessageBox.Show(str) Next g
...O bien: ' Type anónimo Dim groupedValues = From i As Integer In values Group By i.ToString("00").First Into items = Group Select New With { Key .First = items(0), Key .Second = items(1) }
...O también: Dim groupedValues As List(Of List(Of Integer)) = (From i As Integer In values Group By i.ToString("00").First Into items = Group Select New List(Of Integer) From {items(0), items(1)} ).ToList
Saludos. AAAAA Me tendre que ahorcar para entender esto ( es broma me pongo en ello) Luis
|
|
|
En línea
|
Que tu sabiduria no sea motivo de Humillacion para los demas
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.697
|
Te explicaré la query de LINQ del primer ejemplo:
1) Creo grupos de los números según su primer dígito (habiendo añadido temporalmente un "0" a los números del 1 al 9), es decir, grupo de números que empiezan por 0, o por 1, 2, 3, etc. Cada grupo contiene todos los números de la colección que empiecen por ese primer dígito de la regla. por ejemplo el grupo del "0" contendrá { 02, 08, 09 } (el cero es imaginario)
2) Asigno los grupos a la variable/propiedad 'items'.
3) Instancio un objeto 'LuisLibrary.Group' por cada grupo, al que le asigno el primer número del grupo (items(0)) a la propiedad 'First', y el segundo número del grupo (items(1)) a la propiedad 'Second'.
4) Devuelvo una Lista de los objetos 'LuisLibrary.Group'.
Saludos
|
|
« Última modificación: 22 Octubre 2014, 19:01 pm por Eleкtro »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Problema] Programa para averiguar números pares entre 2 números
Programación Visual Basic
|
Dreamaker
|
3
|
5,465
|
21 Mayo 2010, 23:45 pm
por Shell Root
|
|
|
Combinaciones con 54 numeros
.NET (C#, VB.NET, ASP)
|
mr_marley
|
3
|
8,956
|
27 Noviembre 2011, 01:56 am
por mr_marley
|
|
|
Como saber todas las combinaciones posibles de letras y numeros?
Programación C/C++
|
peterfly
|
8
|
28,391
|
15 Julio 2012, 18:26 pm
por DickGumshoe
|
|
|
Combinaciones letras o numeros
« 1 2 »
.NET (C#, VB.NET, ASP)
|
luis456
|
11
|
8,067
|
8 Febrero 2014, 11:43 am
por luis456
|
|
|
Combinaciones numericas por posicion con numeros guias
« 1 2 3 »
.NET (C#, VB.NET, ASP)
|
luis456
|
26
|
18,204
|
28 Septiembre 2014, 16:13 pm
por luis456
|
|