Quantos números de CPF são possíveis? Quantos desses números terminam com o algarismo 9?
Soluções para a tarefa
Utilizando analise combinatória, temos que existem 10¹¹ CPFs possíveis diferentes e 10¹⁰ formas diferentes deles terminando com 9.
Explicação passo-a-passo:
Um número de CPF possui 11 espaços para digitos:
_ _ _ . _ _ _ . _ _ _ - _ _
Cada espaço pode comportar 10 digitos diferentes (de 0 a 9), então ao todo temos a multiplicação de 10 possibilidades 11 vezes, o que nso da:
C = 10¹¹
Assim temos 10¹¹ formas de ter CPFs diferentes.
Se quiser que o ultimo número seja 9, então teremos o ultimo valor fixo, sendo assim teremos somente 10 espaços, ou seja, teremos ao todo 10 ¹⁰ formas diferentes de CPF.
Resposta:
Primeiramente gostaria de esclarecer que não um intelectual na área de exatas, porém tenho uma grande simpatia com a mesma.
Então, não concordo com a resposta anterior, pois a pergunta não se refere a um número qualquer de 11 dígitos, mas sim a um CPF, e todo número de CPF precisa obedecer a um conjunto específico de regras. É possível consultar elas com facilidade na internet.
Enfim, para determinarmos quantos CPFs existem, acredito que bastaria realizar a combinação dos 9 dígitos (sem os dígitos verificadores) menos os cpfs inválidos (111.111.111-11, 222.222.222-22, etc)
Logo a quantidade de CPF existente seria 10^9 - 10 = 999.999.990
Agora para observarmos quantos cpfs terminam com 9:
Se observarmos a regra que calcula o último dígito verificador do CPF, temos que ele é determinado pelo resultado da seguinte operação:
(11*d1 + 10*d2 + 9*d3 + 8*d4 + 7*d5 + 6*d6 + 5*d7 + 4*d8 + 3*d9 + 2*d10) % 11
Onde: d1,d2,...,d10 são os dígitos do CPF
e % é a operação de módulo (resto da divisão)
Então, para determinar a quantidade possível de CPFs que terminam em 9 é necessário calcular a quantidade de soluções que satisfazem a seguinte equação linear:
(11*d1 + 10*d2 + 9*d3 + 8*d4 + 7*d5 + 6*d6 + 5*d7 + 4*d8 + 3*d9 + 2*d10) % 11 = 9
Lembrando que tendo em mãos a quantidade de soluções para o sistema linear acima, é necessário subtrair 1. (Por conta do CPF 999.999.999-99 que pelas regras, não é válido).
A equação acima pode ser reescrita como:
(11*d1 + 10*d2 + 9*d3 + 8*d4 + 7*d5 + 6*d6 + 5*d7 + 4*d8 + 3*d9 + 2*d10) = 11*X + 9.
(Onde X é um inteiro >= 0)
Que novamente pode ser reescrita como:
(11*d1 + 10*d2 + 9*d3 + 8*d4 + 7*d5 + 6*d6 + 5*d7 + 4*d8 + 3*d9 + 2*d10) - 11*X -9 = 0.
Porém, aí que complica as coisas, (ainda mais) o d10 da equação acima, não pode ser um número qualquer entre 0 a 9, mas sim um número que atenda a seguinte equação linear:
D10 = 10*d1 + 9*d2 + 8*d3 + 7+d4 + 5*d5 + 4*d6 + 3*d7 + 2*d9 % 11
Infelizmente hoje, eu não possuo a capacidade de resolver esse problema exceto utilizando um algoritmo de computador e realizando uma abordagem de força bruta (tentar todas as combinações possíveis e contabilizar a quantidade de CPFs possíveis que terminem em 9).
Caso alguém leia essa pergunta saiba como resolver, por favor nos avise. =)
Explicação passo-a-passo:
Não tenho =(
Porém, fiz a abordagem que citei acima de testar através de força bruta todas as combinações, usando um programa que escrevi (o código fonte pode ser encontrado no meu github, meu usuário é o mattvasc) e o resultado foi de 91.916.663 CPFs que terminam com o número 9.
Que se formos parar para analisar, é um número "próximo" de 10^9/10.