Loading...
TodorKMitov avatar TodorKMitov 2 Точки

4. Tribonacci Sequence - hint моля

Здравейте! Някой решил ли е 4. Tribonacci Sequence от Functions More Exercises, и ако ДА, моля да сподели стартегия за решаване на тази задача. Не ми трябва код, просто подход към решението. Благодаря предварително!

Тагове:
0
Python Fundamentals
willystyle avatar willystyle 2472 Точки

Здрасти Тоше,

за задачите от този тип с редици за които n-тия член е някаква функция на предходните (най-често използвания пример е с редицата на Фибоначи) може да се подходи по два начина:
1) Итеративно (с цикли)

2) Рекурсивно, тук задължително се ползва мемоизация (пазене в речник(мап) на изчислените вече членове), понеже иначе е неефективно и ще излезеш от лимита за време.

Твърдиш, че не ти трябва код, но погледни на решенията като на псевдо код, понеже не ползвам Питон, ти пускам на JS и PHP (с двата вида подход), ако направиш рекурсивното решение на Питон, тъкмо ще разучиш и как се ползва там кложър :)

function solveIteractive(n) {
    let tribs = [1, 1, 2];
    if (n <= 3) {
        tribs = tribs.slice(0, n - 1);
    } else {
        for (let index = 3; index < n; index++) {
            tribs.push(tribs[index - 1] + tribs[index - 2] + tribs[index - 3]);
        }
    }
    console.log(tribs.join(' '));
}

function solveRecursive(n) {
    let tribs = [1, 1, 2];
    let result = [];
    for (let i = 0; i < n; i++) {
        result.push(findNth(i));

    }
    console.log(result.join(' '));

    function findNth(n) {
        if (n in tribs) return tribs[n];
        tribs[n] = findNth(n - 1) + findNth(n - 2) + findNth(n - 3);
        return tribs[n];
    }
}
<?php
function solve($n) {
    $tribs = [1, 1, 2];
    if ($n <= 3) {
        $tribs = array_slice($tribs, 0, $n);
    } else {
        for ($index = 3; $index < $n; $index++) {
            $tribs[] = $tribs[$index - 1] + $tribs[$index - 2] + $tribs[$index - 3];
        }
    }
    echo implode(' ', $tribs);
}

$n = intval(readline());
solve($n);

function solveRecursive($n) {
    $tribs = [1, 1, 2];
    $findNth = function ($n) use (&$findNth, &$tribs) {
        if (key_exists($n, $tribs)) return $tribs[$n];
        $tribs[$n] = $findNth($n - 1) + $findNth($n - 2) + $findNth($n - 3);
        return $tribs[$n];
    };

    $result = [];
    for ($i = 0; $i < $n; $i++) {
        $result[] = $findNth($i);

    }
    echo implode(' ', $result);

}

$n = intval(readline());
solveRecursive($n);

 

1
IvanNankov95 avatar IvanNankov95 8 Точки
number = int(input())

def tribonacci_sequence(def_num):
    sequence = [1]
    for i in range(1, def_num):
        if len(sequence) < 3:
            sequence.append(i)
        else:
            sequence.append(sum(sequence[-3:]))
    return ' '.join([str(num) for num in sequence])

print(tribonacci_sequence(number))

Едно семпло решение, дано помага.

0
vorcy avatar vorcy -1 Точки

There are many college paper help services out there, and it's important to choose the right one. You should always do your research and read reviews from other students before making a decision. It's also crucial to ensure that the service you choose has a strong reputation for delivering quality work. BestCustomWriting is a company I can vouch for. I don’t know exactly what kind of paper you need to do, but I ordered essays, research papers, and courseworks – all of them were of great quality.

-1
21/03/2023 08:12:04
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.