Найти - Пользователи
Полная версия: Легкая задача
Начало » Python для новичков » Легкая задача
1 2 3 4 5 6 7
Rodegast
> типа если 2 в 10 будет 1024 то в среднем нужно 1024 хода чтобы обойти 10-тиугольник.

Где я такое говорил?

> если ты счтитаешь что оно неверно, покажи конкретно где в коде ошибка

Читай внимательно.
http://python.su/forum/topic/37247/?page=5#post-202063

> Абстракция - это результат процесса абстрагирования. А процесс абстрагирования - это что?

https://ru.wikipedia.org/wiki/%D0%9C%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%B0%D0%B1%D1%81%D1%82%D1%80%D0%B0%D0%BA%D1%86%D0%B8%D1%8F
PEHDOM
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 у тебя, это даже не в разы, а на несколько порядков меньше.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB