Procházet zdrojové kódy

[research/lotterysim] shuffle reward distribution

police před 3 roky
rodič
revize
5fc0411473
100 změnil soubory, kde provedl 157 přidání a 39 odebrání
  1. 4 4
      script/research/lotterysim/core/constants.py
  2. 4 1
      script/research/lotterysim/core/darkie.py
  3. 4 3
      script/research/lotterysim/core/lottery.py
  4. 23 26
      script/research/lotterysim/core/strategy.py
  5. 26 5
      script/research/lotterysim/discrete_instance.py
  6. binární
      script/research/lotterysim/img/apr_distribution.png
  7. 1 0
      script/research/lotterysim/log/darkie0.log
  8. 1 0
      script/research/lotterysim/log/darkie1.log
  9. 1 0
      script/research/lotterysim/log/darkie10.log
  10. 1 0
      script/research/lotterysim/log/darkie11.log
  11. 1 0
      script/research/lotterysim/log/darkie12.log
  12. 1 0
      script/research/lotterysim/log/darkie13.log
  13. 1 0
      script/research/lotterysim/log/darkie14.log
  14. 1 0
      script/research/lotterysim/log/darkie15.log
  15. 1 0
      script/research/lotterysim/log/darkie16.log
  16. 1 0
      script/research/lotterysim/log/darkie17.log
  17. 1 0
      script/research/lotterysim/log/darkie18.log
  18. 1 0
      script/research/lotterysim/log/darkie19.log
  19. 1 0
      script/research/lotterysim/log/darkie2.log
  20. 1 0
      script/research/lotterysim/log/darkie20.log
  21. 1 0
      script/research/lotterysim/log/darkie21.log
  22. 1 0
      script/research/lotterysim/log/darkie22.log
  23. 1 0
      script/research/lotterysim/log/darkie23.log
  24. 1 0
      script/research/lotterysim/log/darkie24.log
  25. 1 0
      script/research/lotterysim/log/darkie25.log
  26. 1 0
      script/research/lotterysim/log/darkie26.log
  27. 1 0
      script/research/lotterysim/log/darkie27.log
  28. 1 0
      script/research/lotterysim/log/darkie28.log
  29. 1 0
      script/research/lotterysim/log/darkie29.log
  30. 1 0
      script/research/lotterysim/log/darkie3.log
  31. 1 0
      script/research/lotterysim/log/darkie30.log
  32. 1 0
      script/research/lotterysim/log/darkie31.log
  33. 1 0
      script/research/lotterysim/log/darkie32.log
  34. 1 0
      script/research/lotterysim/log/darkie33.log
  35. 1 0
      script/research/lotterysim/log/darkie34.log
  36. 1 0
      script/research/lotterysim/log/darkie35.log
  37. 1 0
      script/research/lotterysim/log/darkie36.log
  38. 3 0
      script/research/lotterysim/log/darkie37.log
  39. 1 0
      script/research/lotterysim/log/darkie38.log
  40. 1 0
      script/research/lotterysim/log/darkie39.log
  41. 1 0
      script/research/lotterysim/log/darkie4.log
  42. 1 0
      script/research/lotterysim/log/darkie40.log
  43. 1 0
      script/research/lotterysim/log/darkie41.log
  44. 1 0
      script/research/lotterysim/log/darkie42.log
  45. 1 0
      script/research/lotterysim/log/darkie43.log
  46. 1 0
      script/research/lotterysim/log/darkie44.log
  47. 1 0
      script/research/lotterysim/log/darkie45.log
  48. 1 0
      script/research/lotterysim/log/darkie46.log
  49. 1 0
      script/research/lotterysim/log/darkie47.log
  50. 1 0
      script/research/lotterysim/log/darkie48.log
  51. 1 0
      script/research/lotterysim/log/darkie49.log
  52. 1 0
      script/research/lotterysim/log/darkie5.log
  53. 1 0
      script/research/lotterysim/log/darkie50.log
  54. 1 0
      script/research/lotterysim/log/darkie51.log
  55. 1 0
      script/research/lotterysim/log/darkie52.log
  56. 1 0
      script/research/lotterysim/log/darkie53.log
  57. 1 0
      script/research/lotterysim/log/darkie54.log
  58. 1 0
      script/research/lotterysim/log/darkie55.log
  59. 1 0
      script/research/lotterysim/log/darkie56.log
  60. 1 0
      script/research/lotterysim/log/darkie57.log
  61. 1 0
      script/research/lotterysim/log/darkie58.log
  62. 1 0
      script/research/lotterysim/log/darkie59.log
  63. 1 0
      script/research/lotterysim/log/darkie6.log
  64. 1 0
      script/research/lotterysim/log/darkie60.log
  65. 1 0
      script/research/lotterysim/log/darkie61.log
  66. 1 0
      script/research/lotterysim/log/darkie62.log
  67. 1 0
      script/research/lotterysim/log/darkie63.log
  68. 1 0
      script/research/lotterysim/log/darkie64.log
  69. 1 0
      script/research/lotterysim/log/darkie65.log
  70. 1 0
      script/research/lotterysim/log/darkie66.log
  71. 1 0
      script/research/lotterysim/log/darkie67.log
  72. 1 0
      script/research/lotterysim/log/darkie68.log
  73. 1 0
      script/research/lotterysim/log/darkie69.log
  74. 1 0
      script/research/lotterysim/log/darkie7.log
  75. 1 0
      script/research/lotterysim/log/darkie70.log
  76. 1 0
      script/research/lotterysim/log/darkie71.log
  77. 1 0
      script/research/lotterysim/log/darkie72.log
  78. 1 0
      script/research/lotterysim/log/darkie73.log
  79. 1 0
      script/research/lotterysim/log/darkie74.log
  80. 1 0
      script/research/lotterysim/log/darkie75.log
  81. 1 0
      script/research/lotterysim/log/darkie76.log
  82. 1 0
      script/research/lotterysim/log/darkie77.log
  83. 1 0
      script/research/lotterysim/log/darkie78.log
  84. 1 0
      script/research/lotterysim/log/darkie79.log
  85. 1 0
      script/research/lotterysim/log/darkie8.log
  86. 1 0
      script/research/lotterysim/log/darkie80.log
  87. 1 0
      script/research/lotterysim/log/darkie81.log
  88. 1 0
      script/research/lotterysim/log/darkie82.log
  89. 1 0
      script/research/lotterysim/log/darkie83.log
  90. 1 0
      script/research/lotterysim/log/darkie84.log
  91. 1 0
      script/research/lotterysim/log/darkie85.log
  92. 1 0
      script/research/lotterysim/log/darkie86.log
  93. 1 0
      script/research/lotterysim/log/darkie87.log
  94. 1 0
      script/research/lotterysim/log/darkie88.log
  95. 1 0
      script/research/lotterysim/log/darkie89.log
  96. 1 0
      script/research/lotterysim/log/darkie9.log
  97. 1 0
      script/research/lotterysim/log/darkie90.log
  98. 1 0
      script/research/lotterysim/log/darkie91.log
  99. 1 0
      script/research/lotterysim/log/darkie92.log
  100. 1 0
      script/research/lotterysim/log/darkie93.log

+ 4 - 4
script/research/lotterysim/core/constants.py

@@ -11,15 +11,15 @@ L = 2894802230932904885589274625217197696336305648194156071595467676434996763033
 F_MIN = 0.0001
 F_MAX = 0.9999
 
-REWARD_MIN = 0
-REWARD_MAX = 10
+REWARD_MIN = 1
+REWARD_MAX = 1000
 
 SLOT = 90
 ONE_YEAR = Num(365.25*24*60*60/SLOT)
 
-TARGET_APR = Num(0.1)
+TARGET_APR = Num(0.12)
 
-PRIMARY_REWARD_TARGET = 0.33 # ratio of staked tokens
+PRIMARY_REWARD_TARGET = 0.8 # staked ratio
 SECONDARY_LEAD_TARGET = 1 #number of lead per slot
 
 EPSILON = 1

+ 4 - 1
script/research/lotterysim/core/darkie.py

@@ -11,6 +11,7 @@ class Darkie():
         self.f = None
         self.epoch_len=epoch_len # epoch length during which the stake is static
         self.strategy = strategy
+        print('strategy type: {}'.format(strategy.type))
         self.slot = 0
         self.won_hist = [] # winning history boolean
 
@@ -96,5 +97,7 @@ class Darkie():
         with open('log/darkie'+str(idx)+'.log', 'w+') as f:
             buf = 'initial stake:'+','.join([str(i) for i in self.initial_stake])
             buf += '\r\n'
-            buf += 'staked ratio:'+','.join([str(i) for i in self.strategy.staked_tokens_ratio])
+            buf += '(apr,staked ratio,{}):'.format(self.strategy.type)+','.join(['('+str(apr)+','+str(sr)+')' for sr, apr in zip(self.strategy.staked_tokens_ratio, self.strategy.annual_return)])
+            buf+='\r\n'
+            buf += 'apr: {}'.format(self.apr_scaled_to_runningtime())
             f.write(buf)

+ 4 - 3
script/research/lotterysim/core/lottery.py

@@ -39,9 +39,9 @@ class DarkfiTable:
             f = self.secondary_pid.pid_clipped(float(feedback), debug)
 
             if count%EPOCH_LENGTH == 0:
-                acc = self.secondary_pid.acc_percentage()
-                #staked_ratio = self.avg_stake_ratio()
-                reward = self.primary_pid.pid_clipped(float(acc), debug)
+                #acc = self.secondary_pid.acc_percentage()
+                staked_ratio = self.avg_stake_ratio()
+                reward = self.primary_pid.pid_clipped(float(staked_ratio), debug)
                 self.rewards += [reward]
 
             #note! thread overhead is 10X slower than sequential node execution!
@@ -79,6 +79,7 @@ class DarkfiTable:
                     # resyncing depends on the random branch chosen,
                     # it's simulated by choosing first wining node
                     darkie_winning_idx = 0
+                    random.shuffle(self.darkies)
                     for darkie_idx in range(len(self.darkies)):
                         if self.darkies[darkie_idx].won_hist[resync_slot_id]:
                             darkie_winning_idx = darkie_idx

+ 23 - 26
script/research/lotterysim/core/strategy.py

@@ -6,9 +6,10 @@ class Strategy(object):
         self.epoch_len = epoch_len
         self.staked_tokens_ratio = [1]
         self.target_apy = TARGET_APR
+        self.annual_return = [0]
         self.type = 'base'
 
-    def set_ratio(self, slot, apy):
+    def set_ratio(self, slot, apr):
         return
 
     def staked_value(self, stake):
@@ -17,34 +18,27 @@ class Strategy(object):
 class Hodler(Strategy):
     def __init__(self, epoch_len):
         super().__init__(epoch_len)
-        self.type = 'holder'
+        self.type = 'hodler'
 
-    def set_ratio(self, slot, apy):
+    def set_ratio(self, slot, apr):
         if slot%self.epoch_len==0:
             self.staked_tokens_ratio += [1]
-
-class RandomStrategy(Strategy):
-    def __init__(self, epoch_len):
-        super().__init__(epoch_len)
-        self.type = 'random'
-
-    def set_ratio(self, slot, apy):
-        if slot%self.epoch_len==0:
-            self.staked_tokens_ratio += [random.random()]
+            self.annual_return +=[apr]
 
 class LinearStrategy(Strategy):
     def __init__(self, epoch_len=0):
         super().__init__(epoch_len)
         self.type = 'linear'
 
-    def set_ratio(self, slot, apy):
+    def set_ratio(self, slot, apr):
         if slot%self.epoch_len==0:
-            sr = Num(apy)/Num(self.target_apy)
+            sr = Num(apr)/Num(self.target_apy)
             if sr>1:
-                sr = 0
+                sr = 1
             elif sr<0:
                 sr = 0
             self.staked_tokens_ratio += [sr]
+            self.annual_return += [apr]
 
 
 class LogarithmicStrategy(Strategy):
@@ -52,38 +46,41 @@ class LogarithmicStrategy(Strategy):
         super().__init__(epoch_len)
         self.type = 'logarithmic'
 
-    def set_ratio(self, slot, apy):
+    def set_ratio(self, slot, apr):
         if slot%self.epoch_len==0:
-            apy_ratio = math.fabs(apy/self.target_apy)
+            apr_ratio = math.fabs(apr/self.target_apy)
             fn = lambda x: (math.log(x, 10)+1)/2 * 0.95 + 0.05
-            sr = Num(fn(apy_ratio) if apy_ratio != 0 else 0)
+            sr = Num(fn(apr_ratio) if apr_ratio != 0 else 0)
             if sr>1:
-                sr = 0
+                sr = 1
             elif sr<0:
                 sr = 0
             self.staked_tokens_ratio += [sr]
+            self.annual_return += [apr]
 
 class SigmoidStrategy(Strategy):
     def __init__(self, epoch_len=0):
         super().__init__(epoch_len)
         self.type = 'sigmoid'
 
-    def set_ratio(self, slot, apy):
+    def set_ratio(self, slot, apr):
         if slot%self.epoch_len==0:
-            #TODO should be abs?
-            apy_ratio = apy/self.target_apy
-            sr = Num(2/(1+math.pow(math.e, -4*apy_ratio))-1)
+            apr_ratio = apr/self.target_apy
+            sr = Num(2/(1+math.pow(math.e, -4*apr_ratio))-1)
             if sr>1:
-                sr = 0
+                sr = 1
             elif sr<0:
                 sr = 0
             self.staked_tokens_ratio += [sr]
+            self.annual_return += [apr]
 
 def random_strategy(epoch_length):
     rnd = random.random()
     if rnd < 0.25:
-        return RandomStrategy(epoch_length)
-    elif rnd < 0.5 and rnd >=0.25:
+        return Hodler(epoch_length)
+    elif rnd < 0.5 and rnd >= 0.25:
         return LinearStrategy(epoch_length)
+    elif rnd < 0.75 and rnd >= 0.5:
+        return LogarithmicStrategy(epoch_length)
     else:
         return SigmoidStrategy(epoch_length)

+ 26 - 5
script/research/lotterysim/discrete_instance.py

@@ -2,19 +2,21 @@ import os
 import numpy
 from core.strategy import *
 from core.lottery import *
+import matplotlib.pyplot as plt
+import scipy.stats as stats
+import math
 
 os.system("rm log/*_feedback.hist; rm log/*_output.hist")
 
 RUNNING_TIME = int(input("running time:"))
-
 NODES=100
 
 if __name__ == "__main__":
     egalitarian = ERC20DRK/NODES
     darkies = []
     for id in range(int(NODES)):
-      darkie = Darkie(random.gauss(egalitarian, egalitarian*0.1), strategy=random_strategy(EPOCH_LENGTH))
-      darkies += [darkie]
+        darkie = Darkie(random.gauss(egalitarian, egalitarian*0.1), strategy=random_strategy(EPOCH_LENGTH))
+        darkies += [darkie]
 
     #TODO try rpid with 0mint
     #darkies += [Darkie(0, strategy=LinearStrategy(EPOCH_LENGTH)) for _ in range(NODES)]
@@ -23,11 +25,30 @@ if __name__ == "__main__":
     for darkie in darkies:
         effective_airdrop+=darkie.stake
     print("network airdrop: {}, staked token: {}/{}% on {} nodes".format(airdrop, effective_airdrop, effective_airdrop/airdrop*100, len(darkies)))
-    dt = DarkfiTable(airdrop, RUNNING_TIME, CONTROLLER_TYPE_DISCRETE, kp=-0.010399999999938556, ki=-0.0365999996461878, kd=0.03840000000000491,  r_kp=0.17, r_ki=-0.09, r_kd=1.1)
+    dt = DarkfiTable(airdrop, RUNNING_TIME, CONTROLLER_TYPE_DISCRETE, kp=-0.010399999999938556, ki=-0.0365999996461878, kd=0.03840000000000491,  r_kp=0.13, r_ki=-0.5, r_kd=-0.5)
     for darkie in darkies:
         dt.add_darkie(darkie)
     acc, avg_apy, avg_reward, stake_ratio, avg_apr = dt.background(rand_running_time=False)
     sum_zero_stake = sum([darkie.stake for darkie in darkies[NODES:]])
     print('acc: {}, avg(apr): {}, avg(reward): {}, stake_ratio: {}'.format(acc, avg_apr, avg_reward, stake_ratio))
-    print('total stake of 0mint: {}, ration: {}'.format(sum_zero_stake, sum_zero_stake/ERC20DRK))
+    print('total stake of 0mint: {}, ratio: {}'.format(sum_zero_stake, sum_zero_stake/ERC20DRK))
     dt.write()
+    aprs = []
+    fortuners = 0.0
+    for darkie in darkies:
+        aprs += [float(darkie.apr_scaled_to_runningtime())]
+        if darkie.initial_stake[-1] - darkie.initial_stake[0] > 0:
+            fortuners+=1
+
+    print('fortuners: {}'.format(str(fortuners/len(darkies))))
+    # distribution of aprs
+    aprs = sorted(aprs)
+    mu = float(sum(aprs)/len(aprs))
+    shifted_aprs = [apr - mu for apr in aprs]
+    plt.plot([apr*100 for apr in aprs])
+    plt.title('annual percentage return, avg: {:}'.format(mu*100))
+    plt.show()
+
+    variance = sum(shifted_aprs)/(len(aprs)-1)
+    sigma = math.sqrt(float(variance))
+    print('mu: {}, variance: {}'.format(str(mu), str(variance)))

binární
script/research/lotterysim/img/apr_distribution.png


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie0.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie1.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie10.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie11.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie12.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie13.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie14.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie15.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie16.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie17.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie18.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie19.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie2.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie20.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie21.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie22.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie23.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie24.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie25.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie26.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie27.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie28.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie29.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie3.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie30.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie31.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie32.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie33.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie34.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie35.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie36.log


+ 3 - 0
script/research/lotterysim/log/darkie37.log

@@ -0,0 +1,3 @@
+initial stake:20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357875.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443,20357876.28893443
+(apr,staked ratio,logarithmic):(0,1),(0E+28,0),(0E+28,0),(0E+28,0),(0E+28,0),(0E+28,0),(0E+28,0),(0E+5,0),(0E+28,0),(0E+28,0),(0E+28,0),(0E+5,0),(0E+28,0),(0E+5,0),(0E+5,0),(0E+28,0),(0E+28,0),(0E+5,0),(0E+28,0),(0E+5,0),(0E+28,0),(0E+5,0),(0E+5,0),(0E+5,0),(0E+28,0),(0E+27,0),(0E+5,0),(0E+5,0),(0E+5,0),(0E+5,0),(0E+28,0),(0E+5,0),(0E+27,0),(0E+5,0),(0E+5,0),(0E+5,0),(0E+28,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+28,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+28,0),(0E+4,0),(0E+4,0),(0E+28,0),(0E+4,0),(0E+27,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+28,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+26,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+28,0),(0E+4,0),(0E+4,0),(0E+27,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+28,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0E+4,0),(0.0002002767599495885630787870747,0),(0.0001979747282260300738479964187,0),(0.0001957250154052797320997237321,0),(0.0001935258579288159148851200946,0),(0.0001913755706184957380530632047,0),(0.0001892725423699408398326998728,0),(0.0001872152321267893089649531350,0),(0.0001852021651146732948900611659,0),(0.0001832319293155810257954860471,0),(0.0001813031721648906992081651413,0),(0.0001794145974548397544247467544,0),(0.0001775649624295321280904710147,0),(0.0001757530750578022084160784533,0),(0.0001739777914713597618664210952,0)
+apr: 0.0005172312719418803731163870400

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie38.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie39.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie4.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie40.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie41.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie42.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie43.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie44.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie45.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie46.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie47.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie48.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie49.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie5.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie50.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie51.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie52.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie53.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie54.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie55.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie56.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie57.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie58.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie59.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie6.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie60.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie61.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie62.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie63.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie64.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie65.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie66.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie67.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie68.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie69.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie7.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie70.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie71.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie72.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie73.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie74.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie75.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie76.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie77.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie78.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie79.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie8.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie80.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie81.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie82.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie83.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie84.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie85.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie86.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie87.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie88.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie89.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie9.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie90.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie91.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie92.log


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 1 - 0
script/research/lotterysim/log/darkie93.log


Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů