Андрей
Высший разум
(435433)
3 недели назад
Это ошибка методологии. Точнее, вот этой строчки:
max_index = a.index(max_value)
В массиве a может быть несколько элементов с идентичным максимальным количеством элементов (и таких массивов у тебя примерно 8%). Но ты учитываешь только элемент с наименьшим индексом. Потому, получаешь статистически значимый перекос в сторону меньших чисел.
Этого перекоса не будет, если ты будешь учитывать все индексы элементов, содержащих максимальное количество вхождений, или только группы, содержащие единственный максимум.
import matplotlib.pyplot as plt
import random
ma0=0
ma1=0
ma2=0
ma3=0
ma4=0
ma5=0
ma6=0
ma7=0
ma8=0
ma9=0
for p in range (1,1000001):
k0=0
k1=0
k2=0
k3=0
k4=0
k5=0
k6=0
k7=0
k8=0
k9=0
a=[]
for i in range (1,1001):
n = random.randint(0, 9)
if n == 0:
k0+=1
if n == 1:
k1+=1
if n == 2:
k2+=1
if n == 3:
k3+=1
if n == 4:
k4+=1
if n == 5:
k5+=1
if n == 6:
k6+=1
if n == 7:
k7+=1
if n == 8:
k8+=1
if n == 9:
k9+=1
a = [k0,k1,k2,k3,k4,k5,k6,k7,k8,k9]
max_value = max(a)
max_index = a.index (max_value)
if max_index == 0:
ma0+=1
if max_index == 1:
ma1+=1
if max_index == 2:
ma2+=1
if max_index == 3:
ma3+=1
if max_index == 4:
ma4+=1
if max_index == 5:
ma5+=1
if max_index == 6:
ma6+=1
if max_index == 7:
ma7+=1
if max_index == 8:
ma8+=1
if max_index == 9:
ma9+=1
x = [0,1,2,3,4,5,6,7,8,9]
y = [ma0,ma1,ma2,ma3,ma4,ma5,ma6,ma7,ma8,ma9]
plt.plot(x,y,'ro')
plt.show()