"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > L'algorithme le plus rapide pour les réseaux DWORD de grands entiers au carré révélés

L'algorithme le plus rapide pour les réseaux DWORD de grands entiers au carré révélés

Publié le 2025-05-02
Parcourir:797

What's the Fastest Algorithm for Squaring Large Integers Represented as DWORD Arrays?

Computation carré de bignum rapide

Cet article vise à déterminer la méthode la plus rapide pour calculer y = x ^ 2 pour les bigints exprimés en tant que réseaux dynamiques de dords non signés. DWORDS:

dword x [n 1] = {lsw, ......, msw};

où:

DWORD x[n 1] = { LSW, ......, MSW };
n 1 est le nombre de dwords utilisés

x = x [0] x [1]
  • Trouvez la valeur de y = x ^ 2 le plus rapidement possible sans perdre de précision. (O (n ^ 2) Multiplication)
  • L'approche naïve implique de multiplier x par elle-même, qui prend o (n ^ 2) le temps. Cela peut être exprimé comme:

    y = x * x y = (x0 x1 x2 ... xn) * (x0 x1 x2 ... xn)

    en élargissant le produit, nous obtenons:

      y0 = x0 * x0 y1 = x1 * x0 x0 * x1 y2 = x2 * x0 x1 * x1 x0 * x2 y3 = x3 * x0 x2 * x1 x1 * x2 ... y (2n-3) = xn (n-2) * x (n) x (n-1) * x (n-1) x (n) * x (n-2) y (2n-2) = xn (n-1) * x (n) x (n) * x (n-1) y (2n-1) = xn (n) * x (n)
    • karatsuba multiplication

    L'algorithme de Karatsuba peut être utilisé pour accélérer la multiplication en o (n ^ log2 (3)). Bien qu'il semble prometteur, la nature récursive de l'algorithme peut introduire une surcharge de performance significative pour les grands nombres. Approche diviser et conquis. Cependant, cet algorithme a des limites pratiques en raison de problèmes de débordement et de la nécessité d'une arithmétique modulaire sur des entiers non signés.

    Conclusion

    y = x * x
    y = (x0   x1   x2   ...xn)*(x0   x1   x2   ...xn)
    Dernier tutoriel Plus>

    Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

    Copyright© 2022 湘ICP备2022001581号-3