Предмет: Информатика,
автор: klopot543
Алгоритм вычисления значения функции F(n), где n – целое число, задан следующими соотношениями:
F(0) = 0
F(n) = F(n/2) + 3, при чётном n > 0
F(n) = 2·F(n - 1) + 1, при нечётном n > 0
Сколько различных значений может принимать функция F(n) при n, принадлежащих отрезку [1; 1000]?
на питоне пж
Ответы
Автор ответа:
1
def f(n):
if(n == 0):
return 0
if(n % 2 == 0):
return f(n // 2) + 3
return 2 * f(n - 1) + 1
a = set()
for i in range(1, 1001):
a.add(f(i))
print(len(a))
Ответ: 348
klopot543:
спасибо, а я вот так вот уже решил
if n==0:
return 0
if n>0 and n%2==0:
return f(n/2)+3
if n>0 and n%2==1:
return 2*f(n-1)+1
a=[]
for n in range (1, 1001):
a.append(f(n))
sorted_a=sorted(a)
print(len(list(set(sorted_a))))
Похожие вопросы
Предмет: Английский язык,
автор: YAriHkA
Предмет: Русский язык,
автор: YOUJEY
Предмет: Окружающий мир,
автор: 0Elena30
Предмет: Русский язык,
автор: isa40
Предмет: Обществознание,
автор: ffhh0099101