Cita de: engel lex en 28 Junio 2014, 18:24 PM
pienso que la manera más facil es:
colocar los números ingresados en un array, por cada combinación a crear, haces un for con tantos ciclos como números en la combinación y dentro de el un random de 0 al largo del array, de manera que escoja valores del array, organizas los números obtenidos por el random, te aseguras que no haya repetidos y listo, luego te aseguras que no hagan combinaciones repetidas y listo completo
Hola
Gracias por tu respuesta tan pronto me dejas enredado yo pensaba en hacer coincidir los textbos uno por uno ya que los numeros quías cambian eso del 1 al 50 es para el ejemplo ya que pueden empezar con cualquier numero.pero tienen que quedar en el orden que da el ejemplo
esto es lo que llevo hasta el momento
Código (vbnet) [Seleccionar]
Public Class Form1
Dim maximum As Short = 99
Dim Número As Double
Private TextBoxes As TextBox() = {Nothing}
Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32(), Result4 As Int32(), Result5 As Int32(), Result6 As Int32(), Result7 As Int32(), Result8 As Int32(), Result9 As Int32(), Result10 As Int32(), Result11 As Int32(), Result12 As Int32(), Result13 As Int32(), Result14 As Int32(), Result15 As Int32(), Result16 As Int32(), Result17 As Int32(), Result18 As Int32(), Result19 As Int32(), Result20 As Int32()
Private _textBox As Object
Private Property ListBox1Count As Integer
ReadOnly MAX As Integer = 99
l
Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
' evitar letras
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsSeparator(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
' Elimino duplicados al mismo tiempo que selecciono los números inferiores a MAX.
Dim Resultss As IEnumerable(Of Integer) =
(
From Value As Integer
In (Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6).Concat(Result7).Concat(Result8).Concat(Result9).Concat(Result10).Concat(Result11).Concat(Result12).Concat(Result13).Concat(Result14).Concat(Result15).Concat(Result16).Concat(Result17).Concat(Result18).Concat(Result19).Concat(Result20)).Distinct
Where Value <= MAX
)
' concateno todos y muestro en un listbox
Dim Rand288 As New Random
Dim Result288 As IEnumerable(Of Integer) =
(Result1.Concat(Result2).Concat(Result3).Concat(Result4).Concat(Result5).Concat(Result6).Concat(Result7).Concat(Result8).Concat(Result9).Concat(Result10).Concat(Result11).Concat(Result12).Concat(Result13).Concat(Result14).Concat(Result15).Concat(Result16).Concat(Result17).Concat(Result18).Concat(Result19).Concat(Result20).
Distinct.
Select(Function(Value As Integer)
Return If(Value < MAX, Value, Rand.Next(0, MAX))
End Function))
ListBox12.Items.AddRange(Result288.Cast(Of Object).ToArray)
End Sub
End Class