Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 June 17

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
итеративный алгоритм да, оптимальный.
а в примере наверное рекурсивный, и этот способ вычисления фибоначи часто дается в качестве примера рекурсии.
источник

z

zhdoon in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Я про итеративный Т.Ф. Предлагал алоцировать список на все n значений. Я думаю достаточно 3-х элементов в списке
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
погугли быстрое вычисление Фибоначчи, на википедии неплохая статья есть
источник

🎆И

🎆🎄🎁❄️ ͪ̽͛͂͒͂͋͑ͥ̐̚͟͞͠... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
zhdoon
смотрю лекции по Питону, Алгортмы.
по вычислению фибоначи, подскажите, алгоритм ниже, не более оптимален ?

def fib_fun2(n: int) -> int:
   assert isinstance(n, int), "Input variables should be int"
   fib = [0, 1, None]
   for k in range(2, n + 1):
       fib[2] = fib[0] + fib[1]
       fib[0] = fib[1]
       fib[1] = fib[2]
       print(fib, ' fib[]:::', fib[2])
   return fib[2]


b = fib_fun2(10)
print(b)
это питон?
источник

z

zhdoon in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
python 3.8
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
zhdoon
Я про итеративный Т.Ф. Предлагал алоцировать список на все n значений. Я думаю достаточно 3-х элементов в списке
список в целом не обязателен, две переменные - current и previous. а для быстрого вычисления там всяких миллионных чисел Фибоначчи стоит использовать матричное возведение в степень, но это только если действительно нужны огромные числа или просто побаловаться хочется
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
итеративный метод кодворсеры любят редюсом в одну строчку писать)
источник

z

zhdoon in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
это больше вопрос к Т.Ф. когда я смотрел его лекции, и он заговорил об оптимизицаии, внедряя список во всю длину искомого числа, у меня сразу вставл вопрос, зачем так оптимизировать? в академических целях скорей всего.
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
конечно в академических. так формула явно вырисовывается. студент открывает код и видит
fib[n] = fib[n - 1] + fib[n - 2]
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
хмг, а как "просто" возведение матрицы в степень сделать?
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
допустим в милионную степень
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
можно её хранить не как матрицу, а как отдельные 4 переменные. плюс в numpy есть matrix и соответствующие методы
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
я про алгоритмы
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
а.... разложение миллиона на множители. тогда можно кол-во операций сократить.
вот для миллиона можно возвести в десятую степень и три раза получившуюся "десятую степень" умножить на себя, получается 10+3 операции возведения в степень
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
да, но в ссылке что я скинул там довольно тупое решение за логарифмическую скорость, его конечно можно улучшить
источник

НП

Нехристь Пендостанск... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кто то может мне объяснить почему в этом моменте сравнивается кол-во всех возможных чисел + кол-во предложенных чисел.

Почему не просто всех?
источник

AA

AА AА in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Циклом, видимо
источник

VV

V V in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Уже решил
источник
2020 June 18

T

Tannitta in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Нехристь Пендостанский
Кто то может мне объяснить почему в этом моменте сравнивается кол-во всех возможных чисел + кол-во предложенных чисел.

Почему не просто всех?
Игра у них такая. Нужно знать количество угаданных Беатрис чисел, если оно меньше или равно половине, то Артур говорит нет.
источник