I made a Python script that simulates a dice and then calculates the relative frequency.
I thought, why not making it multithreaded? Now I'm stuck with the variables. If I run this, it's like the last thread overrides all other results, so it will run multithreaded but only the result of the last thread's taken. Modify the variable tries to your needs, it's set to 8 so you see that there were only 2 random numbers taken and calculated to percent at the end. Don't modify NrThreads, because it always starts 4.
import threading
import random
### CONFIGURE
tries=8
NrThreads=4
triesThread=round(round(tries)/4)
###\CONFIGURE
def ThreadCode():
global one
global two
global three
global four
global five
global six
one=0
two=0
three=0
four=0
five=0
six=0
for i in range(0, triesThread):
number=random.randint(1,6)
if (number == 1):
one=one+1
if (number == 2):
two=two+1
if (number == 3):
three=three+1
if (number == 4):
four=four+1
if (number == 5):
five=five+1
if (number == 6):
six=six+1
thread1 = threading.Thread(target=ThreadCode)
thread1.start()
print("Started thread")
thread2 = threading.Thread(target=ThreadCode)
thread2.start()
print("Started thread")
thread3 = threading.Thread(target=ThreadCode)
thread3.start()
print("Started thread")
thread4 = threading.Thread(target=ThreadCode)
thread4.start()
print("Started thread")
thread1.join()
thread2.join()
thread3.join()
thread4.join()
print("Number 1: ", one)
print("Number 2: ", two)
print("Number 3: ", three)
print("Number 4: ", four)
print("Number 5: ", five)
print("Number 6: ", six)
p1=one/tries
print("Probability for number 1: ", p1)
for i in ([one, two, three, four, five, six]):
print(i/tries," ", i/tries*100,"%")