Алгоритм вычисления значения функции 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]?
на питоне пж
Ответы на вопрос
Ответил stglupa
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))))
Новые вопросы
Русский язык,
2 года назад
Английский язык,
2 года назад
Литература,
6 лет назад
Математика,
8 лет назад