terça-feira, 16 de agosto de 2011

Análise dos números da Quina

  Não há dúvida que programação e matemática combinam para fazer análises das mais variadas formas.
  Este script executa as seguintes etapas:
  • baixa um arquivo compactado contendo todos os jogos realizados pela quina
  • apaga os arquivos textos criados para evitar que fique poluindo seu diretório
  • remove as tags html para que fiquem somente os cinco números sorteados
  • organiza os números de colunas para linhas
  • ordena em ordem crescente os números sorteados
  • calcula a soma da primeira coluna a quinta coluna individualmente
  • a soma de cada coluna é divida pelo número de jogos para obter a média aritmética
  • exibe os 5 números sorteados com maior frequência

  Copie e execute! Boa análise!
  E se você for premiado com ajuda deste script, aceito doações! :)

#!/bin/bash

# by Murilo Fujita
# v1.1 Exibe os 5 numeros sorteados com maior frequencia
# v1.0 Extrai os numeros sorteados, ordena em ordem crescente, soma cada coluna e divide pela quantidade de jogo

#read -p "Entre com jogo " inicio

wget http://www1.caixa.gov.br/loterias/_arquivos/loterias/D_quina.zip
unzip D_quina.zip

rm -f D_quina.zip
rm -f T7.GIF
rm -f quina1.txt
rm -f quina2.txt
rm -f quina3.txt
rm -f quina4.txt
rm -f quina5.txt
rm -f quina6.txt
rm -f quina7.txt
echo Limpando HTML

sed '/html/d' D_QUINA.HTM | sed '/table/d' | sed '/body/d' | sed '/tr/d' | sed '/,/d' | sed '/SIM/d' | sed '/N/d' | sed 's/<td>//' | sed 's/<\/td>//' > quina1.txt
linhas1=`wc -l quina1.txt | awk '{printf "%s\n",$1}'`

#rm -f D_QUINA.HTM

echo Extraindo numeros sorteados

seq=7
while [ $seq -le $linhas1 ]
  do
   head -n $seq quina1.txt | tail -n 5
   let seq=$seq+10
  done >> quina2.txt

echo Formatando numeros em colunas

linha2=`wc -l quina2.txt | awk '{printf "%s\n",$1}'`
seq2=5
while [ $seq2 -le $linha2 ]
  do
   head -n $seq2 quina2.txt | tail -n 5 | paste -s -d" "
   let seq2=$seq2+5
  done >> quina3.txt

tr -d '\r' < quina3.txt > quina4.txt


echo Organizando os números sorteados em ordem crescente

total_jogos=`sed '/^$/d' quina4.txt | wc -l`
mv -v D_QUINA.HTM D_QUINA$total_jogos.HTM
for i in `seq $inicio 1 $total_jogos`
  do
   head -n $i quina4.txt | tail -n 1 | tr " " "\n" | sort -n | paste -s -d" " >> quina5.txt
  done

s1=`cut -f1 -d" " quina5.txt | paste -s -d"+" | bc`
s2=`cut -f2 -d" " quina5.txt | paste -s -d"+" | bc`
s3=`cut -f3 -d" " quina5.txt | paste -s -d"+" | bc`
s4=`cut -f4 -d" " quina5.txt | paste -s -d"+" | bc`
s5=`cut -f5 -d" " quina5.txt | paste -s -d"+" | bc`
echo Soma de todos os numeros
echo $s1 $s2 $s3 $s4 $s5

#let jogos_processados=$total_jogos-$inicio

# linhas5=`wc -l /home/murilo/programas/quina5.txt | cut -f1 -d" "`
media1=`echo $s1/$total_jogos | bc` #jogos_processados total_jogos
media2=`echo $s2/$total_jogos | bc`
media3=`echo $s3/$total_jogos | bc`
media4=`echo $s4/$total_jogos | bc`
media5=`echo $s5/$total_jogos | bc`
echo Media dos numeros sorteados nos $total_jogos jogos realizados
echo $media1 $media2 $media3 $media4 $media5

printf "\n"
echo Exibindo a frequencia do numero sorteado
sleep .5
  for i in `seq 9`;
   do
    printf "0$i `grep 0$i quina2.txt | wc -l` "
   done
  printf "10 `grep 10 quina2.txt | wc -l` "
  printf "\n"

inicio=11
fim=20
while [ $inicio -le 80 ]
do
  for i in `seq $inicio 1 $fim`;
   do
    printf "$i `grep $i quina2.txt | wc -l` "
   done
  printf "\n"
  let inicio=$inicio+10
  let fim=$fim+10
done


for i in `seq 9`; do printf "0$i `grep 0$i quina2.txt | wc -l`\n" ; done >> quina6.txt
for i in `seq 10 1 80`; do printf "$i `grep $i quina2.txt | wc -l`\n" ; done >> quina6.txt
awk '{printf "%s %3s\n",$2, $1}' quina6.txt | sort -n | tail -n 5 > quina7.txt

printf "\n"
echo Os numeros mais sorteados sao

for i in `seq 5`
  do
   head -n $i quina7.txt | tail -n 1 | awk '{printf "%s %3s\n",$2, $1}'
  done

   Caso queria baixar diretamente o código, salve este link.

Nenhum comentário:

Postar um comentário