Estou brincando com o .NET BigInteger e, basicamente, estou imaginando qual número - uma resposta estimada seria boa - é o ponto de desvio da curva de (o gráfico de (aumento do tempo necessário para operações) vs (valor de BigInteger))?
ou eles são projetados sem esse desvio, de modo que, se traçarmos o aumento do tempo necessário para operações versus o valor do BigInteger de 1 até o infinito, teremos uma curva suave por todo o caminho?
por exemplo, supondo que matrizes sejam projetadas com capacidade de lidar com 50 itens. isso significa que se eu tiver 1 item, as operações serão f (1) time. e quando eu tiver 2 itens, as operações serão f (2) time. se eu tiver 50 itens, as operações são f (50). mas como ele foi projetado para lidar apenas com 50 itens, as operações realizadas quando tivermos 51 itens serão g (51) onde g (51)> f (51).
Se implementada corretamente, a complexidade da aritmética do BigInteger deve ser uma curva suave. Por exemplo, a complexidade temporal da multiplicação deve ser O (NM), onde N é o número de dígitos no primeiro multiplicando e M é o número de dígitos no segundo multiplicando. É claro que existem limites práticos em que você pode escolher N e M tão grandes que os números não cabem em sua máquina.
Existe / alguém conhece algum documento alegando que ele foi implementado como tal?