Pular para o conteúdo
Todos os conceitos

Padrões e sequências

Achar a regra que explica todos os termos de uma sequência e usá-la para prever o próximo.

Uma sequência esconde uma regra, e a regra certa explica todos os termos, não só os primeiros. O método é testar ideias simples, uma de cada vez, e conferir com a sequência inteira.

Perguntas que costumam revelar a regra:

Pergunta Exemplo Regra
Qual a diferença entre vizinhos? 5, 8, 11, 14 soma 3
E a diferença das diferenças? 1, 3, 7, 13 (diferenças 2, 4, 6) as diferenças crescem de 2 em 2
Um é múltiplo do anterior? 3, 6, 12, 24 dobra
Depende dos dois anteriores? 1, 1, 2, 3, 5 soma os dois anteriores
Depende da posição n? 1, 4, 9, 16 n x n
Não é conta? 1, 11, 21, 1211 descreve o termo anterior em voz alta

Exemplo trabalhado. Em 3, 7, 15, 31, as diferenças são 4, 8, 16: dobram. Testando "o anterior vezes 2, mais 1": 3 x 2 + 1 = 7, 7 x 2 + 1 = 15, 15 x 2 + 1 = 31. Explica tudo, então o próximo é 31 x 2 + 1 = 63. Em Python, para conferir uma regra em todos os termos de uma vez:

s = [3, 7, 15, 31]
all(s[i+1] == 2*s[i] + 1 for i in range(len(s) - 1))  # True
a regra x 2 + 1 x 2 + 1 x 2 + 1 x 2 + 1 3 7 15 31 63 o próximo diferenças 4 8 16 dobram x 2 x 2
Em 3, 7, 15, 31 as diferenças dobram (4, 8, 16), e a regra vezes 2 mais 1 explica cada vizinho; usada mais uma vez, ela prevê o próximo, 63.

Isso importa em segurança porque tudo que é previsível pode ser atacado: senhas que seguem um padrão, números de pedido que crescem de um em um, códigos de recuperação gerados por uma regra simples. Quem acha a regra adivinha o próximo valor.

Aparece nestes desafios