Jump to content

rockcavera

Super VIP
  • Posts

    373
  • Joined

  • Last visited

  • Days Won

    1

Posts 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.

    • Like 6
  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

    • Like 1
  3. 1 hora atrás, Pedepano disse:

    Aqui a planilha usa sempre a primeira linha para inicio de análise, apenas guarda a linha na memoria, é não deleta do arquivo pois não teria a necessidade.

    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.

     

    1 hora atrás, Pedepano disse:

    Não gero uma nova matriz usando V,M pois não teria a necessidade, pois a matriz de V,K será a mesma de V,M . 

    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.

     

    1 hora atrás, Pedepano disse:

    Na verdade seria preciso verificar apenas T pois só vai existir uma única combinação com acerto maior que T, e como essa combinação que tem acerto maior que T só será digamos encontrada quando ela mesmo estiver sendo usada como linha base, então pode deixar que o sistema mantenha ela, ao invés de separar em outro arquivo, assim já mantenho a lista de linhas base dentro do próprio arquivo , no final só vai resta essa lista de linhas base.

    Voltando, então cada linha que tenha acerto de T com a linha base 1, é eliminada.

    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.

     

    1 hora atrás, Pedepano disse:

    Foi onde surgiu a questão, porque funcionou com a matriz de 18 dezenas conseguindo gerar apenas 24 linhas. Porém não conseguiu gerar a mesma quantidade de linhas da  matriz 12-6-5-6 que eu tinha como base de meta ?

    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".

     

    1 hora atrás, Pedepano disse:

    Segunda questão que surgiu após sua postagem, se vc usa praticamente a mesma logica que estou usando, porque conseguiu gerar 12-6-5-6 com 38 linhas, e aqui não conseguir chegar em 38 linhas, ficando acima disso. 🤔

    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.

  4. 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:

    Spoiler

    1 2 3 4 5 6
    1 2 3 5 6 12
    1 2 3 9 10 11
    1 2 4 6 11 12
    1 2 4 7 8 11
    1 2 4 8 10 12
    1 2 5 7 11 12
    1 2 6 7 8 9
    1 2 6 7 9 10
    1 3 4 6 7 11
    1 3 4 7 9 12
    1 3 5 7 8 10
    1 3 5 8 10 11
    1 3 8 9 11 12
    1 4 5 7 9 12
    1 4 5 9 10 11
    1 4 6 8 10 12
    1 5 6 8 9 11
    1 6 7 10 11 12
    2 3 4 5 8 9
    2 3 4 7 10 12
    2 3 5 7 9 11
    2 3 6 7 8 12
    2 3 6 8 10 11
    2 4 5 6 7 10
    2 4 6 7 9 12
    2 4 6 9 11 12
    2 5 6 8 10 11
    2 5 8 9 10 12
    3 4 5 8 11 12
    3 4 5 10 11 12
    3 4 6 8 9 10
    3 5 6 7 9 11
    3 5 6 9 10 12
    3 5 7 8 9 10
    4 5 6 7 8 12
    4 7 8 9 10 11
    7 8 9 10 11 12

    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.

    • Like 6
    • Thanks 2
  5. 1 minuto atrás, rockcavera disse:

    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 doze 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.

    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.

    • Like 1
    • Thanks 1
  6. 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.

    • Like 1
  7. 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.

    • Like 10
  8. 5 minutos atrás, sorte com estudo ss disse:

    engraçado que tu acredita nisso mais ainda ta aqui hehehe

    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.

    • Like 1
  9. 15 horas atrás, DixieJoe disse:

    Obrigado rockavera.

    Eu tinha os fontes dele, mas nunca soube usar.

     

    Você já testou?

     

    É bom?

     

    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.

  10. Em 29/11/2021 em 10:31, Friaça disse:

    Bom dia caros colegas.

    É uma pergunta que talvez seja meio sem lógica, mas não custa perguntar....kkkk

     

    Alguém conhece algum programa ou planilha que desdobre ou gere um arquivo menor com base em linhas inseridas nele?

     

    Ex.

    Tenho um grupo de linhas (5000) de 15 dezenas que abrange as 25 dezenas da lotofacil e supondo que dentro dessas 5000 linhas tenho uma linha com 14 pontos, comparada ao concurso x.

    Se usar um desdobramento 25-15-14-15, não consigo redução nessas 5000 linhas.

     

    Como posso reduzir isso com a garantia de segurar os 14 pts?

     

    Isso é possível?

     

    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.

     

    1 hora atrás, DixieJoe disse:

    Ola Julio Cezar

     

    Com certeza, está na seção de downloads. Mas não existe versão mais nova.

     

    Qualquer hora, vou fazer umas melhorias nesse programa.

     

    Está igual eu com meus softwares. Vivo prometendo soltar algo novo e não solto. 😂

     

    Abraços.

    • Like 1
    • Haha 1
  11. 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.

    • Like 2
    • Thanks 2
  12. 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.

    • Like 2
×
×
  • Create New...