Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- import matplotlib.pyplot as plt
- from matplotlib.ticker import MaxNLocator
- from sklearn.neighbors import KernelDensity
- ax = plt.figure().gca()
- ax.xaxis.set_major_locator(MaxNLocator(integer=True))
- class Die():
- num_sides=6
- def roll(self):
- return np.random.randint(1,self.num_sides+1)
- # create two D6 dice
- die_1 = Die()
- die_2 = Die()
- die_3 = Die()
- die_4 = Die()
- # make some rolls, and store results in a list.
- results = []
- for roll_num in range(5000):
- result = die_1.roll() + die_2.roll()# + die_3.roll() + die_4.roll()
- results.append(result)
- # analyze the results.
- model = KernelDensity(bandwidth=2, kernel='gaussian')
- sample = np.array(results).reshape((len(results), 1))
- model.fit(sample)
- values = np.asarray([value for value in range(1, 14)])
- values = values.reshape((len(values), 1))
- probabilities = model.score_samples(values)
- probabilities = np.exp(probabilities)
- max_result = die_1.num_sides + die_2.num_sides# + die_3.num_sides + die_4.num_sides
- x_max = die_1.num_sides + die_2.num_sides# + die_3.num_sides + die_4.num_sides
- plt.hist(results, bins=np.arange(1, max_result+2)-.5, histtype = 'bar',
- rwidth=0.8, facecolor = 'gray', edgecolor="k", density=True)
- plt.plot(values[:], probabilities)
- plt.title("Dice Plot")
- plt.xlabel("Results")
- plt.ylabel("Density")
- plt.show()
- plt.hist(results, bins=np.arange(1, max_result+2)-.5, histtype = 'bar',
- rwidth=0.8, facecolor = 'gray', edgecolor="k")
- plt.title("Dice Plot")
- plt.xlabel("Results")
- plt.ylabel("Frequency")
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement