Нужно запрограммировать функцию, которая вернёт True, если последовательность в списке является геометрической прогрессией, и False, если нет.
Подскажите, как сие чудо решить?
Denis_YakovenkoЧудо это ты :D
сие чудо
Denis_Yakovenko
BudulianinДело в том, что я уже читал эту статью, и не только её. Если бы я знал как решить или хотябы имел идею, я бы не просил помощи
2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192 — прогрессия со знаменателем 2 из тринадцати членов.
Своё название прогрессия получила по своему характеристическому свойству
def gprogrestion (lst): for x in lst: if x == int: lst[1]/lst[0] = n if lst[2] == lst[0]*n: return True else: return False
lst = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192] n = lst[1]/lst[0] start = lst[0] def get_progress(start, n): val = start while 1: val *= n yield val progress = get_progress(start, n) success = True for x in lst[1:]: if x != progress.next(): success = False break print success
lst = [2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192] l = lst[-1::-1] s = map(lambda x: x[0]/x[1], zip(*[iter(l)]*2)) if not len(lst): s += lst[0] print len(set(s)) == 1