Advertisement
dougbaker45

random.random

Aug 1st, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.23 KB | None | 0 0
  1. import csv
  2. import random
  3. from timeit import default_timer as timer
  4. start = timer()
  5. startnumtime = timer()
  6. numlist = [1]
  7. rolls = 0
  8. highroll = 0
  9. lowroll =None
  10. trolls = 0
  11. ttime = 0
  12. hightime = 0
  13. lowtime = None
  14. rdic = {}
  15. highkey = 0
  16. lowkey = None
  17. highvalue = 0
  18. lowvalue = None
  19. with open('randomcsv.csv', mode='w', newline='') as randomfile:
  20.     file_writer = csv.writer(randomfile, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
  21.     file_writer.writerow(['Key', 'Rolls', 'Start Time', 'End Time', 'Time', 'High Roll', 'Low Roll', 'Most Common Roll', 'Least Common Roll', 'High Key', 'Low Key'])
  22.     while numlist[-1] < 500:
  23.         rnum = random.randint(1, 1000000)
  24.         rolls += 1
  25.         if rnum in rdic:
  26.             rdic[rnum] += 1
  27.         else:
  28.             rdic[rnum] = 1
  29.         if rnum == numlist[-1]:
  30.             numlist.append(rnum + 1)
  31.             endnumtime = timer()
  32.             if rolls > highroll:
  33.                 highroll = rolls
  34.                 highrollnum = rnum
  35.                 highrollnumtime = (endnumtime - startnumtime)
  36.             if lowroll == None or rolls < lowroll:
  37.                 lowroll = rolls
  38.                 lowrollnum = rnum
  39.                 lowrollnumtime = (endnumtime - startnumtime)
  40.             if (endnumtime - startnumtime) > hightime :
  41.                 hightime = (endnumtime - startnumtime)
  42.                 hightimenum = rnum
  43.             if lowtime == None or (endnumtime - startnumtime) < lowtime :
  44.                 lowtime = (endnumtime - startnumtime)
  45.                 lowtimenum = rnum
  46.             for key in rdic:
  47.                 if key > highkey:
  48.                     highkey = key
  49.             for key in rdic:
  50.                 if lowkey == None or key < lowkey:
  51.                     lowkey = key
  52.             mostkey = max(rdic, key=rdic.get)
  53.             leastkey = min(rdic, key=rdic.get)
  54.             #inv = {v: k for k, v in rdic.items()}
  55.             #mostkeynum = max(inv, key=inv.get)
  56.             #leastkeynum = min(inv, key=inv.get)
  57.            # for key in inv:
  58.                 #if value > highvalue:
  59.                     #highvalue = value
  60.             #for key, value in rdic:
  61.                 #if lowvalue == None or key < lowvalue:
  62.                     #lowvalue = key
  63.             file_writer.writerow([rnum, rolls, startnumtime, endnumtime, (endnumtime - startnumtime), highkey, lowkey, mostkey, leastkey, highkey, lowkey])
  64.             trolls += rolls
  65.             ttime += (endnumtime - startnumtime)
  66.             startnumtime = timer()
  67.             highvalue = 0
  68.             lowvalue = None
  69.             rolls = 0
  70.             lowkey = None
  71.             #print('inv', inv)
  72.             #print('rdic', rdic)
  73.             highkey = 0
  74.             rdic.clear()
  75.             #inv.clear()
  76. end = timer()
  77. print(numlist)
  78. print('High Roll: ', highroll, ' | Low Roll: ', lowroll)
  79. print('trolls: ', trolls, 'averagerolls: ', (trolls / len(numlist)))
  80. print('Time: ', (end - start), ttime)
  81. print('lowrollnumtime: ', lowrollnumtime, ' | lowrollnum:', lowrollnum)  
  82. print('lowtime', lowtime, '| lowtimenum: ', lowtimenum)
  83. print('hightime', hightime, '| hightimenum: ', hightimenum)
  84. print('highrollnumtime: ', highrollnumtime, ' | highrollnum:', highrollnum)
  85. print('len', len(numlist))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement