Example progression:
Progression:1,2,4,8,10,12,14,16,18,20:105 units(Marty 4 terms and D'Alembert 6 terms).
We play 1,2,4,8 and if it wins, progression has won. If 8 loses, we bet 10, 12, 14, 16, 18, 20 in D'Alembert way. On win one step left, on lose one step right. If 10 wins, we bet 8 for immediate end of progression on win. If 20 loses, progression tanked. So those are two systems connected into one.
To compute those probabilities, we need matlab or octave. Octave is free software.
Example code:
function retval = progression()
p=18/37;
q=1-p;
% L W 1 2 4 8 10 12 14 16 18 20
m = \
[ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % L
[ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % W
[ 0, p, 0, q, 0, 0, 0, 0, 0, 0, 0, 0]; % 1
[ 0, p, 0, 0, q, 0, 0, 0, 0, 0, 0, 0]; % 2
[ 0, p, 0, 0, 0, q, 0, 0, 0, 0, 0, 0]; % 4
[ 0, p, 0, 0, 0, 0, q, 0, 0, 0, 0, 0]; % 8
[ 0, 0, 0, 0, 0, p, 0, q, 0, 0, 0, 0]; % 10
[ 0, 0, 0, 0, 0, 0, p, 0, q, 0, 0, 0]; % 12
[ 0, 0, 0, 0, 0, 0, 0, p, 0, q, 0, 0]; % 14
[ 0, 0, 0, 0, 0, 0, 0, 0, p, 0, q, 0]; % 16
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, p, 0, q]; % 18
[ q, 0, 0, 0, 0, 0, 0, 0, 0, 0, p, 0]; % 20
];
result = m^128;
retval = result(:,1:2);
endfunction
Save this code to file named "progression.m". Name of the file must be same as name of function on top of the file.
Set in matlab/octave current path to one with "progression.m". If it is saved in "C:\scripts", type command cd "C:\scripts" in command line. Check with command dir or ls that the file is there. Now type just progression to run the file. You should get somethink like this:
>>> cd "C:\scripts"
>>> dir
. .. progression.m
>>> progression
ans =
1.00000 0.00000
0.00000 1.00000
0.02029 0.97970
0.03952 0.96047
0.07696 0.92303
0.14988 0.85010
0.29187 0.70810
0.42639 0.57357
0.55383 0.44612
0.67457 0.32539
0.78896 0.21101
0.89733 0.10265
First column is probability of losing, second column is probability of winning for steps of progression.
First line are those probabilities if it already lost. It cannot win, so it is [1, 0].
Second line are those probability if it already won. It cannot lose, so it is [0, 1].
Third line are those probabilities for first step of progression, where you bet 1 unit.
Fourth line are those probabilities for second step of progression, where you bet 2 units.
Fifth line are those probabilities for third step of progression, where you bet 4 units.
and so on...
Most interesting for us is third line, because those probabilities are also probabilities for whole progregression, because it usually starts with first bet.
Overall probability of this progression winning is 0.97970, that is 97.970%. Overall probability of this progression losing is 0.02029, that is 2.029%.
Let's have a closer look at the matrix:
function retval = progression()
p=18/37;
q=1-p;
% L W 1 2 4 8 10 12 14 16 18 20
m = \
[ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % L
[ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % W
[ 0, p, 0, q, 0, 0, 0, 0, 0, 0, 0, 0]; % 1
[ 0, p, 0, 0, q, 0, 0, 0, 0, 0, 0, 0]; % 2
[ 0, p, 0, 0, 0, q, 0, 0, 0, 0, 0, 0]; % 4
[ 0, p, 0, 0, 0, 0, q, 0, 0, 0, 0, 0]; % 8
[ 0, 0, 0, 0, 0, p, 0, q, 0, 0, 0, 0]; % 10
[ 0, 0, 0, 0, 0, 0, p, 0, q, 0, 0, 0]; % 12
[ 0, 0, 0, 0, 0, 0, 0, p, 0, q, 0, 0]; % 14
[ 0, 0, 0, 0, 0, 0, 0, 0, p, 0, q, 0]; % 16
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, p, 0, q]; % 18
[ q, 0, 0, 0, 0, 0, 0, 0, 0, 0, p, 0]; % 20
];
result = m^128;
retval = result(:,1:2);
endfunction
The matrix must be square, it means same count of lines and columns.
First line is for a state of losing L - [1 0 0 0 ...].
Second line is for state of winning W - [0 1 0 0 0 ...].
They are always same.
Any other line has a meaning "what is a probability to get to another state?".
Examples:
state = bet = 1:
[ 0, p, 0, q, 0, 0, 0, 0, 0, 0, 0, 0]; % 1
Probability of getting to state W if we bet 1 on first step of progression is p=18/37, probability of getting to state/bet 2 is q=1-p=19/37.
state = bet = 8:
[ 0, p, 0, 0, 0, 0, q, 0, 0, 0, 0, 0]; % 8
Probability of getting to state W if we bet 8 on fourth step of progression is p=18/37, probability of getting to state/bet 10 is q=1-p=19/37.
state = bet = 10:
[ 0, 0, 0, 0, 0, p, 0, q, 0, 0, 0, 0]; % 10
Probability of getting to state/bet 8 if we bet 10 on fifth step of progression is p=18/37, probability of getting to state/bet 12 is q=1-p=19/37.
state = bet = 20:
[ q, 0, 0, 0, 0, 0, 0, 0, 0, 0, p, 0]; % 20
Probability of getting to state 18 if we bet 20 on fifth step of progression is p=18/37, probability of getting to state/bet L is q=1-p=19/37. State L is first column, so q gets to first column.
Now to compute the final probabilities, we have to make a big power of this matrix, it means multiply it many times by itself. The greater the power, the more accurate. 128 should be enough usually.
result = m^128;
We are interested only in first two columns of result, so function returns this:
retval = result(:,1:2);
By designing a matrix, we can compute probability for any progression we might think of, even for parachutes. It is that simple.
You can download octave from there.
link:://:.gnu.org/software/octave/download.html (link:://:.gnu.org/software/octave/download.html)
Linux users should install it from repositories, qtoctave is what I recommend.
Windows users get it there:
link:://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe/download (link:://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.2.4%20for%20Windows%20MinGW32%20Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe/download)
The script with progression is now in attachment.
Fibonacci progression: 1 1 2 3 5 8 13 21 34 55 89
function retval = fibonacci()
p=18/37;
q=1-p;
% L W 1 1 2 3 5 8 13 21 34 55 89
m = \
[ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % L
[ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % W
[ 0, p, 0, q, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % 1
[ 0, 0, p, 0, q, 0, 0, 0, 0, 0, 0, 0, 0]; % 1
[ 0, 0, p, 0, 0, q, 0, 0, 0, 0, 0, 0, 0]; % 2
[ 0, 0, 0, p, 0, 0, q, 0, 0, 0, 0, 0, 0]; % 3
[ 0, 0, 0, 0, p, 0, 0, q, 0, 0, 0, 0, 0]; % 5
[ 0, 0, 0, 0, 0, p, 0, 0, q, 0, 0, 0, 0]; % 8
[ 0, 0, 0, 0, 0, 0, p, 0, 0, q, 0, 0, 0]; % 13
[ 0, 0, 0, 0, 0, 0, 0, p, 0, 0, q, 0, 0]; % 21
[ 0, 0, 0, 0, 0, 0, 0, 0, p, 0, 0, q, 0]; % 34
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, p, 0, 0, q]; % 55
[ q, 0, 0, 0, 0, 0, 0, 0, 0, 0, p, 0, 0]; % 89
];
result = m^1280;
retval = result(:,1:2);
endfunction
>>> fibonacci
ans =
1.00000 0.00000
0.00000 1.00000
0.00630 0.99370
0.01228 0.98772
0.01794 0.98206
0.02895 0.97105
0.04475 0.95525
0.07016 0.92984
0.10920 0.89080
0.17025 0.82975
0.26507 0.73493
0.41274 0.58726
0.64247 0.35753
Probability of winning one unit is 99.37%.
What about imprisonment rule, how to add that? Look at a probabilities of imprisonment from Wizard of Odds(link:://wizardofodds.com/roulette (link:://wizardofodds.com/roulette)):
Quote
Imprisonment Odds
Imprisonment Win Push Loss Expected
Value
Single 0.48648649 0.01314828 0.50036523 -0.01387874
Double 0.48648649 0.01332346 0.50019005 -0.01370356
Triple 0.48648649 0.01332583 0.50018768 -0.01370120
Infinite 0.48648649 0.01332586 0.50018765 -0.01370117
French 0.48648649 0.01351351 0.50000000 -0.01351351
We change code of first example a little:
function retval = progression_imprison()
p=0.48648649;
r=0.01332586;
q=1-p-r;
% L W 1 2 4 8 10 12 14 16 18 20
m = \
[ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % L
[ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % W
[ 0, p, r, q, 0, 0, 0, 0, 0, 0, 0, 0]; % 1
[ 0, p, 0, r, q, 0, 0, 0, 0, 0, 0, 0]; % 2
[ 0, p, 0, 0, r, q, 0, 0, 0, 0, 0, 0]; % 4
[ 0, p, 0, 0, 0, r, q, 0, 0, 0, 0, 0]; % 8
[ 0, 0, 0, 0, 0, p, r, q, 0, 0, 0, 0]; % 10
[ 0, 0, 0, 0, 0, 0, p, r, q, 0, 0, 0]; % 12
[ 0, 0, 0, 0, 0, 0, 0, p, r, q, 0, 0]; % 14
[ 0, 0, 0, 0, 0, 0, 0, 0, p, r, q, 0]; % 16
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, p, r, q]; % 18
[ q, 0, 0, 0, 0, 0, 0, 0, 0, 0, p, r]; % 20
];
result = m^128;
retval = result(:,1:2);
endfunction
We added r, and that is a probability of push - it goes into diagonal, because if push happens, state does not change. We use push value of infinite imprison.
Results?
>>> progression_imprison
ans =
1.00000 0.00000
0.00000 1.00000
0.01791 0.98209
0.03533 0.96466
0.06969 0.93030
0.13747 0.86251
0.27118 0.72878
0.40123 0.59872
0.52772 0.47223
0.65075 0.34920
0.77041 0.22955
0.88680 0.11318
Probability of winning one unit is 98.209%, that is better than without imprison rule, of course.
Well, I would reccomend power of 1280 for computations, for perfect results, just a comparison with previous results. This result is little more accurate.
ans =
1.00000 0.00000
0.00000 1.00000
0.01791 0.98209
0.03533 0.96467
0.06970 0.93030
0.13748 0.86252
0.27120 0.72880
0.40125 0.59875
0.52775 0.47225
0.65077 0.34923
0.77043 0.22957
0.88681 0.11319
D'Alembert: if lost 10 units bet, stop.
function retval = dalembert()
p=0.48648649; % probability of winning on even chance
r=0.01332586; % imprison rule - push probability
q=1-p-r; % probability of losing
% L W 1 2 3 4 5 6 7 8 9 10
m = \
[ [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % L
[ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]; % W
[ 0, p, r, q, 0, 0, 0, 0, 0, 0, 0, 0]; % 1
[ 0, 0, p, r, q, 0, 0, 0, 0, 0, 0, 0]; % 2
[ 0, 0, 0, p, r, q, 0, 0, 0, 0, 0, 0]; % 3
[ 0, 0, 0, 0, p, r, q, 0, 0, 0, 0, 0]; % 4
[ 0, 0, 0, 0, 0, p, r, q, 0, 0, 0, 0]; % 5
[ 0, 0, 0, 0, 0, 0, p, r, q, 0, 0, 0]; % 6
[ 0, 0, 0, 0, 0, 0, 0, p, r, q, 0, 0]; % 7
[ 0, 0, 0, 0, 0, 0, 0, 0, p, r, q, 0]; % 8
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, p, r, q]; % 9
[ q, 0, 0, 0, 0, 0, 0, 0, 0, 0, p, r]; % 10
];
result = m^1280;
retval = result(:,1:2);
endfunction
>>> dalembert
ans =
1.00000 0.00000
0.00000 1.00000
0.10405 0.89595
0.20525 0.79475
0.30368 0.69632
0.39941 0.60059
0.49252 0.50748
0.58308 0.41692
0.67116 0.32884
0.75683 0.24317
0.84015 0.15985
0.92118 0.07882
Probability of winning one unit: 89.595%. Imprison rule.
>>> dalembert
ans =
1.00000 0.00000
0.00000 1.00000
0.11740 0.88260
0.22863 0.77137
0.33400 0.66600
0.43383 0.56617
0.52840 0.47160
0.61799 0.38201
0.70287 0.29713
0.78328 0.21672
0.85946 0.14054
0.93163 0.06837
Probability of winning one unit: 88.26%. Without imprison rule.
That D'Alembert - the probability actually means probability of restarting the system, and not probability of winning one unit. It menas for example {LWW, -1 +1 +2} or (LLWWWW,-1 -3 0 +2 +3 +4}. If reset on any plus, it would be different.
Your calculations are very useful.
But:with my progression very often you win MORE than one unit and I reset when my balance is positive,during D'Alembert segment.
Maybe this change a bit your simulation.
Beretta28
If your probability for winning is say 99% and losing is only 1%.
How do you use that information to know if it's a good system?
So you win $1 for 99%, but that 1% loses you $10,000.
How do you factor that information into the equation?
My goal is to play roulette like to flip a coin,50% probabilities for me and 50% for the Casino.
I know it's impossible,but having access to an "enprison" option roulette,I'm trying to approach this situation.
So after the first conclusion:"If you can play roulette with one Zero and "enprison" rule,you must play only a few bets on even chance("few" means even less than 10 spins or bets).
The second conclusion or bet is to find a bet selection(very difficult aim) on even chances.
I have already explored a lot of solutions.The best one is to choose a kind of bet that has very very low probabilities to find the pattern that make it lose.
For instance,but it's only an example:in 100 spins an even chance never hits less than 22/25 times!
May be you meet it tomorrow,maybe never in your life of player(more likely!!...)
I don't play roulette,I speculate only
If I want to play roulette and enjoy,I must pay like a vacation,theatre,etc.....