Discrepo. El control de errores no es exacto al 100% nos avisa de un error real pero hay un porcentaje de falsos positivos que se cuela. Esta orientado a minizar el impacto de los errores humanos y dicho error se trata como aceptable.
Si tiene la cuenta ES45 xxxx yyyy 21zz zzzz zzzz sabes que los codigos de control deben ser 45 y 21 y si pones otros diferentes salta el error. Esto quiere decir, o bien te has equivocado en el numero de cuenta y/o en algun digito de control.
F1(xxxx yyyy zz zzzz zzzz)=21
F2(xxxx yyyy 21zz zzzz zzzz)=45
Si al resolver F1 o F2 difieren sobre los codigos de control escritos hay un error. Es un hecho real al 100% y no discutible. las funciones matematicas con la misma entrada no pueden dar mas de una salida, que debe ser la misma. Pero si dan 21 o 45 no es una certeza de que sea correcto. Piensa en la cuenta y en la cantidad de cuentas que puedes crear cambiando un solo digito.... son muchas, no, diria que muchisimas? bastante mas que 10.000... por tanto probablemente algunas van a repetir ese 21 o 45
Si tienes otra cuenta muy similar excepto en esa (F) ES?? xxxx yyyy ??zz Fzzz zzzz quien te dice que los codigos de control reales no sean 45 y 21 como en el caso anterior? Es decir, estamos ante una cuenta real o estamos frente a un desliz del teclado? los codigos de control al ser iguales los calculados y escritos no nos pueden ayudar a discernir... a priori no lo sabemos ya que desconocemos lo que pretendia introducir un humano y no podemos comparar. Solo sabemos que las funciones dan lo esperado.
Sin conocer las distribucion de las funciones que generan los digitos de control tenemos 10.000 posilibilidades 100*100. Lo mas normal es que si hay un fallo al teclear pertenezca al conjunto de las 99.999 (y sean codigos distintos de 45 o AB) pero hay 1 posibilidad de que coincida con 45 y AB pasando ese error desapercibido.
Lo mas normal es que quien haya creado las funciones lo haga de forma que conlleven aparejada cierta mecanica para que cuentas de entrada muy similares den resultados distintos... aumentando la fiabilidad del proceso de comprobacion.. pero eso es lo deseable, a lo que se aspira. Si tenemos un conjunto de entrada de cuentas con 20 digitos y queremos transcribirlo a una cifra de 4 digitos, esta claro que va a ver subconjuntos donde muchas cuentas tienen los mismos codigos de control, la calidad de esas funciones consiste en agrupar en cada subconjunto cuentas que no se parezcan mucho unas a otras.