sábado, 6 de abril de 2013

MO417 - QUESTÃO PARA A PROVA ORAL

Número:

Enunciado: No desenvolvimento de um programa estatístico, um programador deparou-se com a necessidade de somar os fatoriais de dois números m e n (i.e. efetuar m! + n!). Como uma primeira solução, ele resolveu utilizar sua velha função CALCULA_FATORIAL(n), aplicando-a dentro do procedimento CALCULA_SOMA_FATORIAIS(m, n):
01. CALCULA_FATORIAL(n) // n é um número natural
02.    se n <= 1
03.       retorna 1
04.    senão retorna CALCULA_FATORIAL(n - 1) * n

01. CALCULA_SOMA_FATORIAIS(m, n) // m e n são números naturais

02.    retorna CALCULA_FATORIAL(m) + CALCULA_FATORIAL(n)
Após uma revisão de código, outro programador decidiu modificar o programa, abrindo mão da função CALCULA_FATORIAL(n). Para tanto, ele propôs o novo procedimento:
01. CALCULA_SOMA_FATORIAIS_MODIF(m, n) // m e n são números naturais
02.    f = novo arranjo[0..max(m, n)]
03.    // f é um arranjo de 0 a m ou n, o maior dos dois
04.    f[0] = f[1] = 1
05.    para i = 2 até max(m, n)
06.       f[i] = f[i - 1] * i
07.    retorna f[m] + f[n]
Sobre esta situação, considere as seguintes afirmativas:
  • I. O procedimento CALCULA_SOMA_FATORIAIS(m, n) realiza m + n - 2 multiplicações, para m e n maiores que zero.
  • II. O procedimento CALCULA_SOMA_FATORIAIS(mn) realiza k multiplicações, com k = Θ(m) + Θ(n).
  • III. O procedimento CALCULA_SOMA_FATORIAIS_MODIF(m, n) realiza max(m, n) - 1 multiplicações, para m e n maiores que zero.
  • IV. O procedimento CALCULA_SOMA_FATORIAIS_MODIF(mn) realiza k multiplicações, com k = Θ(max(m, n)).
  • V. Dado que o número de multiplicações realizadas por CALCULA_SOMA_FATORIAIS(mn) e CALCULA_SOMA_FATORIAIS_MODIF(mné linear com relação aos módulos de m e n, não faz qualquer diferença utilizar um ou outro procedimento.
Escolha a alternativa CORRETA:
  1. Todas as afirmativas são verdadeiras.
  2. Apenas as afirmativas I e II são verdadeiras.
  3. Apenas as afirmativas III e IV são verdadeiras.
  4. Apenas a afirmativa V é falsa.
  5. N.D.A.
Ideia original de: Daniel Henriques Moreira

Nenhum comentário:

Postar um comentário