Visual Basic - permutaciones

Life is soft - evento anual de software empresarial
   
Vista:
Imágen de perfil de Juan Carlos

permutaciones

Publicado por Juan Carlos (106 intervenciones) el 29/10/2007 02:55:41
Hola, gente de LWP
Busco un algoritmo que para un numero "n" de elementos me permita permutarlos, mostrando cada secuencia resultante de cada permutación, por ej. para n = 5 los 120 casos resultantes.
Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:permutaciones

Publicado por smokalot (203 intervenciones) el 29/10/2007 11:57:28
Hola,

tu buscas algo asi 3! = 3*2*1 ???

si es que si:

FOR i=n to 1 ......... resultado = resultado * n
donde resultado as integer
set resultado = 1

Suerte,

SMK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Carlos

RE:permutaciones

Publicado por Juan Carlos (106 intervenciones) el 29/10/2007 16:42:42
Hola Smokalot
No, esa operación indica el n° de casos (factorial de n). Lo que busco es poder mostrar cada caso, por ejemplo para n= 5 tenés 12345; 12354; 12453...... 54321... etc. así hasta llegar a los 120 casos.
Gracias por tu respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ahí va el ejemplo!

Publicado por ivan (1041 intervenciones) el 29/10/2007 22:15:32
Coloca en un Form un TextBox con el número que quieres permutar (p.e. 12345) además un ListBox (para mostrar los resultados) y un CommandButton y le pones este codigo

Option Base 1

Private Sub Command1_Click()
Dim x As Integer, i As Integer
Dim a() As String
x = Len(Text1)
ReDim a(x)
For i = 1 To Len(Text1)
a(i) = Mid(Text1, i, 1)
Next i
Permutaciones a(), x, x
MsgBox List1.ListCount & " permutaciones."
End Sub

Sub Permutaciones(a() As String, j, k As Integer)
Dim i As Integer, s As String, sTemp As String
If j = 1 Then
For i = 1 To k
s = s & a(i)
Next i
List1.AddItem s
Else
For i = 1 To j
sTemp = a(i)
a(i) = a(j)
a(j) = sTemp
Permutaciones a, j - 1, k
sTemp = a(j)
a(j) = a(i)
a(i) = sTemp
Next i
End If
End Sub

Ahí tienes las 120 permutaciones de un elemento de cinco cifras.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Carlos

RE:Ahí va el ejemplo!

Publicado por Juan Carlos (106 intervenciones) el 30/10/2007 03:43:43
Hola Ivan
Gracias por tu respuesta. Voy a probar el código(aparte de estudiarlo en detalle)
Mañana te cuento
Agradezco tu atención

Juan Carlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Carlos

Excelente!!!!

Publicado por Juan Carlos (106 intervenciones) el 30/10/2007 04:03:55
Hola Ivan
Funciona Ok. Hacía días que venía devanándome los sesos para encontrar el algoritmo apropiado. Logré en parte hacerlo permutando de dos en dos, pero no supe como llamar la función a sí misma y me quedaba siempre incompleto. De todos modos la voy a estudiar con atención porque todavía no tengo bien claro como trabaja
Muy agradecido

Juan Carlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pregunta del ejemplo!

Publicado por Ana Isabel (1 intervención) el 29/04/2014 00:49:45
Hola Iván

Necesito hacer un algoritmo de permutación pero que las haga dependiendo de un número que ingrese el usuario. Por ejemplo permutar 12345 (como el de Juan Carlos) tomando de 2 elementos, entonces saldrían:

12
13
14
15
21
23
24
25
31
32
34
35
41
... y así sucesivamente.

¿Hay forma de modificar el algoritmo que propones?

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pregunta del ejemplo!

Publicado por Jose (1 intervención) el 23/06/2016 18:35:20
Hola felicitaciones por su labor y muchas gracias de antemano por su atencion, quisiera tener la respuesta de permutaciones que le dan a ana isabel: 29-04-2014, yo procuro listar permutaciones de 3 en 3 ( hasta con 27 numeros o letras), y la de ana isabel me serviria de guia.
gracias. Es Jose Rodriguez y mi correo es flordetopalo@gmail.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar