Jump to content

rockcavera

Super VIP
  • Posts

    373
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by rockcavera

  1. Não sei se entendi bem, mas se pegarmos todas as possíveis combinações de 25,3 (as trincas), no universo da lotofácil, teremos 2.300 combinações possíveis. Agora, se pegarmos a quantidade de trincas que um jogo simples (15 dezenas) da lotofácil possui, vamos cair em 455 combinações. Se a sua intenção é criar uma "matriz" com 15 dezenas, onde nenhuma trinca se repita entre as linhas, acredito* que o número máximo de linhas com 15 dezenas seja 5, teoricamente. Claro que não tentei. Eu poderia escrever um código para se obter isso, mas estou um pouco sem tempo. Abraço. Edit: *é um chute fazendo uma matemática bem torta. Na verdade, acho que nem 2 linhas sejam possíveis, depois de uma tentativa na mão. Mas estou com sono. Amanhã vejo melhor.
  2. Cada linha de 15 números da lotofácil tem 24 irmãs, certo? Pegando como exemplo a linha: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 As linhas irmãs: 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 01 12 13 14 15 16 17 18 19 20 21 22 23 24 25 01 02 13 14 15 16 17 18 19 20 21 22 23 24 25 01 02 03 14 15 16 17 18 19 20 21 22 23 24 25 01 02 03 04 15 16 17 18 19 20 21 22 23 24 25 01 02 03 04 05 16 17 18 19 20 21 22 23 24 25 01 02 03 04 05 06 17 18 19 20 21 22 23 24 25 01 02 03 04 05 06 07 18 19 20 21 22 23 24 25 01 02 03 04 05 06 07 08 19 20 21 22 23 24 25 01 02 03 04 05 06 07 08 09 20 21 22 23 24 25 01 02 03 04 05 06 07 08 09 10 21 22 23 24 25 01 02 03 04 05 06 07 08 09 10 11 22 23 24 25 01 02 03 04 05 06 07 08 09 10 11 12 23 24 25 01 02 03 04 05 06 07 08 09 10 11 12 13 24 25 01 02 03 04 05 06 07 08 09 10 11 12 13 14 25
  3. Eu calculei as chances de prêmio máximo, com um jogo simples, de uma em 238.360.500. É uma modalidade bem difícil. Vamos esperar sair todos os detalhes. Já adianto que tem tudo para não pegar.
  4. 16,7,3,4=11 16,8,3,4=7 16,8,4,5=14 Já esse eu não achei e a melhor que seria 16,7,4,5=28. 16,7,4,5=30
  5. Aqui temos duas diferença, pois: 1) eu seleciono aleatoriamente qualquer combinação do universo de V,K. 2) eu deleto a combinação selecionado da lista de V,K para que não seja testada novamente. Quando falo que gero as combinações de V,K e V,M, é para descrever o algoritmo mais genérico e abrangente possível. No entanto, aqui fiquei com uma dúvida sobre seu algoritmo. Você pelo menos cópia a lista de V,K para outra lista que seria V,M? Pergunto isso, pois para o funcionamento do algoritmo meu é necessário ter as duas lista, pois de uma você seleciona as combinações de V,K que serão adicionadas na lista Matriz e na lista combinações de V,M você faz a comparação para saber se cobre todas as possibilidades. Aqui entra a pergunta anterior também. Se você não mantem uma lista de V,M, você não consegue controlar 100% da cobertura. Porém, surge outra pergunta: você não deleta da lista de controle V,M as linhas que fazem mais que T pontos? Se você não faz isso, você aumenta o tempo de processamento ao verificar ela novamente e existem outras C(V - K, M - T) combinações de V,K que fazem T pontos com essa linha, que podem selecionar uma próxima combinação de V,K que você acha que elimina X, mas na verdade está eliminando só X - N. Essas perguntas valem tanto para o Teste 01 quanto para 02. Verifiquei que seu algoritmo Teste 02 parece mais com o meu algoritmo. Alguns sistemas são mais "QUADRADOS". O que quero dizer com isso? São mais fáceis de achar a melhor solução, pois são geométricos, não tão irregulares. Mas não tenho uma explicação técnica para lhe dar. Veja isso como sendo: "qualquer linha selecionado que elimina o máximo de V,M na rodada é a linha perfeita". Não sei se você notou, mas meu programa realizou 34.111 tentativas até conseguir o melhor resultado 38, ou seja, gerou 34.111 matrizes 100% de 12,6,5,6. Como ele faz isso? Ele seleciona de forma aleatória a linha inicial (aqui nem muda tanto) e também seleciona de forma aleatória as linhas que eliminam o mesmo tanto de linhas de V,M no passo atual. O que é eliminar? São as linhas que fazem T ou mais pontos com a linha de V,K testada. Ou seja, meu programa executou 34.111 vezes e você deve ter executado o seu processo uma única vez. Claro que pode dar certo de primeira como não.
  6. Existem vários algoritmos para criação de matrizes. Por isso um programa gera a matriz 12,6,5,6=B com B=X outro com B=Y e assim vai. Só eu conheço pelo menos uns 3 algoritmos, e uma par de variações do algoritmo mais básico que pude desenvolver sozinho... Usando o exemplo do 12,6,5,6, meu programa que usa um algoritmo que eu desenvolvi funciona assim: gencover 12 6 5 6 Gerando matriz V,K,T,M: 12,6,5,6 Mínimo teórico: 25 Total Combinações V M: 924 Tamanho do Melhor Sistema: 47 Tempo Gasto: 0.0 Você deseja tentar diminuir mais? Caso não, dê enter ou digite 0. Se sim, digite a quantidade de tentativas e dê enter. 10 Tamanho do Melhor Sistema: 44 Tempo Gasto: 0.03120994567871094 Você deseja tentar diminuir mais? Caso não, dê enter ou digite 0. Se sim, digite a quantidade de tentativas e dê enter. 100 Tamanho do Melhor Sistema: 43 Tempo Gasto: 0.2655684947967529 Você deseja tentar diminuir mais? Caso não, dê enter ou digite 0. Se sim, digite a quantidade de tentativas e dê enter. 1000 Tamanho do Melhor Sistema: 40 Tempo Gasto: 2.697330474853516 Você deseja tentar diminuir mais? Caso não, dê enter ou digite 0. Se sim, digite a quantidade de tentativas e dê enter. 10000 Tamanho do Melhor Sistema: 40 Tempo Gasto: 26.89186000823975 Você deseja tentar diminuir mais? Caso não, dê enter ou digite 0. Se sim, digite a quantidade de tentativas e dê enter. 23000 Tamanho do Melhor Sistema: 38 Tempo Gasto: 61.87396788597107 Você deseja tentar diminuir mais? Caso não, dê enter ou digite 0. Se sim, digite a quantidade de tentativas e dê enter. Sistema salvo em: 12,6,5,6=38.txt Desenvolvido por rockcavera E aqui está a matriz gerada por ele de tamanho 38: Ai você me pergunta como ele funciona? É simples. Para cobrir uma matriz V,K,T,M você deve: 1) Gerar todas as combinações de V,K e vamos por em uma lista 2) Selecione aleatoriamente uma combinação de V,K, adicione-a a sua lista Matriz e delete ela da lista do passo 1) 3) Gerar todas as combinações de V,M, coloque em uma lista e delete aquelas que fazem T ou mais pontos com a combinação selecionada no passo 2) 4) Agora você sabe a quantidade de combinações que uma única combinação de V,K consegue eliminar de V,M. Esse número vamos chamar de "Comb_VK_reduz_VM" e você obtém ele assim: Combinações de V,M - Tamanho da Lista de V,M Após a Exclusão) [1]. Temos por enquanto 3 listas: combinações de V,K; combinações de V,M; e Matriz. Cada uma com respectivamente N itens: C(V,K) - 1; C(V,M) - Comb_VK_reduz_VM; e 1 [2]. 5) Vamos obter o mínimo teórico, mas que nem sempre é alcançável. Fórmula: Ceil(C(V,M) / Comb_VK_reduz_VM) [3]. 6) Agora, enquanto a lista de V,M possuir combinações (itens), você vai fazer: 6.1) Cruzar a lista de V,K contra a lista de V,M. Ou seja, pegar uma por uma das combinação da lista de V,K e contar quantas combinações de V,M fazem T ou mais pontos com cada uma. 6.2) Depois de passar a lista toda de V,K, você vai pegar aquela combinação de V,K que mais fez T ou mais pontos com a atual lista de V,M, adicionar ela na lista Matriz, deletar da lista V,K e deletar as combinações de V,M que fazem T ou mais pontos com ela [4]. 6.3) Volte para 6) 7) Se a lista V,M não possui mais combinações, ou seja, não tem mais itens, a sua lista Matriz possui uma matriz de V,K,T,M 100% coberta. Notas: [1] É possível obter esse número de outra forma, usando calculo matemático, mas não vou ensinar aqui, sendo que é possível se obter ele no meio do caminho do algoritmo por uma simples subtração. [2] A notação "C(n, k)" é para aplicar a formula da combinação de n,k. [3] Ceil(n) é usado para especificar que um número deve ser arredondado para cima caso não seja um inteiro. Ou seja, 1,1 vai ser arredondado para 2. 1,9 vai ser arredondado para 2. [4] Caso mais de uma combinação de V,K fizer os mesmos T ou mais pontos com a atual lista de V,M, você pode escolher aleatoriamente qualquer uma. Como pode ver, o fato de o mesmo algoritmo criar matrizes com B de tamanhos distintos está relacionado ao fato da escolha aleatória nos passos 2) e passo 6.2) quando cai no caso da nota [4]. Também, você pode observar que algumas coisas foram postas para você aprender a como calcular o mínimo teórico, que as vezes pode ser a menor matriz possível. A menor matriz possível vai ser sempre maior ou igual ao mínimo teórico. Outra coisa que posso passar aqui é o cálculo do mínimo teórico de matrizes V,K,T, onde T=M. Aqui é a fórmula de Schonheim. A fórmula de Schonheim é diferente do mínimo teórico apresentado no meu algoritmo. A fórmula de Schonheim pode ser maior ou igual ao mínimo teórico. Ainda existem dois outros algoritmos que conheço para redução, que são: recozimento simulado e o PDO (Problem Dependent Optimization). Aqui neste tópico você vai encontrar maiores informações. Abraço.
  7. Tem esse link aqui também: https://servicebus2.caixa.gov.br/portaldeloterias/api/resultados?modalidade=Lotofácil que é um html dentro de um json. É de onde é baixado o https://loterias.caixa.gov.br/Paginas/Download-Resultados.aspx
  8. Tem esse link que responde em formato json: https://servicebus2.caixa.gov.br/portaldeloterias/api/lotofacil/2470 O 2470 pode ser alterado para o concurso desejado. Infelizmente o link que retornava todos os resultados não está funcionando. Pode ser que a caixa esteja modificando algumas coisas e volte a funcionar.
  9. Agora se sua pergunta é qual a melhor matriz, ou seja, que tem maior cobertura, mas não 100%, com 15,10,3,3=6, ai acredito que você já tenha a resposta. Rodei um programinha meu e também ficou em 9 todas as vezes.
  10. Segundo esse site https://ljcr.dmgordon.org/cover/show_cover.php?v=15&k=10&t=3 15,10,3,3=7 já é o limite mínimo.
  11. Continuando, para quem não entendeu... Pegamos o concurso 2437, de 1º de fevereiro de 2022: 01 02 07 08 09 10 11 13 14 15 17 18 20 21 25 Agora, como vou dispor esses número em uma linha para ativar os bits do mais significante para o menos significante? Pode ser assim: 01 02 07 03 04 08 05 06 09 10 11 12 13 16 14 15 17 19 22 18 23 24 20 21 25 OU 02 01 07 03 04 08 05 06 09 10 11 12 13 16 14 15 17 19 22 18 23 24 20 21 25 ou qualquer outra permutação que os bits ativos (números sorteados) correspondam ao decimal 30005031. Agora desenhar o 01 02 07 03 04 08 05 06 09 10 11 12 13 16 14 15 17 19 22 18 23 24 20 21 25 na disposição de "volante doido aleatório": 01 02 07 03 04 08 05 06 09 10 11 12 13 16 14 15 17 19 22 18 23 24 20 21 25 Que lindo? Bom, mas agora quero que seja o decimal 32767, ou seja, os 15 bits menos significativos! A linha vai ser: 03 04 05 06 12 16 19 22 23 24 01 02 07 08 09 10 11 13 14 15 17 18 20 21 25. Agora sim! Perfeito! Bem mais fácil de enxergar o decimal com os últimos 15 bits menos significativos ativos que os bits espalhados! UFAA! Agora desenhando no "volante" adulterado: 03 04 05 06 12 16 19 22 23 24 01 02 07 08 09 10 11 13 14 15 17 18 20 21 25 Bem mais fácil! Agora se a ordem da matriz ou volante se mantivesse, não haveria número de ouro decimal 30005031, pois seriam 3.268.760 decimais diferentes, que são a quantidade de combinações possíveis na lotofácil. Abraços.
  12. Sinceramente? Você só está ordenando os bits ativos realocando os números nas posições que vão corresponder ao decimal 30005031 (binário 1110010011101011100100111). Eu poderia falar que o NÚMERO DECIMAL DE OURO é o 32767, apenas fazendo que a cada sorteio eu ordenasse os números para que os sorteados fossem os 15 bits menos significativos de um decimal ou qualquer outro número decimal com 15 bits ativos para a lotofácil. Então, você troca seis por meia dúzia, pois tenta adivinhar a posição dos números sorteados para que se encaixe na matriz binária 1110010011101011100100111. Abraços.
  13. Se você pretende encontrar manipulação, procure por desvios estatísticos. O que viria a ser tais desvios? São variações fora do esperado para certa modalidade de loteria em um campo amostral. Mas como irei fazer isso? Ai já depende de você, mas como as loterias são basicamente análise combinatória, é só você criar "filtros" e estudar o universo de possibilidades (todas as combinações de uma loteria) e confrontar contra o campo amostral (quantidade de resultados/sorteios). Caso haja alguma divergência, você encontrou indícios de manipulação e possivelmente uma "tendência" de tal loteria. Observação final: eu acredito na lisura e aleatoriedade das loterias, pelo menos da CEF (Caixa Econômica Federal), portanto não acredito que ocorra uma tendência, mas, sim, cumprimento das probabilidades.
  14. @PS_(Soares)observei agora que esse pedido está dentro da modalidade SUPER7. Como você pretende usar essa matriz para SUPER7? Fiquei curioso.
  15. Acho bem improvável essas matrizes. Só o cálculo do mínimo teórico para 70,9,7,7 já é mais de 33 milhões de linhas... E se essas matrizes não estão no repositório La Jolla Covering Repository Tables, acho bem improvável que ache por ai.
  16. Precisamos delimitar melhor o "aqui". "Aqui" nesse tópico ou "aqui" nesse fórum de loterias? Bom, para o primeiro caso estou exatamente para realizar o comentário que realizei. Para o segundo caso, o meu interesse é por matrizes, programação voltada a loterias, matemática, estatística e tentar ajudar e aprender também. O fórum não se limita a idéias mirabolantes, que parecem até "macumba*" para ganhar. Muitos trazem observações matemáticas e de estatísticas. Muita coisa boa sobre análise combinatória e até programação. Então, o fórum é bem maior. Abraços! * Não se ofenda com o termo macumba aqueles que são praticantes de religiões africanas. Foi apenas uma forma que achei para expressar, mas sem ofender.
  17. Única variável que importa para lotofácil é aquela que dá o prêmio, ou seja, 15 dezenas. São 15 números variáveis de 1 a 25, que resultam em 3.268.760 de possibilidades. O resto é invenção nossa para tentar achar pelo em ovo.
  18. Bom dia, caro @Friaça Posso estar enganado, mas baixei a matriz 25,15,11,15=43 e rodei no meu programa de verificação de cobertura como 25,15,14,15=43, e me retornou como 0,1954869736536179% de cobertura para 14 pontos. Ou seja, acredito que a chance de fazer 14 pontos com essa matriz seja essa. Abraço!
  19. De nada. Então, não fiz muitos testes não. O programa usa muita memória devido a forma como foi feito. Mas o recozimento simulado é uma forma interessante de montar sistemas. O lottery, que postei aqui, também usa recozimento simulado e está mais otimizado que esse anterior que publiquei. Claro que esse cover tem mais opções, bem como a definir alguns parâmetros para usar menos memória... Você falou que tinha a fonte dele, neh? Existe uma variação desse cover que também tem o nome cover, mas usa algoritmo PDO para montar as matrizes. O código fonte dele encontra-se aqui. Não consegui estudar a fundo esse algoritmo PDO ainda, mas o cover resultante dele parece ser melhor que o cover que usa recozimento simulado. Abraços.
  20. Boa noite, @Friaça. Vamos lá ver se entendi. Você tem 5mil linhas de 15 dezenas. Nessas 5mil linhas você tem uma (apenas uma?) com 14 pontos se comparada com o concurso X. Bom, se você tem apenas ela com 14 pontos, uma dedução minha, então ela será a única linha que você vai filtrar. Agora minha pergunta: você quer realizar a redução em comparação a um concurso X ou uma redução genérica? Se for em relação a um concurso X, é só pegar as linhas que fazem 14 pontos dessas suas 5mil. Se for algo genérico, o que acredito que seja, pois você usa as 25 dezenas, então só o desdobramento 25-15-14-15 vai te garantir 14 pontos em qualquer concurso. Está igual eu com meus softwares. Vivo prometendo soltar algo novo e não solto. Abraços.
  21. Trago outro programa como alternativa ao ININUGA, mas que não é de minha autoria. O projeto dele é chamado de cover e usa recozimento simulado (simulated annealing) para montar sistemas. Como falei anteriormente: não é de minha autoria e o código fonte está disponível aqui. Crédito aos autores: Kari J. Nurmela e Patric R. J. Ostergaard. Para conseguir utilizar no Ruindows (Ops, Windows), foi necessário algumas alterações. Por isso, disponibilizo aqui a versão compilada para download: cover para Windows 64 bits cover para Windows 32 bits No zip tem o cover.exe, além do README.txt e o CONSTRUCTING COVERING DESIGNS BY SIMULATED ANNEALING.PDF. O README.txt explica como se usa o programa, porém em inglês. Já o .pdf é um artigo explicando como o algoritmo do programa funciona para "descobrir" novos sistemas. Observação importante: o código fonte define o valor máximo de V como 40.
  22. Como uma matriz 20,6,5,10 tem números 21, 22, 23, 24 e 25? Existe uma matriz 20,6,5,10=50.
  23. Isso pode ser uma ilusão. Vejamos. Para a probabilidade ser de 1 em 1.947.792, primeiro deve ser respeitada a condição de acertar as 6 linhas de 10. Ou seja, é uma probabilidade em cima de outra probabilidade. Já a chance de acertar as 6 linhas de 10 é 1 em 210. Portanto, a chance de se acertar jogando dessa forma é 1 em 409.036.320. Pior que escolher aleatoriamente 6 números dentro dos 60. Posso estar errado, pois não sou nenhum matemático. Mas se você descobrir uma forma de acertar as linhas onde vão sair as dezenas, você com certeza vai aumentar suas chances. No entanto, eu não acredito em padrões lotéricos, pois se realmente as lotéricas são confiáveis, a aleatoriedade é impossível de se previr. Leia-se em aleatoriedade a forma real dela e não algoritmos que simulam a criação de aleatoriedade, como nos geradores de números pseudo-aleatórios.
×
×
  • Create New...