Professional Documents
Culture Documents
values = np.random.uniform(0, 1, n)
values = sorted(values)
return values[a - 1]
def geometricP(p):
"""pascal method"""
k = 1
j = 0
x = 0
while True:
y = np.random.binomial(k, p)
if y == 0:
x = x + 1
else:
j = j + 1
if j == k:
break
return x
def geometricI(p):
"""inverse method"""
q = 1 - p
u = np.random.uniform(0, 1, 1)[0]
x = math.ceil(np.log2(u) / np.log2(q)) - 1
return x
def stats1(numbers):
"""media de selectie di dispersia de selectie"""
avg = sum(numbers) / len(numbers)
dispersion = 0
for n in numbers:
dispersion += (n - avg) ** 2
dispersion /= (len(numbers) - 1)
betaNumbers1 = []
betaNumbers2 = []
a = 3
b = 5
for i in range(0, 10000):
betaNumbers1.append(beta1(a, b))
betaNumbers2.append(beta2(a, b))
print("Distributia beta")
print("metoda 1: ", stats1(betaNumbers1))
print("metoda 2: ", stats1(betaNumbers2))
print("teoretic: ({}, {})".format(a / (a + b), (a * b) / (((a + b) ** 2) * (a +
b + 1))))