none
Combinação de números RRS feed

  • Pergunta

  • Olá pessoal,

    Preciso de um algorítimo que faça combinações de 7 números dentre uma sequencia de 70 números, todos devem estar com todos, porém sem repetições, as combinações devem ser aleatórias não sequenciais.

    Alguém tem algo parecido ou pode indicar o caminho das pedras?

    Conto com qualquer ajuda.

    quinta-feira, 16 de agosto de 2012 15:08

Respostas

  • Deixo-te um procedimento simples para escolher 7 números de um conjunto de 70 e mostrá-los em 7 textboxes.

    O procedimento segue o principio de escolher un numero e retirá-lo do conjunto, para não ser escolhido novamente, tipo bingo.

        Private Sub SeteEmSetenta()
            Dim NN(70) As Integer
            Dim Nt As Integer = 70
            Dim NS(7) As Integer
    
            'Carregar os números de 1 a 70
            For I As Integer = 1 To Nt : NN(I) = I : Next I
    
            'Escolher 7 números
            Dim R As Integer
            For i = 1 To 7
                R = 1 + Int(Rnd() * Nt)
                NS(i) = NN(R) 'copiar o numero sorteado
                NN(R) = NN(Nt) 'passar o ultimo para o lugar deste
                Nt = Nt - 1 'diminuir o conjunto, evitando o ultimo
            Next
    
            'Ordenar os numeros sorteados
            For i = 1 To 6
                For J As Integer = i + 1 To 7
                    If NS(i) > NS(J) Then
                        R = NS(i)
                        NS(i) = NS(J)
                        NS(J) = R
                    End If
                Next
            Next
    
            'Mostrar os numeros por ordem
            TextBox1.Text = NS(1)
            TextBox2.Text = NS(2)
            TextBox3.Text = NS(3)
            TextBox4.Text = NS(4)
            TextBox5.Text = NS(5)
            TextBox6.Text = NS(6)
            TextBox7.Text = NS(7)
    
        End Sub

    quinta-feira, 16 de agosto de 2012 21:43

Todas as Respostas

  • Obrigado. Mas não é isso que preciso. Alias está em C#, preciso de VB.net
    quinta-feira, 16 de agosto de 2012 16:04
  • Olá Daxxel

    Não entendi como deseja essa combinação, talvez se você exemplificar pode ficar mais fácil.

    Obs.: O fato do link que o Malange postou está em C# não é problema, visto que para converter C# para VB.NET qualquer um faz, basta para isso digitar no google "C# para VB.NET", colar o código e clicar no botão "converter".

    Att.: Jeimes Ribeiro

    quinta-feira, 16 de agosto de 2012 17:53
  • Deixo-te um procedimento simples para escolher 7 números de um conjunto de 70 e mostrá-los em 7 textboxes.

    O procedimento segue o principio de escolher un numero e retirá-lo do conjunto, para não ser escolhido novamente, tipo bingo.

        Private Sub SeteEmSetenta()
            Dim NN(70) As Integer
            Dim Nt As Integer = 70
            Dim NS(7) As Integer
    
            'Carregar os números de 1 a 70
            For I As Integer = 1 To Nt : NN(I) = I : Next I
    
            'Escolher 7 números
            Dim R As Integer
            For i = 1 To 7
                R = 1 + Int(Rnd() * Nt)
                NS(i) = NN(R) 'copiar o numero sorteado
                NN(R) = NN(Nt) 'passar o ultimo para o lugar deste
                Nt = Nt - 1 'diminuir o conjunto, evitando o ultimo
            Next
    
            'Ordenar os numeros sorteados
            For i = 1 To 6
                For J As Integer = i + 1 To 7
                    If NS(i) > NS(J) Then
                        R = NS(i)
                        NS(i) = NS(J)
                        NS(J) = R
                    End If
                Next
            Next
    
            'Mostrar os numeros por ordem
            TextBox1.Text = NS(1)
            TextBox2.Text = NS(2)
            TextBox3.Text = NS(3)
            TextBox4.Text = NS(4)
            TextBox5.Text = NS(5)
            TextBox6.Text = NS(6)
            TextBox7.Text = NS(7)
    
        End Sub

    quinta-feira, 16 de agosto de 2012 21:43
  • A rotina do Nando ajudou bastante.

    sexta-feira, 17 de agosto de 2012 14:29
  • Já que a resposta do Nando lhe ajudou, marque como resposta.

    Att.,

    Jeimes Ribeiro

    sábado, 18 de agosto de 2012 03:03