Question VB algorithm for coming up with a winner

RedArrows2012

New member
Joined
Nov 1, 2012
Messages
3
Programming Experience
Beginner
I have a app im making that will predict the outcome of a TWO MAN race. Lets say there is 10 different racers , each have won and lost many times to each other .

i need help figuring out how to get vb to do the math to figure out based on previous races who will have the highest percentage chance of winning in the two man race

i have a form with a drop down with 5 racers in each drop down and a Race button i want to hit race and then get the odds on which racer will win by looking at past races and the opponents last ten race outcomes

i have the racers records in a different text file for each racer

any help would be great been racking my brain
 
You could weigh each racer by their win count. For example racer A has 7 wins and racer B has 3 wins, when they race each other the odds become 7:3, which is (7/10=) 70% chance for A and (3/10=) 30% chance for B.

You could modify that to be a bit more advanced, for example add a base value to every racer, to say that even if they have not won so far they still have a chance. If you for example add base value 1 to each racer and have A=2 and B=0 the odds changes from 2:0 to 3:1. B that by wins had no chance now still would have 25% chance.
 
Thank you so much for your help John, i have been looking for help on this for awhile on every forum and you are the first to give any type of real answer . thank you
 
If you want the skill of each racer and strength of schedule to be addressed then a ratings system / points system might be a good way to go.

A simple one that has served me well a few times goes something like this.

Every racer is given an equal base x number of points in the beginning. (Eg. 1000, or 25000, or 50 - whatever you feel comfortable working with)

As each racer squares up, they each risk a static x% of their points per race.

If one racer wins, he/she gets their x% back plus the x% risked by the other racer.
If a draw, then each racer gets 50% of the total risked points back.

x% must be decided by you based on the parameters of the racing..

Example1 - assuming x = 5% for both Racers


RacerA (1750 points) V's RacerB (1125 points)

RacerA risks 1750 * .05 = 87.5 points
RacerB risks 1125 * .05 = 56.25 points



If RacerA Wins:

RacerA's points = original points (1750) plus (RacerB's points * .05) (56.25) = 1806.25

RacerB's points = original points (1125) * .95 = 1068.75



If RacerB Wins:

RacerB's points = original points (1125) plus (RacerA's points * .05) (87.5) = 1212.5

RacerA's points = original points (1750) * .95 = 1662.5


If a Draw:

RacerA's points = (RacerA's points * .95) + ((RacerA risk + RacerB risk) / 2) = 1734.375

RacerB's points = (RacerB's points * .95) + ((RacerA risk + RacerB risk) / 2) = 1140.625


As you can see from this rating system, the underdog will be rewarded more for his win as it presumably took more skill. The favorite will be punished more severely for that loss as well because he was expected to win and therefore did not demonstrate enough skill on the day. Even in the case of a draw, the underdog supposedly performed better than expected to achieve the draw and is therefore rewarded a little for his effort, with the favorite being penalized a little for his poorer than expected performance.



Now, to see who has a better chance of winning:

RacerA's points divided by total points = RacerA's chance of winning, so 1750 / (1750 + 1125) = 60.87% chance of winning
RacerB's points divided by total points = RacerB's chance of winning, so 1125 / (1750 + 1125) = 39.13% chance of winning


You can variate the rules whatever way you like to suit your needs. Hope this helps.
 
Back
Top