Blog do Urubatan
msgbartop
Desenvolvedor, Arquiteto, Palestrante, Coordenador do RSJUG, Patinador e Blogger
msgbarbottom

02 Sep 07 Usando Ruby para ficar Rico!

Com a Mega Sena acumulada neste fim de semana resolvemos fazer um “bolão” para ver se saia pelo menos uma quadra pra pagar um churrasco :D
Só vamos ficar sabendo do resultado na segunda pela manha pois os bilhetes estão em uma gaveta no escritório, mas na hora de decidir como seria feita a aposta surgiram várias idéias, uma delas foi pegar um jogo de 8 números e o que sobrasse de jogos de sete números, mas ai alguem levantou a opção de fazer uma combinação com os números que mais sairam e os números que menos sairam, baixamos a tabela com todos os sorteios do site da caixa e ai ficou a dúvida, como descobrir quais os números que mais e menos sairam?
Hoje vi o code contest do Walter Cruz, mas eu ja tinha escrito este código antes …
Então, este post vale como a minha submissão para o code contest, foi escrito em 5 minutos, pode ser melhorado e diminuído ainda …

 require 'hpricot'

 doc = Hpricot(File.new('c:\megasc.html'))
 lines = doc.search('//tr')
 values = {}
 lines.each {|lin|
	tds = lin.search('//td')
	if !tds[2].nil?
		2.upto(7) {|idx|
			val = tds[idx].inner_html
			unless values[val]
				values[val] = 0
			end
			values[val] += 1
		}
	end
}
final_values = values.sort_by {|obj|
obj[1]
}
final_values.each{|key,value|
	puts "numero #{key} -> #{value} vezes\n"
}


Ok, este código em ruby não é o mais conciso possível, mas acho que ficou bem legível :D
Ele gera uma lista ordenada de todos os números ja sorteados na mega sena com a quantidade de vezes que cada um ja saiu :D

Se você gostou deste post, lembre-se de assinar o RSS feed do blog, para ser notificado de novos posts!

Tags: ,

Reader's Comments

  1. |

    Não era exatamente esse o desafio, mas é uma das versões que eu já tinha implementado. Só que no meu caso, eu usei um passo adicional: converti o HTML pra um cvs :D

    Reply to this comment
  2. |

    Eu sei que não era, mas como eu escrevi, o código ja estava pronto mesmo :D

    Reply to this comment
  3. |

    Bacana…

    Escrevemos o código com o mesmo propósito… Será que nossa intenção era a mesma?

    Até o dia que eu vi que estatistamente não faz diferença esse lance dos números que saíram mais. Aí desanimei :(

    Reply to this comment
  4. |

    [...] Comentários Walter Cruz on Usando Ruby para ficar Rico!Urubatan on Usando Ruby para ficar Rico!Walter Cruz on Usando Ruby para ficar Rico!Marcos Silva [...]

    Reply to this comment
  5. |

    Eu sabia que estatisticamente não faria diferença nenhuma, fiz mais por brincadeira mesmo :D

    Reply to this comment

Leave a Comment