Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/353: Рейтинг темы: голосов - 353, средняя оценка - 4.80
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
1

Числа Трибоначчи

24.11.2018, 19:33. Показов 70083. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
Числа Трибоначчи — это последовательность целых чисел, которая определяется так:

первое, второе и третье числа Трибоначчи равны единице;
каждое следующее число Трибоначчи равно сумме трёх предыдущих.
В общем, почти как числа Фибоначчи.

Напишите программу, которая вычисляет числа Трибоначчи.

Формат ввода
Вводится одно натуральное число N (N <= 75).

Формат вывода
Выводятся первые N чисел Трибоначчи.

Пример
Ввод Вывод
6
1 1 1 3 5 9

Код для чисел Фибоначчи есть, а для Трибоначчи не могу написать...
Вот Фибоначчи:

Python
1
2
3
4
5
6
7
8
limit = int(input())
old_fib = 1
current_fib = 1
while old_fib <= limit:
    print(old_fib)
    new_fib = old_fib + current_fib
    old_fib = current_fib
    current_fib = new_fib
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.11.2018, 19:33
Ответы с готовыми решениями:

Ряд Трибоначчи
Оказывается, что в дополнение к ряду Фибоначчи существует ещё и ряд Трибоначчи, который начианется...

Числа Трибоначчи через рекурсию
Я знаю это глупо спрашивать, но все же как написать

Вычислить к-ую цифру числа Трибоначчи
Всем привет! Нужно найти к-ую цифру числа Трибоначчи. Число Трибоначчи это как...

Фибоначчи-Трибоначчи
Ребята, подсобите немного, если не сложно. Требуется для вводимого числа построить значения...

9
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
24.11.2018, 20:41 2
Лучший ответ Сообщение было отмечено PythonistAlex как решение

Решение

Python
1
2
3
4
5
limit = int(input())
a = [1,1,1]
for _ in range (limit-3):
    a.append(sum(a[-3:]))
print(*a)
5
82 / 7 / 1
Регистрация: 10.11.2018
Сообщений: 53
25.11.2018, 12:07  [ТС] 3
Код не доработан - программа правильная и работает, но выводит не то, что надо, а три раза правильный результат.
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
25.11.2018, 13:05 4
Лучший ответ Сообщение было отмечено PythonistAlex как решение

Решение

Python
1
2
3
4
5
6
7
8
9
10
11
# По умолчанию генерирует последовательность https://oeis.org/A000073
def createTribonacci(limit, init=(2, 0, -1, 1)):
    a, b, c, d = init
    for _ in range(limit):
        a, b, c, d = b, c, d, 2*d - a
        yield d 
 
limit = int(input())
 
gen = createTribonacci(limit, init=(-3, 1, 1, -1))
print(*gen)
2
202 / 89 / 15
Регистрация: 27.07.2018
Сообщений: 323
25.11.2018, 20:34 5
Лучший ответ Сообщение было отмечено PythonistAlex как решение

Решение

PythonistAlex,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
cout = 0
prev1 = 1
prev2 = 1
prev3 = 1
now = prev1 + prev2 + prev3
a = int(input())
if a == 1:
    print(prev1)
    cout += 1
elif a == 2:
    print(prev1)
    cout += 1
    print(prev2)
    cout += 1
else:
    print(prev1)
    cout += 1
    print(prev2)
    cout += 1
    print(prev3)
    cout += 1
while True:
    if a == 1:
        break
    elif a == 2:
        break
    elif a == 3:
        break
    print(now)
    cout += 1
    if cout >= a:
        break
    prev1 = prev2
    prev2 = prev3
    prev3 = now
    now = prev1 + prev2 + prev3
Вот для тебя скорее всего более понятный вариант!
Если помог, не забудь нажать "Спасибо", отметить как лучший.
2
4937 / 3290 / 1140
Регистрация: 21.03.2016
Сообщений: 8,071
26.11.2018, 11:41 6
Цитата Сообщение от PythonistAlex Посмотреть сообщение
что надо, а три раза правильный результат
скрин можно? у меня один раз выводит
Python
1
2
3
4
5
6
7
6
1 1 1 3 5 9
>>> 
================ RESTART: C:\Users\python\test.py ================
8
1 1 1 3 5 9 17 31
>>>
0
Эксперт С++
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
26.11.2018, 14:39 7
Semen-Semenich, только при N=1 или 2 выводит лишнее.
0
0 / 0 / 0
Регистрация: 20.10.2015
Сообщений: 12
29.12.2020, 01:05 8
Python
1
2
3
4
5
6
7
8
9
def tribonacci(param):
    f1,f2,f3 = 0,0,1
    for i in range(param):
        f1,f2,f3 = f2,f3,f1+f2+f3
        yield f1
 
f = tribonacci(10)
for i in range(10):
    print(next(f))
0
710 / 349 / 120
Регистрация: 09.12.2020
Сообщений: 919
08.03.2021, 17:49 9
Python
1
2
3
4
5
6
7
8
fst = [1, 1, 1]
a = int(input())
for i in range(a):
    answ = fst[0] + fst[1] + fst[2]
    print(fst[0])
    fst[0] = fst[1]
    fst[1] = fst[2]
    fst[2] = answ
0
0 / 0 / 0
Регистрация: 10.09.2021
Сообщений: 1
10.09.2021, 16:35 10
Python
1
2
3
4
5
6
7
8
9
10
result = [1, 1, 1]
 
limit = 10
 
while 1:
    if len(result) >= limit:
        break
    new = sum(result[-3:])
    result.append(new)
print(result)
0
10.09.2021, 16:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.09.2021, 16:35
Помогаю со студенческими работами здесь

Последовательность чисел трибоначчи задается рекуррентным соотношением
Задание 5. Последовательность чисел трибоначчи задается рекуррентным соотношением: F(1) = 0 F(2)...

Функция возвращающая значение элемента последовательности Трибоначчи
Создайте функцию, которая принимает в качестве аргумента целое число и возвращает значение элемента...

Вывод на экран первых 25-ти членов последовательности Трибоначчи
Числа Трибоначчи — элементы числовой последовательности в которой каждое последующее число равно...

Опеределить младшую (правую) десятичную цифру в числе трибоначчи с номером 20142015
Числа трибоначчи – элементы числовой последовательности 0, 0, 1, 1, 2, 4, 7, 13, 24, 44, 81, 149,...

Создать базовый класс для генерации последовательностей чисел и 3 дочерних: Фибоначчи, трибоначчи и Люка
Ребята - программисты помогите пожалуйста. Нужно сделать программу, в которой будет базовый класс...

Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru