Rodegast
Где я такое говорил?
ну вот же твой код:
Rodegast
Вот решение этой простенькой задачки.
def shagomer(n):
"""
Возвращает среднее количество шагов за которое можно обойти n-угольник
"""
res = 1
for x in range(n):
res *= 2
return res
проверяем:
print (shagomer(10))
>>>
1024
>>>
Rodegast
Читай внимательно.
http://python.su/forum/topic/37247/?page=5#post-202063
прочитал и я уже говорил что третий ход делать ненужно, так как фишка изначально стоит на одной вершине, и эту не нужно обходить.


Накой ей делать третий ход?
Но даже если мы предположим что вершина на которой фишка стоит изначально не считается обойденой, то это добавляет ровно 1 ход к всем элементам ряда
import random
def experiment(n):
#функция двигает фишку в случайном направлении по n угольнику пока не пройдет все вершины
variants = (-1, 1)
n_angle = [0 for x in range(n)]
count = 0
pos = 0
while 0 in n_angle:
pos += random.choice(variants)
if pos < 0: pos = n-1
if pos == n: pos = 0
n_angle[pos]= 1
count+=1
return count
def average_count(n, m):
# функция проводит m испытаний и выводит среднее значение
res_list =[]
for i in range(m):
res_list.append(experiment(n))
return sum(res_list)/m
m = 100000
for n in range(1, 13):
print('вершин:', n, 'ходов в среднем:' , average_count(n, m))
>>>
вершин: 1 ходов в среднем: 1.0
вершин: 2 ходов в среднем: 2.0
вершин: 3 ходов в среднем: 4.00415
вершин: 4 ходов в среднем: 6.99142
вершин: 5 ходов в среднем: 10.9834
вершин: 6 ходов в среднем: 16.01947
вершин: 7 ходов в среднем: 22.00067
вершин: 8 ходов в среднем: 28.97977
вершин: 9 ходов в среднем: 36.93102
вершин: 10 ходов в среднем: 45.92654
вершин: 11 ходов в среднем: 55.9826
вершин: 12 ходов в среднем: 66.77129
>>>
как видишь при 10-угольнике, всего 46 ходов против 1024 у тебя, это даже не в разы, а на несколько порядков меньше.