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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  formar combinaciones de 7 y 8 numeros con 25 numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 2 [3] 4 5 6 Ir Abajo Respuesta Imprimir
Autor Tema: formar combinaciones de 7 y 8 numeros con 25 numeros  (Leído 22,600 veces)
luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #20 en: 15 Octubre 2014, 20:59 pm »

Bien es el mismo error que puse antes

Código
  1. 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 Desconectado

Mensajes: 9.701



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #21 en: 15 Octubre 2014, 21:55 pm »

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:

Código
  1.        Dim constantValues As IEnumerable(Of Integer) =
  2.           (
  3.               From Value As Integer
  4.               In (Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6)).Distinct
  5.               Where Value <= MAX
  6.           )
  7.  
  8. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  9.  
  10.       Dim constantValues As New List(Of Integer)
  11.  
  12.       Do Until ...
  13.  
  14.           Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
  15.  
  16.           Do Until ...
  17.  
  18.           Loop
  19.  
  20.       Loop
  21.  
  22.   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?):

Citar
Código
  1.       Do Until ...
  2.  
  3.           Do Until ...
  4.  
  5.           Loop
  6.  
  7.           skipStart += 1
  8.           skipStart = 0
  9.  
  10.       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 Desconectado

Mensajes: 543



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #22 en: 18 Octubre 2014, 16:30 pm »

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:

Código
  1.        Dim constantValues As IEnumerable(Of Integer) =
  2.           (
  3.               From Value As Integer
  4.               In (Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6)).Distinct
  5.               Where Value <= MAX
  6.           )
  7.  
  8. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
  9.  
  10.       Dim constantValues As New List(Of Integer)
  11.  
  12.       Do Until ...
  13.  
  14.           Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
  15.  
  16.           Do Until ...
  17.  
  18.           Loop
  19.  
  20.       Loop
  21.  
  22.   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 :

Código
  1. Dim Resultss As IEnumerable(Of Integer) =
  2.            (
  3.                From Value As Integer
  4.                In (Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6)).Distinct
  5.                Where Value <= MAX
  6.            )
  7.  
  8.        ListBox1.Items.AddRange(Resultss.Cast(Of Object).ToArray)
  9.        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 Desconectado

Mensajes: 9.701



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #23 en: 18 Octubre 2014, 18:46 pm »

'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 Desconectado

Mensajes: 543



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #24 en: 18 Octubre 2014, 20:01 pm »

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 Desconectado

Mensajes: 543



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #25 en: 22 Octubre 2014, 07:51 am »

Yaaaaaaa   ;D ;D ;D ;D ;D ;D ;D ;D


Código
  1. constantValues.AddRange(Resultss.ToArray())


me tenia confundido lo de "list"
luis
En línea

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


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros (subRangos)
« Respuesta #26 en: 22 Octubre 2014, 15:41 pm »

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 :)


Código
  1. constantValues.AddRange(Resultss.ToArray()) <-----variable con numeros con los que formamos las combinaciones
  2.  
  3.  
  4.        Dim combinations As New List(Of List(Of Integer))
  5.        Dim length As Integer = 7
  6.        Dim skipStart As Integer = 0
  7.  
  8.  
  9.        Do Until skipStart = (constantValues.Count - length)
  10.  
  11.            Dim values As List(Of Integer) = constantValues.GetRange(skipStart, length)
  12.            Dim count As Integer = 0
  13.  
  14.            Do Until count = (constantValues.Count - length - skipStart)
  15.  
  16.                combinations.Add(values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToList)
  17.  
  18.                Debug.WriteLine(String.Join(", ", values.Concat(constantValues.Skip(skipStart + length + count).Take(1)).ToArray))
  19.  
  20.                count += 1
  21.  
  22.            Loop ' count = (constantValues.Count - length)
  23.  
  24.            skipStart += 1
  25.  
  26.  
  27.        Loop ' skipStart = (constantValues.Count - length)
  28.        combinations.ForEach(Sub(combination As List(Of Integer))
  29.                                 ListBox2.Items.Add(String.Join(", ", From value As Integer In combination
  30.                                                                      Select If(value.ToString.Length = 1I,
  31.                                                                                value.ToString.Insert(0I, "0"c),
  32.                                                                                value.ToString)))
  33.                             End Sub)
  34.  
  35.        ListBox2.Sorted = True



En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.701



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #27 en: 22 Octubre 2014, 16:44 pm »

Código
  1. Namespace LuisLibrary
  2.  
  3. Friend NotInheritable Class Group
  4.  
  5.    Protected Friend Property First As Integer = 0I
  6.    Protected Friend Property Second As Integer = 0I
  7.  
  8. End Class
  9.  
  10. End Namespace
  11.  
  12.  
  13. Dim values As New List(Of Integer) From
  14.    {
  15.        2, 8, 9, 10, 11, 15, 21, 22, 28, 50, 55, 58
  16.    }
  17.  
  18. Dim groupedValues As List(Of LuisLibrary.Group) =
  19.    (From i As Integer In values
  20.    Group By i.ToString("00").First
  21.    Into items = Group Select New LuisLibrary.Group With {
  22.        .First = items(0),
  23.        .Second = items(1)
  24.    }).ToList
  25.  
  26. For Each g As LuisLibrary.Group In groupedValues
  27.  
  28.        Dim str As String = String.Format("{0:00}, {1:00}",
  29.                                          g.First,
  30.                                          g.Second)
  31.  
  32.    MessageBox.Show(str)
  33.  
  34. Next g

...O bien:
Código
  1. ' Type anónimo
  2. Dim groupedValues =
  3.    From i As Integer In values
  4.    Group By i.ToString("00").First
  5.    Into items = Group Select New With {
  6.       Key .First = items(0),
  7.       Key .Second = items(1)
  8.    }

...O también:
Código
  1. Dim groupedValues As List(Of List(Of Integer)) =
  2.    (From i As Integer In values
  3.     Group By i.ToString("00").First Into items = Group
  4.     Select New List(Of Integer) From {items(0), items(1)}
  5.     ).ToList

Saludos.
« Última modificación: 22 Octubre 2014, 18:47 pm por Eleкtro » En línea


luis456


Desconectado Desconectado

Mensajes: 543



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #28 en: 22 Octubre 2014, 18:13 pm »

Código
  1. Namespace LuisLibrary
  2.  
  3. Friend NotInheritable Class Group
  4.  
  5.    Protected Friend Property First As Integer = 0I
  6.    Protected Friend Property Second As Integer = 0I
  7.  
  8. End Class
  9.  
  10. End Namespace
  11.  
  12.  
  13. Dim values As New List(Of Integer) From
  14.    {
  15.        2, 8, 9, 10, 11, 15, 21, 22, 28, 50, 55, 58
  16.    }
  17.  
  18. Dim groupedValues As List(Of LuisLibrary.Group) =
  19.    (From i As Integer In values
  20.    Group By i.ToString("00").First
  21.    Into items = Group Select New LuisLibrary.Group With {
  22.        .First = items(0),
  23.        .Second = items(1)
  24.    }).ToList
  25.  
  26. For Each g As LuisLibrary.Group In groupedValues
  27.  
  28.    Dim str As String = String.Format("{0}, {1}",
  29.                                      g.First.ToString("00"),
  30.                                      g.Second.ToString("00"))
  31.  
  32.    MessageBox.Show(str)
  33.  
  34. Next g

...O bien:
Código
  1. ' Type anónimo
  2. Dim groupedValues =
  3.    From i As Integer In values
  4.    Group By i.ToString("00").First
  5.    Into items = Group Select New With {
  6.       Key .First = items(0),
  7.       Key .Second = items(1)
  8.    }

...O también:
Código
  1. Dim groupedValues As List(Of List(Of Integer)) =
  2.    (From i As Integer In values
  3.     Group By i.ToString("00").First Into items = Group
  4.     Select New List(Of Integer) From {items(0), items(1)}
  5.     ).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 Desconectado

Mensajes: 9.701



Ver Perfil
Re: formar combinaciones de 7 y 8 numeros con 25 numeros
« Respuesta #29 en: 22 Octubre 2014, 18:53 pm »

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


Páginas: 1 2 [3] 4 5 6 Ir Arriba Respuesta Imprimir 

Ir a:  

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 4,720 Último mensaje 21 Mayo 2010, 23:45 pm
por Shell Root
Combinaciones con 54 numeros
.NET (C#, VB.NET, ASP)
mr_marley 3 7,149 Último mensaje 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 25,815 Último mensaje 15 Julio 2012, 18:26 pm
por DickGumshoe
Combinaciones letras o numeros « 1 2 »
.NET (C#, VB.NET, ASP)
luis456 11 5,964 Último mensaje 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 14,537 Último mensaje 28 Septiembre 2014, 16:13 pm
por luis456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines