Exercícios preliminares

"Os logaritmos permanecem importantes
para muitas aplicações científicas e técnicas."

— pérola do jornal O Estado de São Paulo
por volta de agosto de 1998

"But you know what I don't understand?"
To which David replies, "Logarithms?"
Then, reacting to Maddie's look: "What? You understood those?"

Moonlighting TV show

"The greatest shortcoming of the human race is
our inability to understand the exponential function."

Albert A. Bartlett, "Arithmetic, Population and Energy", YouTube video

 

 

O primeiro grupo de exercícios examina algumas funções elementares importantes para a análise de algoritmos.   O segundo grupo examina alguns algoritmos simples.  O terceiro trata de indução matemática e recursão.

Piso e teto

Veja as definições de piso e teto no dicionário.

  1. Mostre que, para qualquer número inteiro positivo n tem-se  (n−1)/2  ≤  ⌊n/2⌋  ≤  n/2 .
  2. Mostre que, para qualquer número inteiro positivo n tem-se  n/2  ≤  ⌈n/2⌉  ≤  (n+1)/2.
  3. Compare e critique as duas proposições a seguir. Proposição 1: "O candidato estará eleito se obtiver metade mais um dos votos válidos". Proposição 2: "O candidato estará eleito se obtiver mais da metade dos votos válidos".

Logaritmos

Explique o significado da expressão "log3/2 n".

Piso e teto de logaritmos

Veja a definição de lg n no dicionário.

  1. Prove ou desprove as seguintes conjeturas:  para todo inteiro positivo n,
  2. Prove ou desprove as seguintes conjeturas:  para todo inteiro positivo n,
  3. Prove ou desprove as seguintes conjeturas:  para todo natural não nulo n,

Inversas composicionais

Uma função g é inversa composicional de uma função f se f(g(n)) = g(f(n)) = n.  Em outras palavras,  y = f(x)  se e somente se  x = g(y).  Dê as inversas composicionais das funções  

n+7 ,  7n ,  n/5 ,  n7 ,  n1/7 ,  n−1 ,  n−7 .

Dê as inversas composicionais das funções  

7n ,  7log5n ,  75n ,  75n ,  7n2 ,  log5 n ,  log5 log7 n ,  (log5 n)2 .

Comparação de funções

Compare as funções n!, 2n e 2n².  Qual é a maior? Qual a menor?

Contagem de iterações

Quanto vale k no fim do seguinte procedimento?

. k ← 0
. para i ← 1 até n faça
.___ para ji até n faça
.______ kk+1

Contagem de iterações

Qual o valor de S no final de cada um dos fragmentos de código abaixo?

| . S ← 0
| . para i crescendo de 1 até n faça
| .___ para  j crescendo de 1 até i faça
| .______ SS+1
: . S ← 0
: . in
: . enquanto i > 0 faça
: .___ para  j ← 1 até i faça
: .______ SS+1
: .___ i ← ⌊i/2⌋
| . S ← 0
| . in
| . enquanto i > 0 faça
| .___ para  j crescendo de 1 até n faça
| .______ SS+1
| .___ i ← ⌊i/2⌋
: . S ← 0
: . para i ← 1 até n faça
: .___ ji
: .___ enquanto  j > 0 faça
: .______ SS + 1
: .______ j ← ⌊ j/2⌋

Intercalação de sequências ordenadas

Escreva um algoritmo iterativo para resolver o seguinte problema:

dado um vetor A[p..r] e um índice q tais que A[p..q] e A[q+1..r] estão em ordem crescente rearranjar o vetor A[p..r] de modo que ele fique em ordem crescente.

Para que valores de p, q e r o problema faz sentido?

Algoritmos equivalentes

Cada um dos algoritmos abaixo recebe um inteiro positivo e devolve outro inteiro positivo.  Os dois algoritmos são equivalentes:  devolvem o mesmo número se receberem um mesmo n.

Soma-Quadrados-A (n)
1 . x ← 0
2 . para  j crescendo de 1 até n faça
3 .___ xx + j · j
4 . devolva x
Soma-Quadrados-B (n)
1 . xn · (n+1) · (2n+1)
2 . xx/6
3 . devolva x

Digamos que uma operação aritmética é uma adição, subtração, multiplicação ou divisão.  Quantas operações aritméticas o primeiro algoritmo faz?  Quantas operações aritméticas o segundo algoritmo faz?  Qual dos dois algoritmos é mais eficiente?

Recursão

Escreva um algoritmo recursivo que encontre o valor de um elemento máximo de um vetor.

Inducão matemática

  1. Prove, por indução em k, que  20 + 21 + ··· + 2k  =  2k+1−1.
  2. Prove o seguinte fato por indução:  Para todo número natural não nulo n tem-se   12 + 22 + 32 + ··· + n2  ≤  n3.
  3. Prove o seguinte fato por indução:  Para todo número natural não nulo n tem-se   12 + 22 + 32 + ··· + n2  =  n (n+1) (2n+1)/6 .

Valid HTML 4.01 Strict Valid CSS!