Considere o seguinte algoritmo:
Este algoritmo é interrompido para algum valor de
?. Justifique sua resposta.
Passo 1
Beleza, vamos dar uma olhada nesse exercício. A gente tem um algoritmo que começa com ε igual a 1 e, em cada passo, divide ε por 2. Depois, verifica se
é maior que 1. Se for, ele incrementa
e repete o processo. Se não, ele para e imprime
e
. Nosso objetivo é descobrir se esse algoritmo vai parar em algum valor de
.
Passo 2
Primeiro, vamos entender o que o algoritmo faz passo a passo. Começa com
. Em seguida, para cada
:
- Divide
por 2: . - Verifica se
: - Se for verdade, incrementa
e volta ao passo 3. - Se não for, para e imprime
e .
- Se for verdade, incrementa
Passo 3
Agora, vamos pensar sobre a condição
. Matemática pura diz que qualquer número positivo
sempre fará com que
seja maior que 1. Isso porque estamos adicionando um número positivo a 1, então o resultado sempre vai ser maior que 1.
Passo 4
O que acontece no algoritmo é que
é continuamente dividida por 2. Mas, como estamos trabalhando com números reais, não importa quão pequeno
fique, ele nunca vai ser exatamente zero. Sempre vai ter algum valor positivo, por menor que seja.
Passo 5
Como resultado, a condição
nunca vai ser falsa enquanto
for maior que zero. Ou seja, o algoritmo nunca vai chegar no ponto de imprimir
e
. Ele vai continuar dividindo
por 2 e incrementando
para sempre.
Resposta
Não, o algoritmo nunca é interrompido para nenhum valor de
.