sorel Posted February 20, 2018 Share Posted February 20, 2018 filtro, intersecçao( cruzamento de linhas e colunas) filtro intervalos vazios por lina e colunas padroes de repetiçao e atraso por coluna na ordem crescente, terminaçoes( nao as nervosas ) mas as de 0 a 9 controle da semente( quantidade de sorteio apartir do ultimo aonde para o proximo tem todas as dezenas exemplo=lotofacil em 5,6 sorteio já tem todas as dezenas tipo ciclo, padroes basicos, deltas vertical e horizontal. frequencias Quote Link to comment Share on other sites More sharing options...
DixieJoe Posted February 20, 2018 Share Posted February 20, 2018 1 hora atrás, pauloeasy disse: Aqui está um gerador de cadeia de Markov on-line, feito por Stoopendaal: Markov Chains Generator Lottery Games 2.0 Linkhttp://www.intelbet.somee.com/Default.aspx Markov Chains Generator Lottery Games 2.0 Carregar dados do histórico da loteria (Copiar e colar na caixa de texto abaixo) Concurso mais antigo no topo. Os números (dígitos) devem me separar por um sinal (vírgula, espaço, etc ...) Máximo de 10.000 linhas (resultados do histórico da loteria) permitidos. pauloeasy, Você conseguiu entender como usar isso? Quote Link to comment Share on other sites More sharing options...
iziplay Posted February 20, 2018 Share Posted February 20, 2018 27 minutos atrás, DixieJoe disse: pauloeasy, Você conseguiu entender como usar isso? Eventualmente faço alguns testes, não tive bons resultados. Mas os numeros gerados potencializam resultados futuros próximos. Vou tentar executar mais alguns backtests em todo tipo de loteria. Darei retorno em breve. Quote Link to comment Share on other sites More sharing options...
iziplay Posted February 20, 2018 Share Posted February 20, 2018 Demo para lotofacil 1627 pela Cadeia de Markov 14 dezenas 02 03 06 08 10 13 14 15 16 17 18 20 23 24 19 dezenas 02 03 04 06 07 08 09 10 11 13 14 15 16 17 18 20 23 24 25 Quote Link to comment Share on other sites More sharing options...
DixieJoe Posted February 20, 2018 Share Posted February 20, 2018 Valeu pauloeasy. Vamos ver como se comportam Nem consegui utilizar a rotina direito. Quote Link to comment Share on other sites More sharing options...
bitwizardry Posted February 21, 2018 Share Posted February 21, 2018 Em 2/7/2017 at 13:26, khundalini disse: Alguém pode me ajudar a montar o algoritmo para cálcular o CSN? Já tentei os algoritmos mencionados neste post, mas até agora sem sucesso. E se possível, queria uma explicação sobre o que é essa tal busca binária. Grato. Qual linguagem vc programa? Quote Link to comment Share on other sites More sharing options...
sorel Posted February 21, 2018 Share Posted February 21, 2018 http://www.intelbet.somee.com/Default.aspx Quote Link to comment Share on other sites More sharing options...
danniel.df Posted July 12, 2020 Share Posted July 12, 2020 Um algoritmo com IA em PHP que eu fiz para usar os resultados antigos da caixa e gerar apostas baseado no suposto princípio de que os números tendem a igualar a quantidade de ocorrências ao longo do tempo: <?php // http://loterias.caixa.gov.br/wps/portal/loterias/landing/megasena ini_set('display_errors', true); error_reporting(E_ERROR ^ E_DEPRECATED); set_time_limit(999999); $url = 'http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_megase.zip'; $pasta = 'dat'; $file = 'configuracoes.php'; $qtd_jogos = 0; $qtd_apostas = 1; $numeros_por_jogo = 6; $total = 60; $erros = []; $ocorrencias = []; if (!$_GET) { if (file_exists($pasta . "/" . $file)) { require($pasta . "/" . $file); } } else { $url = $_GET['url']; $qtd_apostas = max($_GET['qtd_apostas'], 1); $numeros_por_jogo = max($_GET['numeros_por_jogo'], 6); $qtd_premios_acumulados = 0; $qtd_ganhadores = 0; if (!is_dir($pasta)) { if (!mkdir($pasta)) { $erros[] = 'Falha ao criar o diretorio para guardar os arquivos da Caixa Economica'; } } if (is_dir($pasta)) { $conteudo_arquivo_configuracoes = '<?php' . PHP_EOL . '$url = "' . $url . '";' . PHP_EOL . '$qtd_apostas = ' . $qtd_apostas . ';' . PHP_EOL . '$numeros_por_jogo = ' . $numeros_por_jogo . ';' . PHP_EOL . '?>'; if (!file_put_contents($pasta . "/" . $file, $conteudo_arquivo_configuracoes)) { $erros[] = 'Falha ao gravar as configuracoes'; } } $numeros_validos = []; for ($x = 1; $x <= $total; $x++) { $numero = sprintf("%0" . strlen($total) . "d", $x); $ocorrencias[$numero] = 0; $numeros_validos[] = $numero; } if (function_exists('curl_init')) { $useragent = $_SERVER['HTTP_USER_AGENT']; $timeout = 120; $dir = dirname(__FILE__); $cookie_file = $dir . '/cookies/' . md5($_SERVER['REMOTE_ADDR']) . '.txt'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_ENCODING, ""); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_MAXREDIRS, 10); curl_setopt($ch, CURLOPT_USERAGENT, $useragent); curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com/'); $content = curl_exec($ch); if (curl_errno($ch)) { $erros[] = 'Falha ao consultar o arquivo zip. Erro CURL: "' . curl_error($ch) . '"'; } curl_close($ch); } else { $erros[] = 'O PHP não consegue extrair os arquivos da caixa'; } if (isset($content)) { file_put_contents($pasta . "/html.zip", $content); $zip = new ZipArchive(); $ok_zip = $zip->open($pasta . "/html.zip"); if ($ok_zip) { $zip->extractTo($pasta . "/zip"); $entradas = scandir($pasta . "/zip"); foreach ($entradas as $entrada) { if ($entrada == "." || $entrada == "..") { continue; } if (is_file($pasta . "/zip/" . $entrada)) { if (strtolower(substr($entrada, -4)) == '.htm') { $html = file_get_contents($pasta . "/zip/" . $entrada); } unlink($pasta . "/zip/" . $entrada); } if (is_dir($pasta . "/zip/" . $entrada)) { rmdir($pasta . "/zip/" . $entrada); } } rmdir($pasta . "/zip"); } else { $erros[] = 'O arquivo ZIP é inválido'; } $zip->close(); } else { $erros[] = 'O arquivo ZIP está vazio'; } if (isset($html)) { $dom_html = new DOMDocument(); $dom_html->loadHTML($html); $dom_tables = $dom_html->getElementsByTagName('table'); $tabela_invalida = false; foreach ($dom_tables as $dom_table) { $dom_trs = $dom_table->getElementsByTagName('tr'); foreach ($dom_trs as $indice_linha => $dom_tr) { if (!$indice_linha) { $dom_ths = $dom_table->getElementsByTagName('th'); foreach ($dom_ths as $indice_coluna => $dom_th) { switch ($indice_coluna) { case 2: case 3: case 4: case 5: case 6: case 7: if ($dom_th->textContent != ($indice_coluna - 1) . 'ª Dezena') { $tabela_invalida = true; } break; case 9: if ($dom_th->textContent != 'Ganhadores_Sena') { $tabela_invalida = true; } } } } else { $dom_tds = $dom_tr->getElementsByTagName('td'); if (count($dom_tds) != count($dom_ths)) { continue; } $qtd_jogos++; foreach ($dom_tds as $indice_coluna => $dom_td) { switch ($indice_coluna) { case 1: $data_primeiro_jogo = isset($data_primeiro_jogo) ? $data_primeiro_jogo : $dom_td->textContent; $data_ultimo_jogo = $dom_td->textContent; break; case 2: case 3: case 4: case 5: case 6: case 7: $numero_sorteado = $dom_td->textContent; if (!in_array($numero_sorteado, $numeros_validos)) { die('O numero sorteado ' . $numero_sorteado . ' é invalido, concurso ' . ($indice_linha + 1) . ', ' . ($indice_coluna + 1) . '° numero'); } $ocorrencias[$numero_sorteado]++; break; case 9: if ($dom_td->textContent == '0') { $qtd_premios_acumulados++; } else { $qtd_ganhadores += (int)$dom_td->textContent; } break; } } } } if ($tabela_invalida) { continue; } } } else { $erros[] = 'O arquivo HTML não foi localizado no ZIP'; } if (!$ocorrencias) { $erros[] = 'Nenhum resultado foi encontrado'; } } ?> <!DOCTYPE html> <html> <head> <title>MEGASENA</title> <meta charset="utf-8"> <meta author="danniel.df@hotmail.com.br"> <style type="text/css"> body { color: #555; font-family: verdana, sans-serif; font-size: 10px; text-align: center; background: #fefffe; width: 50em; margin: auto; } label { padding-bottom: 1em; display: block; } p { text-align: center; padding: 1em; font-style: italic; display: flex; justify-content: center; } h1 { cursor: pointer; color: #096; } ul { display: inline-block; text-align: left; } #form { background-color: #096; color: #fff; font-style: italic; font-weight: bold; margin: 0 auto 1em auto; padding: 1em; } #erros { border: solid 1px #ffa5a5; background-color: #ffbeb8; padding: 1em; margin: 0 auto 1em auto; } #url { width: 30em; } #qtd { width: 3em; } #btn { border: solid 1px gray; padding: 0.5em 5em; margin-top: 1em; } #ocorrencias { display: flex; flex-wrap: wrap; justify-content: center; background-color: #fbfbdf; padding: 1em; margin: 0 auto 1em auto; } #ocorrencias div { border: solid 1px #a00; color: #a00; background-color: #fff; padding: .5em; margin-right: .5em; margin-bottom: .5em; } </style> </head> <body onload="history.pushState('', '', '', '');"> <h1 onclick="location.assign('.');" title="recarregar"> MEGASENA </h1> <div id="form"> <label style="display: block"> URL da Caixa com o ZIP de todos resultados:<br/> <input type="text" id="url" value="<?php echo $url; ?>" style="text-align: center"/> </label> <label style="display: block"> Quantidade de Jogos:<br/> <input type="number" id="qtd_apostas" value="<?php echo $qtd_apostas; ?>" min="1" step="1" style="width: 3em; text-align: center"/> </label> <label style="display: block"> Quantidade de Números por Jogo:<br/> <input type="number" id="numeros_por_jogo" value="<?php echo $numeros_por_jogo; ?>" min="6" max="15" size="3" step="1" style="width: 3em; text-align: center"/> </label> <input type="button" id="btn" value="Processar" onclick="location.assign('?url=' + document.getElementById('url').value + '&qtd_apostas=' + document.getElementById('qtd_apostas').value + '&numeros_por_jogo=' + document.getElementById('numeros_por_jogo').value);" /> </div> <?php if ($erros) { echo '<div id="erros"><ul>'; foreach ($erros as $erro) { echo '<li>' . $erro . '</li>'; } echo '</ul></div>'; } if ($ocorrencias) { echo '<p><b>qtd de ocorrências de cada número:</b></p>' . '<div id="ocorrencias">'; $ocorrencias_ordenadas = []; foreach ($ocorrencias as $numero => $qtd_ocorrencias) { if (!isset($ocorrencias_ordenadas[$qtd_ocorrencias])) { $ocorrencias_ordenadas[$qtd_ocorrencias] = []; } array_push($ocorrencias_ordenadas[$qtd_ocorrencias], $numero); } ksort($ocorrencias_ordenadas); echo '<table><tr><th>Ocorrências</th><th>Números</th></tr>'; foreach ($ocorrencias_ordenadas as $qtd_ocorrencias => $numeros) { echo '<tr>' . '<td>' . $qtd_ocorrencias . '</td>' . '<td>' . implode(',', $numeros) . '</td>' . '</tr>'; } echo '</table>'; echo '</div>' . '<p><b>demais estatísticas:</b></p>' . '<ul>' . '<li>Qtd de jogos: <b>' . $qtd_jogos . '</b></li>' . '<li>Qtd de prêmios acumulados: <b>' . sprintf("%01.1f", $qtd_premios_acumulados * 100 / $qtd_jogos) . '%</b></li>' . '<li>Qtd de ganhadores até hoje: <b>' . $qtd_ganhadores . '</b></li>' . '<li>Qtd média de ganhadores por jogo: <b>' . sprintf("%01.2f", $qtd_ganhadores / $qtd_jogos) . '</b></li>' . '<li>Data do primeiro jogo: <b>' . $data_primeiro_jogo . '</b></li>' . '<li>Data do último jogo: <b>' . $data_ultimo_jogo . '</b></li>' . '</ul>'; echo '<div style="padding: 10px; background-color: #cbffaa; border: solid 1px #b9e9bb;">' . '<strong style="display: block; text-align: center; margin-bottom: 30px;">' . 'Apostas sugeridas:' . '</strong>'; if ($qtd_apostas && $numeros_por_jogo) { for ($jogo = 1; $jogo <= $qtd_apostas; $jogo++) { $numeros = range(1, $total); while (count($numeros) > $numeros_por_jogo) { $total_ocorrencias = 0; foreach ($ocorrencias as $numero => $ocorrencia) { $numero = (int)$numero; if (in_array($numero, $numeros)) { $total_ocorrencias += $ocorrencia; } } $range_numero_eliminado = rand(1, $total_ocorrencias); $total_ocorrencias = 0; foreach ($ocorrencias as $numero => $ocorrencia) { $numero = (int)$numero; $posicao = array_search($numero, $numeros); if ($posicao !== false) { $total_ocorrencias += $ocorrencia; if ($range_numero_eliminado <= $total_ocorrencias) { unset($numeros[$posicao]); break; } } } } echo "<div style='padding: 3px; margin-top: 5px;'> Jogo " . str_pad($jogo, strlen($qtd_apostas), "0", STR_PAD_LEFT) . ": "; foreach ($numeros as $numero) { echo '<span style="padding: 3px; margin-right: 3px; background-color: white;">' . str_pad($numero, strlen($total), "0", STR_PAD_LEFT) . '</span>'; } echo "</div>"; } echo "<div style='text-align: center; font-weight: bold; font-family: garamound, sans-serif; font-size: 2.5em; color: #d31eac; padding: 15px;'>BOA SORTE!</div>"; } else { echo '<div style="background: lightgray; color: orange; padding: 3px; text-align: center; border: solid 1px gray; font-weight: bold;">Não foram definidas as apostas</div>'; } echo "</div><br/>"; } ?> </body> </html> Quote Link to comment Share on other sites More sharing options...
iziplay Posted October 14, 2022 Share Posted October 14, 2022 Segue conforme solicitado "Markov chain" versão 3.0 Link: https://cloud.mail.ru/public/wGxS/Gzhhf3JyR Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.