Вероятность попасть в [middle_value-sigma*1.07;middle_value+sigma*1.07] ~ 70%
Мат. ожидание: 0.5 СКО: 1000000
Всего опытов: 1000000
0 одинаковых событий подряд : 0
1 одинаковых событий подряд : 57703
2 одинаковых событий подряд : 41528
3 одинаковых событий подряд : 29615
4 одинаковых событий подряд : 21259
5 одинаковых событий подряд : 15094
6 одинаковых событий подряд : 10851
7 одинаковых событий подряд : 7837
8 одинаковых событий подряд : 5482
9 одинаковых событий подряд : 4022
10 одинаковых событий подряд : 2841
11 одинаковых событий подряд : 2054
12 одинаковых событий подряд : 1476
13 одинаковых событий подряд : 1040
14 одинаковых событий подряд : 737
15 одинаковых событий подряд : 531
16 одинаковых событий подряд : 332
17 одинаковых событий подряд : 318
18 одинаковых событий подряд : 213
19 одинаковых событий подряд : 139
20 одинаковых событий подряд : 116
21 одинаковых событий подряд : 78
22 одинаковых событий подряд : 45
23 одинаковых событий подряд : 40
24 одинаковых событий подряд : 21
25 одинаковых событий подряд : 15
26 одинаковых событий подряд : 17
27 одинаковых событий подряд : 5
28 одинаковых событий подряд : 7
29 одинаковых событий подряд : 7
30 одинаковых событий подряд : 4
31 одинаковых событий подряд : 5
32 одинаковых событий подряд : 3
33 одинаковых событий подряд : 4
34 одинаковых событий подряд : 2
Код:
import random
max_list = []
times_count = 1000000 # число подходов
try_count = 1000000 # число попыток в подходе
# просто комментарий
maxcount = 0
count = 0
for i in range(times_count):
middle_value = 0.5 # центральное значение случайной величины
sigma = 1000000 # стандартное отклонение случайной величины
roll = random.normalvariate(middle_value, sigma)
roll_low_limit = middle_value - sigma * 1.07
roll_high_limit = middle_value + sigma * 1.07
if roll > roll_low_limit and roll < roll_high_limit: # если не вышли за +-sigma * 1.07
count += 1 # неудача
else: # удача
if maxcount < count:
maxcount = count
count = 0
if maxcount:
max_list.append(maxcount)
maxcount=0
# print("неудач подряд:", maxcount)
pass
max_no_success = max(max_list)
print('Вероятность попасть в [middle_value-sigma*1.07;middle_value+sigma*1.07] ~ 70%')
print('Мат. ожидание: ', middle_value, 'СКО: ', sigma)
print('Всего опытов:', try_count)
# print('Количество попыток в опыте: ', try_count)
for i in range(max_no_success):
print('%d одинаковых событий подряд : %d ' %
(i, max_list.count(i)))
Как всегда - спасибо:)