O algoritmo de verificação dos bilhetes de identidade e o seguinte:
9x1+8x2+7x3+6x4+5x5+4x3+3x2+2x1+y=z
z:11
Simplificando (ou não...) o x1 representa o primeiro algarismo do numero do BI, o x2 o segundo, o x3 o terceiro e assim sucessivamente, o y representa o algarismo de controlo.
O algarismo de controlo é aquele número que está num quadradinho ao lado do número do bilhete de identidade, esse algarismo é que vai permitir confirmar a validade do número do BI. Ao contrario do que muitos pensam esse algarismo não informa sobre o número de pessoas que têm um nome igual ao nosso, é apenas um algarismo de controlo.
Portanto multiplicamos 9 ao primeiro algarismo, 8 ao segundo, 7 ao terceiro e por aí a diante, nos BIs com 7 algarismos deve-se multiplicar o primeiro algarismo por 8 em vez de 9, como se pode ver no exemplo abaixo.

(imagem tirada do site da spm)
Somamos, às somas dos resultados as multiplicações, o algarismo de controlo e ao resultado desta operação (z) dividimos onze. A divisão tem que dar resto de zero, caso contrario o número é falso.
Este algoritmo é perfeitamente normal, mas há um problema relacionado com o algarismo de controlo. O valor deste algarismo pode ir de 0 a 10, mas só se pode escrever um número no quadradinho, quando o algarismo vale 0 é o zero que está lá, quando vale 10 também é um zero que lá está, ou seja o problema é saber se, no caso das pessoas que têm um 0 como algarismo de controlo o problema está em saber se esse zero representa mesmo um zero ou se representa um dez.
No caso do ISBN (o código de identificação de livros) o algoritmo de verificação é semelhante ao do BI, mas no caso do ISBN não há problema com o algoritmo, pois foi adoptada uma boa solução: quando o número de controlo é zero é um zero que lá está, quando o número é dez, este está representado por X (dez em numeração romana) e assim não há enganos. As entidades que decidiram sobre que solução dar ao problema de "Como representar o número 10 com apenas um algarismo?" devem ter achado que as pessoas que tivessem um X se poderiam sentir descriminadas, mas de qualquer maneira podiam ter arranjado outra solução!
No caso do ISBN (o código de identificação de livros) o algoritmo de verificação é semelhante ao do BI, mas no caso do ISBN não há problema com o algoritmo, pois foi adoptada uma boa solução: quando o número de controlo é zero é um zero que lá está, quando o número é dez, este está representado por X (dez em numeração romana) e assim não há enganos. As entidades que decidiram sobre que solução dar ao problema de "Como representar o número 10 com apenas um algarismo?" devem ter achado que as pessoas que tivessem um X se poderiam sentir descriminadas, mas de qualquer maneira podiam ter arranjado outra solução!