Estoy jugando con .NET BigInteger y básicamente me pregunto qué número, una respuesta estimada, estaría bien, es el punto de desviación de la curva de (la gráfica de (aumento del tiempo requerido para las operaciones) vs (valor de BigInteger))?
¿o están diseñados sin tal desviación de modo que si graficamos el aumento de tiempo requerido para las operaciones frente al valor de BigInteger de 1 a infinito, tendremos una curva suave en todo momento?
por ejemplo, suponiendo que las matrices están diseñadas con la capacidad de manejar 50 artículos. Esto significa que si tengo 1 elemento, las operaciones son f (1) tiempo. y cuando tengo 2 artículos, las operaciones son f (2) tiempo. Si tengo 50 artículos, las operaciones son f (50) tiempo. pero como está diseñado para manejar solo 50 artículos, las operaciones que se realicen cuando tengamos 51 artículos serán g (51) donde g (51)> f (51).
Si se implementa correctamente, la complejidad de la aritmética BigInteger debería ser una curva suave. Por ejemplo, la complejidad temporal de la multiplicación debe ser O (NM) donde N es el número de dígitos en el primer multiplicando y M es el número de dígitos en el segundo multiplicando. Por supuesto, hay límites prácticos en el sentido de que puede elegir N y M tan grandes que los números no caben en su máquina.
¿Hay alguno / alguien sabe de algún documento que afirme que se implementa como tal?