У меня 3 задачи на вычисление чисел фибоначи (Python). Очень нужно! И желательно с объяснением! Задача 1
#d - это база данных факториалов: число:факториал числа
d={1: 1, 2: 2, 3: 6, }
# функция поиска факториала через базу данных
def FactDict(n):
if n in d.keys():
return d[n]
else:
r=1
for i in range(1,n+1):
r=r*i
d.update({i:r})
return r
Пробовать реализовать ту же самую функцию, только так, чтобы в пункте ELSE обновлялась не вся база данных, а только нужный кусочек
Задача 2
Напиши рекурсивный поиск n-ного члена арифметической прогрессии
def Arif(a0,d,n):
...
'>>>' Arif(1,1,10)
'>>>' 10
Задача 3
Числа Фибоначчи определяются рекуррентным выражением, т.е. таким, что вычисление элемента которого выражается из предыдущих элементов:
F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2)
Написать рекурсивную функцию, которая находит n-ное по счёту число Фибоначчи. n-это число, которое вводит пользователь
Тесты :
F(5) выдает 5
F(6) выдает 8
F(7) выдает 13
N= 2^{i}
"N" - мощность алфавита.
информационный вес символа алфавита "i"
#1. N=2 в степени i
Так как N=32, отсюда следует, что i=5 битам.
#2. По аналогии выше. Только теперь N=8. А 8 - это 2 в степени 3.
то есть i=3. 3 бита.
#3. 64 символа. (смотреть задачу 1). 2 в 6 степени.
#4. Определим, сколько бит занимает все сообщение.
1/512 Мбайт = 1024/512 = 2 Кбайт. (1 Мбайт = 1024 Кбайт);
2 Кбайт = 2 * 1024 = 2048 байт (1 Кбайт = 1024 байт);
2048 байт = 2048 * 8 = 16384 бит.
Текст состоит из 2048 символов ⇒ занимает 16384 бит ⇒ один символ занимает 16384 : 2048 = 8 бит = 1 байт.
Если для хранения 1 символа алфавита используют 8 бит, согласно формуле (смотреть выше) 2 ^ 8 = 256 символов.
ответ: размер алфавита - 256 символов.
Объяснение:
Начнём мы с самых простых алгоритмов – линейных. Их составление, обычно, не вызывает особого труда. Однако, навыки составления таких алгоритмов чрезвычайно важны.
Пример 1. Составить алгоритм запуска программы Paint в ОС Windows 7.
Вспомним из курса информатики 5 класса порядок действий для запуска программы Paint.
Войти в меню «Пуск».
Войти в пункт «Все программы».
Войти в пункт «Стандартные».
Выбрать программу «Paint».
Данный алгоритм в виде блок-схемы имеет следующий вид:
Рис. 1. Блок-схема к примеру 1.
Составление алгоритмов с ветвлениями
Рассмотрим пример на составление алгоритмов с ветвлениями.
Пример 2. Составьте алгоритм для перехода дороги на светофоре.
Рис. 2. Светофор (Источник).
Возможны следующие ситуации: в тот момент, когда мы подошли к дороге горел красный или зелёный свет. Если горел зелёный свет, то можно переходить дорогу. Если же горел красный свет, то необходимо дождаться зелёного – и уже тогда переходить дорогу.
Таким образом, алгоритм имеет следующий вид:
Подойти к светофору.
Посмотреть на его свет.
Если горит зелёный, то перейти дорогу.
Если горит красный, то подождать, пока загорится зелёный, и уже тогда перейти дорогу.
Блок-схема данного алгоритма имеет вид:
Рис. 3. Блок-схема к примеру 2.
Составление циклических алгоритмов
Рассмотрим пример на составление циклического алгоритма. Мы уже несколько раз обсуждали перевод чисел из десятичной системы в двоичную. Теперь пришло время чётко сформулировать этот алгоритм.
Напомним, что его принцип состоит в делении числа на 2 и записей остатков, получающихся при делении.
Пример 3. Составить алгоритм перевода чисел из десятичной системы в двоичную.
То есть, алгоритм будет выглядеть так:
Если число равно 0 или 1, то это и будет его двоичное представление.
Если число больше 1, то мы делим его на 2.
Полученный остаток от деления записываем в последний разряд двоичного представления числа.
Если полученное частное равно 1, то его дописываем в первый разряд двоичного представления числа и прекращаем вычисления.
Если же полученное частное больше 1, то мы заменяем исходное число на него и возвращаемся в пункт 2).
Блок-схема этого алгоритма выглядит следующим образом:
Рис. 4. Блок-схема к примеру 3.
Примечание: подумайте, можно ли как-то упростить приведенную блок-схему.
«Чтение» алгоритмов
Пример 4. По заданной блок-схеме выполнить действия алгоритма для числа 23.
Рис. 5. Блок-схема к примеру 4.
a=23
23+5=28
28<35
28+5=33
33<35
33+5=38
38>35
76 – двузначное число
76-50=26.
ответ: 26.