hypersoniq's Blog

"Numbers" are just paint on a ball...

The whole concept of these lottery numbers is that the numbers themselves are nothing more than a marker... a 5 has no higher or lower value than a 1.

We know that a pick 3 game has the numbers 0 to 9 available in each of the 3 machines, so 10x10x10 = 1,000 possible combos for which they pay out about half ($500 for $1 straight in PA). They could have easily used letters... imagine a pick 3 with A-Z as the markings... 26x26x26 = 17,576 possible combos... using the same logic, the payout would be $8,788.

The point being that the numbers themselves do NOT have mathematical properties, though we keep trying to search in that space for a solution.

When I made the move from number manipulation to frequency statistics, it painted a picture that was different from what I looked at before, however the results so far have not indicated any better way to generate a pick, because the basic truth is that the highest frequency followers are not always picked. They will be picked most of the time, but generally not at the same time...

So far, I have been able to generate a list of the distribution of all "numbers" that follow the last draw... this runs in seconds and can process all games. Then, I did the same for the angles between draws... again being able to get a distribution list for ALL follow up angles based on the last 2 draws... if the "numbers" do not have numeric properties, why would I imagine they would have physical properties? They, in reality, do not...

Today I will be reworking the input files to include both number followers AND angle followers. I am honestly unsure what good this will do, but I like to keep sharp with coding so why not...

How many times will I do this? How many ideas that deep down I know will not work will I try? Starting to think that I am just a moron with some coding skills that refuses to admit the impossible nature of trying to predict "random" results... or I am just an avid hobbyist...

Either way I seem to have a darker outlook on ever making headway in this endeavor.

Entry #321

These systems are ultimately a source of frustration...

However, in this case it might be best to run both the direct digit follower script AND the angular follower script as one.

Because of the modular adaptive code, all I have to do is add the numbers back in to the csv files. 2 hours work tops. Performing the upgrade BEFORE updating the draw data will allow a chance to see the puzzle pieces while knowing the next answer...

Which system is a better contributor to the desired outcome?

Can one result influence the other?

Can the data from both systems be used together?

Let's find out...

Entry #320

Noticing some things in the angle data...

Mostly the number of repeats! When looking at data with straight numbers, a 4 followed by a 4 might go unnoticed... but when looking at a 0, which represents the angle of a repeat, they are all over the place. In the bell curve, the zero is at the top, with +1 next on one side and -1 on the other.

The closest call on the pick 2 so far was the 8/24 evening. The previous draw was 7 4. The pick was 7 (because a repeat was most likely) and a -2, which gave me a 7 2 pick, the result was 7 1.

Tomorrow's mid day called for a double repeat, last draw was 9 9, so I went with 9 9, will see how that does. It might be that the angle magnitude serves as a better indicator of when NOT to play, wouldn't that be useful?

Entry #319

First test of the angle frequency system...

Set up with $1 Straight on the p2, p3 and p4 in PA. (Still working on the p5 csv files). Tickets in hand for mid day and evening ($6 total)

Not as simple as follower picks, and needs history files updated daily.

Hopefully this system does better than the long list of failed previous attempts...

Entry #318

Mission Accomplished! (Non lottery)

Started in the June, 2016 term taking 5 classes per year toward a Bachelor's Degree in Computer Science. Finished the last class last Friday, just waiting until the 28th until the school calendar indicates they publish the current term grades... they published a week early, so it is official! 120 credits, 3.44 cumulative GPA... Made it!

8 years ago I sat staring at the registration form, reasoning that 8 years was going to pass regardless, what did I want to show for it...

In many ways, I feel like the same dumbass who decided to start such a journey, and now that it is finished, it will take some time to adjust all of the study time back into "free" time.

Still an avid hobbyist at trying to solve impossible (or at least improbable) problems,  I just now have more tools in the toolbox that I can throw at the hobby.

Entry #317

Getting there...

Got the Python program working, now I need to modify the column processing to take the last angle using lastAngle = df.iloc(-1) so each column has the correct angle instead of displaying all 19 angles for every column. Should be an easy modification.

Up next is using the visualization tool to show valid vectors (their angles being most important at this time) i will run the script 10 times with lead in numbers 0 through 9 and take a pic of each, in order. This should help simplify the pick process. This makes it faster and limits the information displayed to only the relevant angle in question for each column. BIG gains in speed and efficiency when scaling up later to the big games.

Start with the highest frequency follower angle and if it appears in the valid list of 10 for the last drawn number, that is your pick. If it is not on the list then it violates the upper or lower bound constraint, therefore check the next most frequent.

Spent time making sure the spreadsheets are all perfect. Plan for today...

1. Get the script exactly where it needs to be

Modicy the visualizer to get photos of all possible angle lead ins (the time consuming part)

2. Update all draw histories (last was 8/17)

3. Export the required .csv data (the other time consuming part)

4. Figure out and record the exact steps to make a pick.

If all goes well, might have a live test by the weekend!

Entry #316

Super early, but interesting results..

So far I fixed the spreadsheets to convert draw to draw as an angle. I put together a workflow to export just the date and the angles to a .csv file, and I reworked the Python program to count the frequency of angles rather than direct numbers.

Though I still have to work on the visualization app, I did notice something interesting...

 

No matter how the data was presented earlier, the plot of the frequency distribution was near uniform... looking at the PA pick2 eve... the distribution has more of a bell curve shape! This is what I was hoping to see!

I still have to fan out the end of the graph to display the 10 valid angles so the result can be converted into a pick, but I have mixed up data many ways before and always ended up with the dreaded uniform distribution... IF it works is still to be determined, but it sort if feels like notable progress...

Happy Coding!

Entry #315

Dealing with coding setbacks.

After multiple attempts to get the follower script to work with vectors, it is apparently not simple to do with Pandas data frames.

In the past, I would most likely have given up at this point (or maybe not even gotten as far), but now I can leverage the education to find a solution... 

Since the unique part of the vector for frequency was the signed angle, I just need to regenerate the .csv files from the spreadsheets after replacing the vectors with just their signed angle... If I need the whole vector in the future, it is simple trig to regenerate the line lengths.

This means a full rework of 8 spreadsheet lookup tables, but after the first is reworked, the other 7 are simply copied...

Then converting only what is needed to .csv

Then rolling back to an earlier version of the follower program... that part is easy when using version control software like GIT and meaningful commit memos.

So the setback is not that bad, and following software engineering best practices leads to this challenge being relatively easy to overcome.

Speed was looking good though, the entire program did run in under 60 seconds, it just was unable to determine the appropriate follower counts.

Entry #314

Working on the vector scripts today

The excel part is done, validated and correctly functioning.

The visualization part has some work to go, and the follower script mods are finally launching, but I have to play the "squash the bugs" game.

Since the data analysis part is what is needed to start testing I am focusing time there.

Also tying in reading data from the PA Lottery RSS feed to automate updates, that one I might collaborate with AI to rapidly develop...

Using time otherwise spent on doing classwork to move forward on this project.

Classes done! Got an A- in AI, should graduate with between a 3.43 and a 3.44 cumulative GPA on the 28th of this month! Waiting for them to officially publish the grades now, but all of the work is complete!

Remember, frequency is but one part of the puzzle. I was able to create a formula that gives the total number of possible vectors in any game, which is 2N-1, where N is the number of balls in the game. In a pick 3 type game there are 10 balls, so the total possible vectors is (2x10)-1, or 19. To scale up to even the powerball becomes 2x26 =52, then subtracting 1 leaves 51. On the white balls, 2x69=138, -1 leaves 137 possible vectors. Bottom line is that the system CAN scale, it just becomes that much more complex... the -1 is because every single vector has a mirrored angle, such as 45 and -45, excepting the case if a repeat, which is always angle 0, length 1.

Entry #313

Down to 1 homework assignment and a final exam!

As this last class draws to a close, the time needed to finish the vector script will become available as soon as this weekend!

As this moment of getting my free time back approaches, I am thinking of how this new approach differs from the old approaches and I came up with... it captures the frequent pathways of numbers, not the numbers explicitly.

That means the old systems (literally all of them) were concerned with the numbers themselves, so a 5 then a 4 is different than a 2 followed by a 1... a one to one relation. the pathway, one lower to 1 higher or the opposite is a pathway and therefore can be a many to one relation from the lead in, and a one to many on the prediction as well. This type of relation will undoubtedly have a different distribution.

It will thus make picks a 2 layer process... generate the frequencies in pure vectors, then map these vectors to actual numbers in the final stage.

We start with 19 possible vectors and when picking the starting point we eliminate 9. Constraints will come into play to eliminate others, and ultimately the first valid vector to match when mapped to the actual digit will point to the pick digit.

We START with frequency because it is a solution space in which I am familiar, but this is certainly not the end...

Entry #312

Bet strategy for the Vector system (if it ever gets completed)

The same strategy applied to the original followers seems sound for this project.

$1 straight on the pick 2 (mid and eve)

IF there is a win on the pick 2, add the pick 3 for a week for $1 straight

IF there is a pick 3 win, add the pick 4 and 5 for $1 straight each for a week.

IF there is a pick 4 win... extend play for another week.

And finally, IF there is a pick 5 win...

A. Celebrate

B. Upgrade to platinum account

C. Begin the arduous task of converting the system to the jackpot games for the one and done end game!

Entry #311

What the vector system will look like...

No, I do not have visuals yet, but while still struggling to figure out how to get tuples loaded as vectors in a pandas data frame, I see how it will work when complete...

1. Start with updated draw files

2. Run the python program and save the output

3. Load the visualization graph with the last 2 numbers (n-1 and n), which will give the lead in vector. This will also fan out the 10 possible vectors (of 19) that exist for the next draw 

4. Find the lead in vector for that game position in the script output and look at the distribution frequency list. Find the first vector in this list that appears on the 10 projections from the visualization app.

5. Project that vector from the last drawn number... that js the pick.

No longer as simple as autofilling a spreadsheet or getting a pick directly from a script... but the old ways were also not producing reliable results, so trying anything at this point.

Entry #310

History not updated since 4/21...

Did not realize the hiatus was over 100 days! Last update on the data sets was April 21.

Spreadsheets are fully producing correct results and being updated. Funny how a typo on a lookup table can replicate like wildfire... with that correction the data validation (random sampling to detect the correct vector) is also complete.

During the development of the last spreadsheet for a system, I started making a text file that holds the more complex formulas for each sheet. That enabled reworking the sheets in just a few hours. (Validation is boring and long, but an absolute requirement)

Pre calculating the vectors in a lookup table reduced the complex INDEX formula to just one per sheet. Anchoring the lookup table reference allows this one formula to be populated with auto fill.

Should finish the updates by tomorrow and get a first look at what needs to be changed to run through the follower program to get vector distributions.

Entry #309

Working with vectors... how it begins...

The start of any system seems to follow a pattern.

1. Start with an idea.

2. Create a spreadsheet that will put the data into a easily consumable .csv format

3. Create a Python program to do the heavy lifting.

 

In this particular project, step 1 has taken quite some time. It is necessary to figure out how you would approach something manually before any automation could begin.

What I learned about numbers directly... in a pick n game your next pick can be from 0 to 9, and there is no safe way to eliminate any of them, their distribution resembles a unified distribution of random numbers. I have also learned that frequency is important in the long run, but not enough for draw to draw calculation. Yet frequency distribution is the DNA of a particular game history.

I have so far pre calculated the total number of possible vectors and their values, which is 19... by the grid layout, some of these CAN be eliminated by grid constraints. In the end there are still 10 possible of 19 vectors that are in play. For some vectors there may be a one to many relationship that is not immediately obvious. Much depends on the frequency distribution and the resulting curve.

Since the vectors are already known, the spreadsheet creation process to encode this data will be a simple lookup table with 100 entries, from a 0 0 repeat to a 9 9 repeat and every combo in between. This should not take long, though I will have to update the databases as well as I have let that part go while focusing on the core idea.

The visualization aspect is also of great importance, and will continue to be developed in parallel with the rest, as that represents trying to invoke the most powerful inference engine known to mankind... the human brain.

But for the third step, the first Python program will be a rework of the follower distribution script, only done with the vectors. It will most likely not be the final target, but it will help in understanding the underlying mechanics of each position in each game.

I did have a decent run of successful coding experiments between Q4 2023 and Q1 2024, but they were ultimately not successful winning number generators. The one plus to all of the previously expended effort is that just about all of the code is able to be repurposed for future projects by following common software engineering principles. Even the spreadsheets will be easier this round, as the large lookup tables already exist and just need to be filled with vectors rather than digits.

Once there is more progress on the visualization application, then the programs can all feed from the same .csv data sources.

Maybe the end game is that I finally "get it" that I lack the mental acuity to crack this age old puzzle, which still puts me in good company... and that the last 20 year half hearted chase was a waste of time. But I am still the same old stubborn person who still gets a thrill when a script works as expected, even if the results don't deliver a win. I believe I am addicted to the journey more so than disappointed at not reaching the destination...

Entry #308

I will need to step up my game and make a python gui desktop app

The visualization script does work to display the last 10 draws for one position. I need to make a program that lets the series be overdrawn for all positions on the same grid, but also toggled to show any particular series (ball 1 etc).

Before the fancier equations are applied, I think it would be interesting to rework the existing follower script to find the followers of each vector.

The trick is it may take more than one approach to find usable data.

The components planned so far...

1. A visualization component... this is where it shows the last 10 draws of any pick n game for which it has history... from pick 2 mid to pick 5 eve. Selectable and reading directly from the last 10 entries in the selected draw database. Automating the data import will be a huge difference maker when moving to the larger games.

2. A full history analyzer to get a starting point. This will be a simple rework of the follower script but using vectors rather than numbers. Here is where constraints of the grid would be applied. If a 9 was the last number, but the most frequent follower vector has a positive angle, then that can be rejected in favor of the next one on the distribution list that satisfies the constraint.

3. Some sort of discovery machine learning algorithm that can work on finding the facts of the distributions.

Finishing 1 and 2 will give a workable system, but finishing all 3 would be more helpful in creating a rules-based decision system.

Maybe the "CS guy" should figure out how to post images...

Anyway, happy coding!

Entry #307