Autor
		 | 
		
			Tema: Combinaciones letras o numeros  (Leído 10,122 veces)
		 | 
	 
 
	
		
			
				
					
						
							luis456
							
								 
								
								  Desconectado
								Mensajes: 551
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
hola trasteando por la Librería de Snippets encontre este codigo de combinaciones creo es de elektro    ahora como ni idea de usar la regiones, si alguien me puede explicar el codigo como funciona la idea es que con un array que ya tengo con datos este codigo me coja de ese array y me los combine y muestre en un listbox estas combinaciones. Mi array se llama " resul "    Region " Permute all combinations of characters"       ' [ Permute Characters Function ]     '     ' Examples :     ' Dim Permutations As IEnumerable = Permute_Characters("abc", 2)     ' For Each Permutation As IEnumerable(Of Char) In Permutations : RichTextBox1.Text &= vbNewLine & Permutation.ToArray : Next       Private Shared Function Permute_Characters(Of T)(list As IEnumerable(Of T), length As Integer) As IEnumerable(Of IEnumerable(Of T))           If length = 1 Then             Return list.[Select](Function(x) New T() {x})         Else             Return Permute_Characters(list, length - 1).SelectMany(Function(x) list, Function(t1, t2) t1.Concat(New T() {t2}))         End If       End Function   #End Region 
 
 AAA y ya estoy con esto del insert code que no me sale joe.... Luis 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Última modificación:  2 Febrero 2014, 15:57 pm por Eleкtro »
								 | 
								
									 
									En línea
								 | 
							  
							 
							Que tu sabiduria no sea motivo de Humillacion para los demas 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							Eleкtro
							
								Ex-Staff 
								 
								  Desconectado
								Mensajes: 9.964
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Pero Luis, ¿ has leido el título del snippet? xD, ese método no tiene nada que ver con combinar  Arrays (y supongo que después de saber eso ya no te interesará el funcionamiento de las órdenes de LINQ). ( Tienes razón el Snippet lo publiqué yo, pero no es de mi propiedad. ) Las  #Regiones sirven básicamente para organizar el código, si te fijas, en la IDE puedes expandir/colapsar una región, y así todo queda más armónico y profesional, no tiene ninguna otra utilidad ...son prácticamente comentarios que puedes eliminar. No sé que más decirte porque semanas atrás ya te habré puesto unos 1.000 códigos diferentes para unir un Array y mostrarlo en un Listbox, el problema hace tiempo que debería estar solucionado pero como no es así postea el código que tienes y el problema que tienes con ese código porque sin problema no puede haber soluciones.  ¿Que es lo que pretendes hacer?. EDITO:AAA y ya estoy con esto del insert code que no me sale joe.... ¿Te refieres a insertar un código en el post?, pues para ser sincero yo te he editado todos y cada uno de los códigos que has publicado hasta el día de hoy xD, me das trabajo, no porque hayas infringido las normas ni nada por el estilo, es que símplemente me gusta ver un código con su sintaxis correcta (que nunca la usas xD), por eso no te he dicho nada porque las normas no las has infringido, no hay problema, aunque podrías hacer el favor de usar el tag más apropiado con tanto código que publicas:  [code = vbnet] Tu código [ /code] Saludos! 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Última modificación:  2 Febrero 2014, 16:21 pm por Eleкtro »
								 | 
								
									 
									En línea
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							luis456
							
								 
								
								  Desconectado
								Mensajes: 551
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Bien lo que seria algo como esto pero en código mas bonito jejej y el proyecto viejo lo acabe gracias a todos   Ahora quiero es hacer son combinaciones y no de arrays si no de lo que tiene ese array que son numeros del 00 a 99 ...  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click           Dim a As Byte         Dim b As Byte         Dim c As Byte         Dim d As Byte           Textbox1.Text = ""           For a = 1 To 4             For b = 1 To 4                 For c = 1 To 4                     For d = 1 To 4                         If a = b Or a = c Or a = d Or b = c Or b = d Or c = d Then                         Else                             TextBox2.Text = TextBox1.Text & a & b & c & d & vbCrLf                         End If                     Next d                 Next c             Next b         Next a     End Sub   End Class 
 
 Luis (ahora espero antes de pinchar esto ,que salga lo del insert code    )  [MOD]: Genial, pero no hagas doble post utiliza el botón 'Modificar'   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Última modificación:  2 Febrero 2014, 17:46 pm por Eleкtro »
								 | 
								
									 
									En línea
								 | 
							  
							 
							Que tu sabiduria no sea motivo de Humillacion para los demas 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							Eleкtro
							
								Ex-Staff 
								 
								  Desconectado
								Mensajes: 9.964
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
No se si te refieres a hacer algo como esto, porque el ejemplo que has dado con datos de typo Byte , con varios ' For Range' "fijos" del 1 al 4 y esa condicional me sigue pareciendo que tiene poco que ver con la pregunta real. Este código combina todos los elementos de un Array de forma aleatoria, el resultado (en tu caso) son combinaciones de números desordenados. Public Class Form1       ''' <summary>     ''' Tu array numérico.     ''' </summary>     Private IntArray As Integer() =     {         10I, 20I, 30I, 40I, 50I, 60I, 70I, 80I, 90I     }       Private Sub Button1_Click() Handles Button1.Click           TextBox2.Text = String.Join("; ", RandomizeArray(IntArray))         ' TextBox2.Text = String.Join(Nothing, RandomizeArray(arr))       End Sub       ' By Elektro     '     ''' <summary>     ''' Randomizes the elements of the given Collection.     ''' </summary>     ''' <typeparam name="T"></typeparam>     ''' <param name="Collection">Indicates the Collection to randomize.</param>     ''' <returns>IEnumerable{``0}.</returns>     Public Function RandomizeArray (Of T )(ByVal Collection As IEnumerable (Of T )) As IEnumerable (Of T )           Dim Randomizer As New Random         Return (From Item  As T In  Collection Order By Randomizer. Next). ToArray       End Function   End Class 
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Última modificación:  2 Febrero 2014, 18:31 pm por Eleкtro »
								 | 
								
									 
									En línea
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							luis456
							
								 
								
								  Desconectado
								Mensajes: 551
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
No se si te refieres a hacer algo como esto, porque el ejemplo que has dado con datos de typo Byte , con varios ' For Range' "fijos" del 1 al 4 y esa condicional me sigue pareciendo que tiene poco que ver con la pregunta real. Este código combina todos los elementos de un Array de forma aleatoria, el resultado (en tu caso) son combinaciones de números desordenados. Public Class Form1       ''' <summary>     ''' Tu array numérico.     ''' </summary>     Private IntArray As Integer() =     {         10I, 20I, 30I, 40I, 50I, 60I, 70I, 80I, 90I     }       Private Sub Button1_Click() Handles Button1.Click           TextBox2.Text = String.Join("; ", RandomizeArray(IntArray))         ' TextBox2.Text = String.Join(Nothing, RandomizeArray(arr))       End Sub       ' By Elektro     '     ''' <summary>     ''' Randomizes the elements of the given Collection.     ''' </summary>     ''' <typeparam name="T"></typeparam>     ''' <param name="Collection">Indicates the Collection to randomize.</param>     ''' <returns>IEnumerable{``0}.</returns>     Public Function RandomizeArray (Of T )(ByVal Collection As IEnumerable (Of T )) As IEnumerable (Of T )           Dim Randomizer As New Random         Return (From Item  As T In  Collection Order By Randomizer. Next). ToArray       End Function   End Class 
 
 Ok ya con esto que me dio elektro medio hice algo jejej bien introduzco el numero y me los combina . pero siempre hay pero jeje nesecito saber como hacer para que me los muestre de esta forma 121355 <ahora me los muestra de esta forma 12 13 55 <--asi es que me hacen falta  y pudiendo limitar la cantidad de números a mostrar esto es que solo me muestre digamos cuatro pares de numeros.los demas que sobran los combine en otra linea hasta acabar con los numeros Public Class Form1       Private TextBoxes As TextBox() = {Nothing}     Private Result1 As Int32()     Private _textBox As Object     Private Property ListBox1Count As Integer     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       Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click           Result1 = {Num1 + 10, Num1 + 20, Num1 + 30} _                   .Distinct().ToArray     End Sub     Private Sub Button1_Click() Handles Button1.Click           TextBox2.Text = String.Join(Nothing, RandomizeArray(Result1))       End Sub         Public Function RandomizeArray (Of T )(ByVal Collection As IEnumerable (Of T )) As IEnumerable (Of T )           Dim Randomizer As New Random         Return (From Item  As T In  Collection Order By Randomizer. Next). ToArray       End Function     End Class 
 
  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							Que tu sabiduria no sea motivo de Humillacion para los demas 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							Eleкtro
							
								Ex-Staff 
								 
								  Desconectado
								Mensajes: 9.964
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
12 13 55 <--asi es que me hacen falta ¿Y esta linea no te dice nada?: TextBox2.Text = String.Join("; ", RandomizeArray(IntArray)) 
 
 ...Es que vamos!!!, Luis, joer... esta claro q no hay manera... Para separar los números por un espacio, pues,  muy óbviamente, debes modificar el string que usas como separador: String.Join(Separador, Colección) Ejemplo: MsgBox(String.Join(Convert.ToChar(Keys.Space), {1I, 2I, 3I, 4I, 5I}.ToArray)) 
 
 Y para lo de seleccionar "pares" de elementos no te aconsejo hacelro desde la función, haz las cosas de forma ordenada,  primero desordenas todos los elementos del array, y luego ese array desordenado (que contiene todos los números) lo usas para ir sacando los que quieras ...esto lo puedes automatizar con un For o usando Linq: Public Class Form1       Private Shadows Sub Shown() Handles MyBase.Shown           Dim Elementos As Integer() =         {           1, 2, 3, 4, 5, 6, 7, 8, 9, 10,           11, 12, 13, 14, 15, 16, 17, 18         }           For X As Integer = 0 To Elementos.Count - 1 Step 4               MessageBox.Show(                 String.Format("{0} {1} {2} {3}",                     Elementos(X),                     If(Not (X + 1) >= Elementos.Count, Elementos(X + 1), String.Empty),                     If(Not (X + 2) >= Elementos.Count, Elementos(X + 2), String.Empty),                     If(Not (X + 3) >= Elementos.Count, Elementos(X + 3), String.Empty),                     "Cuatro Elementos"                 )             )           Next X           Application.Exit()       End Sub   End Class 
 
 O puedes hacerlo de forma mas manual:     Public Class Form1       Private Sub Form1_Load() Handles MyBase.Load           Dim Elementos As Integer() =         {           1, 2, 3, 4, 5, 6, 7, 8, 9, 10,           11, 12, 13, 14, 15, 16, 17, 18         }           Dim Cantidad As Integer = 4           Dim Primeros_Cuatro_Elementos As Integer() =             (From Elemento As Integer In Elementos              Take Cantidad).ToArray           Dim Siguientes_Cuatro_Elementos As Integer() =             (From Elemento As Integer In Elementos              Skip Primeros_Cuatro_Elementos.Count              Take Cantidad).ToArray           Dim Todo_El_Resto_De_Elementos As Integer() =             (From Elemento As Integer In Elementos              Skip Primeros_Cuatro_Elementos.Count _              +              Siguientes_Cuatro_Elementos.Count).ToArray           MessageBox.Show(String.Join(Convert.ToChar(Keys.Space), Primeros_Cuatro_Elementos), "Primeros_Cuatro_Elementos")         MessageBox.Show(String.Join(Convert.ToChar(Keys.Space), Siguientes_Cuatro_Elementos), "Siguientes_Cuatro_Elementos")         MessageBox.Show(String.Join(Convert.ToChar(Keys.Space), Todo_El_Resto_De_Elementos), "Todo_El_Resto_De_Elementos")           Application.Exit()       End Sub   End Class 
 
 Saludos.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Última modificación:  3 Febrero 2014, 19:10 pm por Eleкtro »
								 | 
								
									 
									En línea
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							luis456
							
								 
								
								  Desconectado
								Mensajes: 551
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Bueno después de trastear  con este código de elektro logre adaptarlo a mi nuevo proyecto y funciona pero tengo ahora esta pega. como muestro en ves de un mesaggebox los resultados en un listbox ? ya que trato con  " ListBox1.Items.AddRange(Result1.Cast(Of Object).ToArray) " pero solo me muestra una sola combiancion y este codigo muestra tres mesaggebox Codigo que estoy usando Public Class Form1       Private Shadows Sub Shown() Handles MyBase.Shown           Dim Elementos As Integer() =         {           1, 2, 3, 4, 5, 6, 7, 8, 9, 10,           11, 12, 13, 14, 15, 16, 17, 18         }           For X As Integer = 0 To Elementos.Count - 1 Step 4               MessageBox.Show(                 String.Format("{0} {1} {2} {3}",                     Elementos(X),                     If(Not (X + 1) >= Elementos.Count, Elementos(X + 1), String.Empty),                     If(Not (X + 2) >= Elementos.Count, Elementos(X + 2), String.Empty),                     If(Not (X + 3) >= Elementos.Count, Elementos(X + 3), String.Empty),                     "Cuatro Elementos"                 )             )           Next X           Application.Exit()       End Sub   End Class 
 
 Luis  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Última modificación:  6 Febrero 2014, 20:25 pm por luis456 »
								 | 
								
									 
									En línea
								 | 
							  
							 
							Que tu sabiduria no sea motivo de Humillacion para los demas 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							Eleкtro
							
								Ex-Staff 
								 
								  Desconectado
								Mensajes: 9.964
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
For X As Integer = 0 To Elementos.Count - 1 Step 4       MessageBox.Show(         String.Format("{0} {1} {2} {3}",                       Elementos(X),                       If(Not (X + 1) >= Elementos.Count, Elementos(X + 1), String.Empty),                       If(Not (X + 2) >= Elementos.Count, Elementos(X + 2), String.Empty),                       If(Not (X + 3) >= Elementos.Count, Elementos(X + 3), String.Empty), "Cuatro Elementos"))   Next X 
 
 Fíjate bien en los cambios, esto puedes hacerlo sin ayuda For X As Integer = 0 To Elementos.Count - 1 Step 4       ListBox1.Items.Add(         String.Format("{0} {1} {2} {3}",                       Elementos(X),                       If(Not (X + 1) >= Elementos.Count, Elementos(X + 1), String.Empty),                       If(Not (X + 2) >= Elementos.Count, Elementos(X + 2), String.Empty),                       If(Not (X + 3) >= Elementos.Count, Elementos(X + 3), String.Empty)))   Next X 
 
 Saludos!  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							luis456
							
								 
								
								  Desconectado
								Mensajes: 551
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Fíjate bien en los cambios, esto puedes hacerlo sin ayuda For X As Integer = 0 To Elementos.Count - 1 Step 4       ListBox1.Items.Add(         String.Format("{0} {1} {2} {3}",                       Elementos(X),                       If(Not (X + 1) >= Elementos.Count, Elementos(X + 1), String.Empty),                       If(Not (X + 2) >= Elementos.Count, Elementos(X + 2), String.Empty),                       If(Not (X + 3) >= Elementos.Count, Elementos(X + 3), String.Empty)))   Next X 
 
 Saludos! Chupado      gracias electro a este paso podre decir que estoy con el mejor maestro     ahora vere como saltar las combinaciones para que no sean seguidas pero lo tratare de hacer  yo mismo.rompiendo se aprende   Luis  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							Que tu sabiduria no sea motivo de Humillacion para los demas 
						 | 
					 
				 
			 |  
		 
	 |  
	
		
		
			
				
					
						
							Eleкtro
							
								Ex-Staff 
								 
								  Desconectado
								Mensajes: 9.964
								
								 
								
								
								
								
								 
							 
						 | 
						
							
							 
							
Nah, no soy ningún prodigio como programador ni como tutor, solo es que tengo paciencia xD. saltar las combinaciones para que no sean seguidas  Creo que tarde o temprano vas a acabar preguntándolo, mejor hazlo ahora, aquí estamos para ayudar... pero si lo preguntas haz el favor de explicarlo con detalles, no de esa manera que he citado porque no hay quien lo entienda xD. Saludos  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									En línea
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 |  
	 |  
 
	 
	
 
			 
			
				
					
						| Mensajes similares | 
					 
					
						 | 
						Asunto | 
						Iniciado por | 
						Respuestas | 
						Vistas | 
						Último mensaje | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Programa que entretege todas las combinaciones posibles de letras de una palabra
							 
							Programación C/C++
						 | 
						
							freakx
						 | 
						
							0
						 | 
						
							5,792
						 | 
						
							 
							
								23 Enero 2012, 04:55 am 
								por freakx
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Como saber todas las combinaciones posibles de letras y numeros?
							 
							Programación C/C++
						 | 
						
							peterfly
						 | 
						
							8
						 | 
						
							30,378
						 | 
						
							 
							
								15 Julio 2012, 18:26 pm 
								por DickGumshoe
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							formar combinaciones de 7 y 8 numeros con 25 numeros
							« 1 2 ... 5 6 » 
							.NET (C#, VB.NET, ASP)
						 | 
						
							luis456
						 | 
						
							51
						 | 
						
							34,519
						 | 
						
							 
							
								31 Octubre 2014, 17:48 pm 
								por luis456
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Duda acerca del calculo de combinaciones de numeros y letras en vb.net 2010
							 
							.NET (C#, VB.NET, ASP)
						 | 
						
							arturoro
						 | 
						
							5
						 | 
						
							4,718
						 | 
						
							 
							
								20 Diciembre 2015, 07:33 am 
								por Eleкtro
							
						 | 
					 
					
						
							 
						 | 
						
							 
						 | 
						
							Como puedo tener todas las combinaciones de letras?
							 
							Scripting
						 | 
						
							Pregma Sogma
						 | 
						
							7
						 | 
						
							9,623
						 | 
						
							 
							
								31 Enero 2017, 19:06 pm 
								por Yidu
							
						 | 
					 
				 
			    |