Recap of my tests:
1)
normal generation of jumps
20000 walks
num_jumps: 32 + 32
max_length of each walk = 32
jumpbit = 20
7516 loops of length 2, 118 of length 4:
(7516+118+4+2) / 20000 = 38,2 % of the walks have a loop before 32 steps
7516/20000 = 37,58% of the walks have a loop with 2 only points
[7516, 0, 118, 0, 4, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
----------------------------------------------------------------------------------------------------------------------------------------------------
2)
if(next_jump != -prev_jump): ok
else
next_jump = prev_jump #(you double the previous jump)
20000 walks
num_jumps: 32 + 32
max_length of each walk = 32
jumpbit = 20
0 loops of length 2, only 139 loops of length 4 and 7 of length 6:
(139+7+9+1+3) / 20000 = 0,795 % against 38,2%!
[0, 0, 139, 0, 7, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
----------------------------------------------------------------------------------------------------------------------------------------------------
3)
if(next_jump != -prev_jump): ok
else
next_jump = -sign(next_jump)*floor(distAvg)*G #a different step, with the opposite sign of the normal step
20000 walks
num_jumps: 32 + 32
max_length of each walk = 32
jumpbit = 20
0 loops of length 2, only 128 loops of length 4 and 6 of length 6, 2 of length 8:
(128 + 1 + 6 +2 + 1 + 1) / 20000 = 0,695% of the walks have a loop before 32 steps
[0, 0, 128, 1, 6, 0, 2, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
-------------------------------------------------------------------------------------------------------------------------------------------------------
4)
if(next_jump != -prev_jump): ok
else
next_jump = prev_jump #(you double the previous jump)
20000 walks
num_jumps: 64 + 64
max_length of each walk = 32
jumpbit = 20
0 loops of length 2, only 40 loops of length 4:
(40+1+1) / 20000 = 0,21 % of the walks enter in a loop in less than 32 steps
[0, 0, 0, 40, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
loops of length 4 are of "second order":
probability that (a+b+c+d=0) = (1/128)*(127/128)*(1/128)
probability that each sequence of 4 consecutive points don't create a loop = (1 - (1/128)*(127/128)*(1/128))^32
probability to find a loop in a walk of 32 steps: 1 - (1 - (1/128)*(127/128)*(1/128))^32 = 0.001936
expected value of number of walks with a loop of 4 points: 2000 * 0.001936 = 38,7
-------------------------------------------------------------------------------------------------------------------------------------------------------
5)
if(next_jump != -prev_jump): ok
else
next_jump = prev_jump #(you double the previous jump)
20000 walks
num_jumps: 64 + 64
max_length of each walk = 128
jumpbit = 20
157 loops of length 4, only 4 loops of length 6:
(157+4+2+1+1+1+1+1+1+2+1+1+1+1+1+1+1) / 20000 = 0,89% of the walks enter in a loop in less than 128 steps
[0, 0, 157, 0, 4, 0, 2, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]