Jump to content

Excel - Gerando todas as combinações possíveis de loteria no Excel


Recommended Posts

Achei esse vídeo no youtube...

Tentei adaptar para a Mega Sena mas deu um erro e não rodou @Omesmo tu que é fera no Excel bem que poderia adaptar as macros (Para Mega Sena e outras Loterias Brasileiras) conforme informa o autor para que possamos tentar rodar no pc. O meu Note é fraquinho acho que levaria um dia para rodar mas aqui tem gente graúda com pc parrudo.

 

“Quem conhece os outros é inteligente. Quem conhece a si mesmo é iluminado. Quem vence os outros é forte. Quem vence a si mesmo é invencível.” 

Lao Tsé

\[..]/

  • Like 1
Link to comment
Share on other sites

50 minutos atrás, Varelo disse:

macros (Para Mega Sena e outras Loterias Brasileiras) conforme informa o autor para que possamos tentar rodar no pc.

gerar as combinações é facil, tem de monte por aí, aqui mesmo no forum tem todas as combinações possíveis para a mega em txt, 

o problema é todo o processo depois

tipo, no excel é complicado armazenar tudo isso

filtragem é algo demorado, é chocar cada linha gerada contra todas as linhas do filtro, aí sim seria interessante uma linguagem de programação mais parruda e um bom pc,
para fazer em vba teria que converter as linhas do filtro em binario, e cada linha gerada tbm em binario, assim se chocaria cada linha contra o filtro de forma mais rapida

  • Thanks 1
Link to comment
Share on other sites

eu até estava tentando montar algo mais rapido, mas larguei de lado
 


Dim result() As Long
Sub testess()
' Mede o tempo de início
     startTime = Timer
     p = 6
     ReDim result(p + 1)
     ' Inicializar a primeira combinação
     For j = 1 To p
          result(j) = j
     Next j



     ' Chama a função
     'escolha
     '          Combinacaomegasena
     CombinacaoIterativa 60, p



     endTime = Timer
     ' Calcula a diferença de tempo
     Dim tempoTotal As Double
     tempoTotal = endTime - startTime
     ' Converte para hh:mm:ss
     Dim horas As Integer
     Dim minutos As Integer
     Dim segundos As Integer
     Dim milissegundos As Integer
     horas = Int(tempoTotal / 3600)
     minutos = Int((tempoTotal - horas * 3600) / 60)
     segundos = Int(tempoTotal - horas * 3600 - minutos * 60)
     milissegundos = Int((tempoTotal - horas * 3600 - minutos * 60 - segundos) * 1000)
     ' Exibe o tempo de execução no formato hh:mm:ss:ttt (milissegundos)
     MsgBox "Tempo de execução: " & Format(horas, "00") & ":" & Format(minutos, "00") & ":" & Format(segundos, "00") & ":" & Format(milissegundos, "000")


End Sub

Sub Combinacaomegasena()

     Dim i As Long, j As Long
     Do While result(1) < 56     'Do While result(1) <= n - p + 1
          ' Encontrar o próximo conjunto de combinação
          j = 6
          Do While result(j) = 54 + j
               j = j - 1
               If j = 0 Then GoTo pula
          Loop
          result(j) = result(j) + 1
          For i = j + 1 To 6
               result(i) = result(i - 1) + 1
          Next i
     Loop
pula:
     '     If 0 = 0 Then
     '     End If
End Sub


Sub CombinacaoIterativa(n As Long, ByVal p As Long)

     Dim i As Long, j As Long
     Do While result(1) < 56     'Do While result(1) <= n - p + 1
          '  Do While result(1) <= n - p + 1
          ' Encontrar o próximo conjunto de combinação
          j = p     ' j = 6 '
          Do While result(j) = 54 + j    '   Do While result(j) = n - p + j
               j = j - 1
               If j = 0 Then Exit Do
          Loop

          If j > 0 Then
               result(j) = result(j) + 1
               For i = j + 1 To p
                    result(i) = result(i - 1) + 1
               Next i
          Else
               Exit Do
          End If
     Loop
End Sub

 

  • Like 2
Link to comment
Share on other sites

2 minutos atrás, Varelo disse:

@Omesmo você chegou a assistir o vídeo? 

O que eu gostei foi que dá pra rodar porque ele quebra as combinações em colunas, pois o Excel tem limitação de linhas...

Mesmo em colunas precisa de micro parrudo para trabalhar.

Se usar o access voce pode trazer o que quiser para o excel via sql ou query.

Bons estudos

  • Thanks 1
Link to comment
Share on other sites

Agora, Varelo disse:

@Omesmo você chegou a assistir o vídeo? 

O que eu gostei foi que dá pra rodar porque ele quebra as combinações em colunas, pois o Excel tem limitação de linhas...

desculpe, nao dá para mim assistir, estou usando internet movel e os pacotes de dados são limitados, então videos nem pensar

mas sobre quebrar linhas é justamente o que se faz no excel, esse mesmo eu estava montado para limitar em 200mil linhas vezes 5 por aba da planilha, aí iria criando novas abas
tbm tem que ter opção de parar e recomeçar de onde parou

mas como falei, o problemaço nao é gerar as combinações , para isso se tem mil e uma ferramentas

o problema é o que fazer com elas depois
se for para testes o melhor é já ter um arquivo pronto e armazenado para ir modificando e usando

pode como falei usar binarios para testes mais eficientes , mas ainda fica se sem saber como usar tudo isso

se voce der uma ideia valida para usar todas essas linha depois de geradas ok, mas combinações já tem prontas por aí e até geradores se procurar, mas ideias como usar é o que falta

  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...