Я играю с .NET BigInteger и в основном мне интересно, какое число - оценочный ответ будет в порядке - это точка отклонения кривой (график (увеличение времени, необходимого для операций) против (значение BigInteger))?
или они разработаны без такого отклонения, так что, если мы нанесем график увеличения времени, необходимого для операций по сравнению со значением BigInteger с 1 до бесконечности, у нас будет плавная кривая на всем пути?
например, предполагая, что массивы спроектированы с возможностью обработки 50 элементов. это означает, что если у меня есть 1 элемент, операции выполняются за f (1) раз. и когда у меня есть 2 предмета, операции выполняются в f (2) раз. если у меня есть 50 пунктов, операции выполняются в f (50) раз. но поскольку он предназначен для обработки только 50 элементов, операции, выполняемые при наличии 51 элемента, будут иметь вид g (51), где g (51)> f (51).
При правильной реализации сложность арифметики BigInteger должна быть плавной кривой. Например, временная сложность умножения должна составлять O (NM), где N - это количество цифр в первом мультипликаторе, а M - это количество цифр во втором мультипликаторе. Конечно, есть практические ограничения в том, что вы можете выбрать N и M настолько большими, что числа не будут соответствовать вашей машине.
Есть ли / кто-нибудь знает какие-либо документы, утверждающие, что он реализован как таковой?