Maison > développement back-end > C++ > Comment pouvons-nous obtenir la quadrature Bignum la plus rapide possible ?

Comment pouvons-nous obtenir la quadrature Bignum la plus rapide possible ?

Barbara Streisand
Libérer: 2024-12-20 21:13:11
original
956 Les gens l'ont consulté

How Can We Achieve the Fastest Possible Bignum Squaring?

Calcul rapide du carré Bignum

Problème :
Étant donné deux bigints représentés sous forme de tableaux dynamiques de DWORDs non signés, calculer y = x^2 aussi vite que possible sans précision perte.

Contexte :
Le problème se pose dans le contexte de l'accélération des divisions bignum, où les opérations carrées sont cruciales.

Question :
Comment calculer y = x^2 de la manière la plus efficace manière ?

Réponse :
Approche initiale :
L'approche initiale utilise une multiplication y = xx, évitant les multiplications multiples en réduisant NN multiplications en (N 1)*(N/2) multiplications.

Multiplication Karatsuba :
L'algorithme de multiplication Karatsuba est utilisé pour optimiser davantage les opérations de multiplication. Il utilise la division diviser pour régner pour accélérer la multiplication en décomposant les grands nombres en morceaux plus petits.

Mesures de performances :
Les tests ont montré que la multiplication Karatsuba optimisée surpasse le O initial ( N^2) algorithme de multiplication pour les plus grands nombres (environ 32*98 bits).

Schönhage-Strassen modifié Multiplication pour la mise en œuvre de SQR :
La multiplication de Schönhage-Strassen modifiée, connue sous le nom de FFT (Fast Fourier Transform), est mise en œuvre pour accélérer les opérations SQR. Cependant, en raison d'une perte de précision, il est jugé inutilisable.

Optimisation NTT :
Le NTT (Number Theoretic Transform) est utilisé pour optimiser les opérations de multiplication et SQR. Il est plus rapide que FFT mais nécessite une arithmétique modulaire et est limité par la taille du nombre.

État actuel :
L'implémentation actuelle utilise l'algorithme Karatsuba optimisé pour les opérations SQR lorsque la taille du nombre dépasse un certain seuil, et l'approche SQR rapide initiale pour les petits nombres.

Exceptionnel Questions :
L'auteur reconnaît qu'il pourrait y avoir une solution plus triviale ou plus efficace qui a été négligée. La recherche d'un meilleur algorithme se poursuit.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal