#!/usr/bin/perl -w # originally from http://www.perlmonks.org/ # Powerball Frequency Analyzer # by chromatic (Bishop) # originally based upon old pbhist.txt # updated to current history # also run current "winnums-text.txt" format with no header line # with draws since last rule change in 2005/08/31 # use strict; use warnings; use LWP::Simple; my (@numbers, %normals, %powerb, %powers); my $content; #### bns - updated the link to the draw file ## unless (defined ($content = get('http://www.powerball.com/results/pbhist.txt'))) { ## die "Cannot get PB history.\n"; ## } ## unless (defined ($content = get('http://www.powerball.com/powerball/winnums-text.txt'))) { ## die "Cannot get PB history.\n"; ## } unless (defined ($content = get('file:///J:/DivX/current-game-winnums-text.txt'))) { die "Cannot get PB history.\n"; } @numbers = split /\n/, $content; my @data; foreach my $line (@numbers) { next if ($line =~ /^!/); @data = split(/\s/, $line); shift @data; # throw away the date $powers{pop @data}++; pop @data; $powerb{pop @data}++; foreach (@data) { $normals{$_}++; } } print "Normal (White Ball) Pick Rate:\n\n"; my @norm_sort = sort { $normals{$a} <=> $normals{$b} } keys %normals; foreach (@norm_sort) { print "$_ :\t($normals{$_})\t", "*" x $normals{$_}, "\n"; } print "PowerBall Normal Pick Rate:\n\n"; my @pb_sort = sort { $powerb{$a} <=> $powerb{$b} } keys %powerb; foreach (@pb_sort) { print "$_ :\t($powerb{$_})\t", "*" x $powerb{$_}, "\n"; } print "\nPower Pick Rate:\n\n"; my @pp_sort = sort { $powers{$a} <=> $powers{$b} } keys %powers; foreach (@pp_sort) { print "$_ :\t($powers{$_})\t", "*" x $powers{$_}, "\n"; } print "\nWhite Balls --"; print "\n Cold Picks:\t"; print join(" ", @norm_sort[0 .. 4]), "\n"; print " Mid Picks:\t"; print join(" ", @norm_sort[25 .. 29]), "\n"; print " Hot Picks:\t"; print join(" ", @norm_sort[50 .. 54]), "\n"; print "\nPowerBalls --"; print "\n Cold Picks:\t"; print join(" ", sort (@pb_sort[0 .. 2])), "\n"; print " Mid Pick:\t"; print join(" ", sort (@pb_sort[19 .. 21])), "\n"; print " Hot Picks:\t"; print join(" ", sort (@pb_sort[39 .. 41])), "\n"; ## print "\nPower Picks:\t"; ## print join(" ", sort (@pp_sort[0 .. 3])), "\n"; print "\nDisclaimer:\n\tThis is not statistically accurate, except in that the drawings are guaranteed.\nThis is just a quick frequency analysis making no pretenses as to predictive accuracy.\n";