elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 04:32  


Tema destacado: [Overclocking] Récords de overclock del foro

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderador: [D4N93R])
| | | |-+  [Ayuda] permutaciones .net
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] permutaciones .net  (Leído 1,116 veces)
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
[Ayuda] permutaciones .net
« en: 28 Abril 2011, 19:13 »

Hola a todos  ;D,

estaba realizando una aplicacion en donde necesito todas las combinaciones posibles de numeros del 0 al 9 en grupos de 6.

Por lo que creo que deberia tener algo asi:

000000
111111
222222
333333
444444
555555
666666
777777
888888
999999

y luego mezclarlos para obtener numeros de 6 digitos pero que toleren
numeros que van del 0 al 9, alguna idea?

PD. encontre ejemplos de permutaciones pero no me fueron utiles ya
que no tengo idea de como agruparlos en 6, saludos!

 >:D


En línea
neoncyber

Desconectado Desconectado

Mensajes: 91



Ver Perfil WWW
Re: [Ayuda] permutaciones .net
« Respuesta #1 en: 29 Abril 2011, 01:45 »

Podrias utilizar estructuras for anidadas con IFs dependiendo de las restricciones del problema, tal vez no sea una forma rapida de hacer las cosas pero podria funcionar.

Saludos


En línea

Código
#!/usr/bin/python
print "Visit:"
print "http:\\donkeysharp.blogspot.com"
 
seba123neo


Desconectado Desconectado

Mensajes: 3.214



Ver Perfil WWW
Re: [Ayuda] permutaciones .net
« Respuesta #2 en: 29 Abril 2011, 06:15 »

aca tenes un ejemplo que es facil adaptarlo.

aclaro que si vos queres permutaciones de 6 y realizados con 10 numeros (del 0 al 9), eso daria un total de 10 mil millones de valores (10 elevado a la 10) si lo haces con valores que pueden repetirse.

pero si los haces con valores sin repeticion la cifra seria factorial de 10! o sea 3628800 de valores.

este ejemplo lo hace de la longitud que quieras pero sin repeticion.

Código
Public Class Form1
 
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 
       Dim inputLine As String = "123"
 
       Dim rec As New Recursion()
       rec.InputSet = rec.MakeCharArray(inputLine)
       rec.CalcPermutation(0)
 
       Debug.WriteLine("# of Permutations: " + rec.PermutationCount.ToString)
   End Sub
 
   Class Recursion
       Private elementLevel As Integer = -1
       Private numberOfElements As Integer
       Private permutationValue As Integer() = New Integer(-1) {}
 
       Private m_inputSet As Char()
       Public Property InputSet() As Char()
           Get
               Return m_inputSet
           End Get
           Set(ByVal value As Char())
               m_inputSet = value
           End Set
       End Property
 
       Private m_permutationCount As Integer = 0
       Public Property PermutationCount() As Integer
           Get
               Return m_permutationCount
           End Get
           Set(ByVal value As Integer)
               m_permutationCount = value
           End Set
       End Property
 
       Public Function MakeCharArray(ByVal InputString As String) As Char()
           Dim charString As Char() = InputString.ToCharArray()
           Array.Resize(permutationValue, charString.Length)
           numberOfElements = charString.Length
           Return charString
       End Function
 
       Public Sub CalcPermutation(ByVal k As Integer)
           elementLevel += 1
           permutationValue.SetValue(elementLevel, k)
 
           If elementLevel = numberOfElements Then
               OutputPermutation(permutationValue)
           Else
               For i As Integer = 0 To numberOfElements - 1
                   If permutationValue(i) = 0 Then
                       CalcPermutation(i)
                   End If
               Next
           End If
           elementLevel -= 1
           permutationValue.SetValue(0, k)
       End Sub
 
       Private Sub OutputPermutation(ByVal value As Integer())
           For Each i As Integer In value
               Debug.Write(m_inputSet.GetValue(i - 1))
           Next
           Debug.WriteLine("")
           PermutationCount += 1
       End Sub
   End Class
End Class
 

saludos.

En línea

Mucha gente, especialmente la ignorante desea castigarte por decir la verdad, por ser correcto, por ser tú. Nunca te disculpes por ser correcto, o por estar años delante de tu tiempo.
Si estas en lo cierto, y lo sabes, que hable tu razón. Incluso si eres una minoria de uno solo, la verdad sigue siendo la verdad. M. Gandhi
oscarj24

Desconectado Desconectado

Mensajes: 65


Ver Perfil
Re: [Ayuda] permutaciones .net
« Respuesta #3 en: 29 Abril 2011, 22:54 »

Gracias por la ayuda, pero encontre otro ejemplo que tenia implementadas muchisimas funciones, cheka esta web: http://www.codeproject.com/KB/recipes/Combinatorics.aspx

a mi me sirvio, pero vale la intencion.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines