Je joue avec le .NET BigInteger et, fondamentalement, je me demande quel nombre - une réponse estimée serait bien - est le point de déviation de la courbe de (le graphique de (augmentation du temps requis pour les opérations) vs (valeur de BigInteger))?
ou sont-ils conçus sans un tel écart de telle sorte que si nous traçons l'augmentation du temps requis pour les opérations par rapport à la valeur de BigInteger de 1 à l'infini, nous aurons une courbe lisse tout le long?
par exemple, en supposant que les tableaux sont conçus avec une capacité de gérer 50 éléments. cela signifie que si j'ai 1 article, les opérations sont f (1) fois. et quand j'ai 2 articles, les opérations sont temps f (2). si j'ai 50 articles, les opérations sont de temps f (50). mais comme il est conçu pour gérer seulement 50 éléments, les opérations effectuées lorsque nous avons 51 éléments seront g (51) où g (51)> f (51).
Si elle est correctement mise en œuvre, la complexité de l'arithmétique BigInteger doit être une courbe lisse. Par exemple, la complexité temporelle de la multiplication doit être O (NM) où N est le nombre de chiffres dans le premier multiplicande et M est le nombre de chiffres dans le second multiplicande. Bien sûr, il existe des limites pratiques en ce sens que vous pouvez choisir N et M si grands que les nombres ne rentreraient pas dans votre machine.
Existe-t-il / quelqu'un connaît-il des documents affirmant qu'il est mis en œuvre en tant que tel?