Расчет по алгоритму - PullRequest
       0

Расчет по алгоритму

2 голосов
/ 12 января 2012

Извините, я не мог придумать хорошего названия.

Я работаю над упражнением, связанным с ИКТ, и наткнулся на это:

Рассчитайте alg a(n) и alg b(n) для n =1,2,3,4 и 5

(a)
    alg_a(n):result
    if n > 1 then
    return(alg_a(n−1)+alg_a(n−1))
    else return(1)

(b)
    alg_b(n):result
    if n > 1 then
    return(2 · alg_b(n−1))
    else return(1)

Во-первых, что делает код в строке 1 (alg_a(n):result)?

A: Вопрос просит меня вычислитьa (n), так скажем, я вставляю 1, if n > 1 --> no --> return 1.Но что происходит, когда я вставляю n = 2.

Любая помощь приветствуется,

спасибо!

Ответы [ 2 ]

6 голосов
/ 12 января 2012

алгоритм alg_a (n) вычисляет 2 ^ (n-1), а alg_b (n) делает то же самое.Эти рекурсивные функции.Например, для 4 alg_a возвращает:alg_a (4) =alg_a (3) + alg_a (3) =alg_a (2) + alg_a (2) + alg_a (2) + alg_a (2) =alg_a (1) + alg_a (1) + alg_a (1) + alg_a (1) + alg_a (1) + alg_a (1) + alg_a (1) + alg_a (1) = 8

3 голосов
/ 12 января 2012

Это не код, это какая-то форма псевдокода. «Результат» работы просто означает, что то, что следует, является результатом функции. Таким образом, alg_a(1) дает вам результат 1, тогда как alg_a(2) дает вам результат (alg_a(1) + alg_a(1)), то есть 2. Продолжайте получать другие ответы.

В данном случае вопрос не требует ничего более сложного, чем числовые ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...