[{"@context":"http:\/\/schema.org\/","@type":"BlogPosting","@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/exponation-binaire-wikipedia\/#BlogPosting","mainEntityOfPage":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/exponation-binaire-wikipedia\/","headline":"Exponation binaire – Wikipedia","name":"Exponation binaire – Wikipedia","description":"before-content-x4 Le exponation binaire (aussi Carr\u00e9 et \u00e0 cultiver appel\u00e9) est une m\u00e9thode efficace pour calculer les puissances naturelles, c’est-\u00e0-dire","datePublished":"2018-05-19","dateModified":"2018-05-19","author":{"@type":"Person","@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/author\/lordneo\/#Person","name":"lordneo","url":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/author\/lordneo\/","image":{"@type":"ImageObject","@id":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/44a4cee54c4c053e967fe3e7d054edd4?s=96&d=mm&r=g","height":96,"width":96}},"publisher":{"@type":"Organization","name":"Enzyklop\u00e4die","logo":{"@type":"ImageObject","@id":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","url":"https:\/\/wiki.edu.vn\/wiki4\/wp-content\/uploads\/2023\/08\/download.jpg","width":600,"height":60}},"image":{"@type":"ImageObject","@id":"https:\/\/wikimedia.org\/api\/rest_v1\/media\/math\/render\/svg\/525e1133440e1565055dec6243aaf0f27d4d4e9b","url":"https:\/\/wikimedia.org\/api\/rest_v1\/media\/math\/render\/svg\/525e1133440e1565055dec6243aaf0f27d4d4e9b","height":"","width":""},"url":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/exponation-binaire-wikipedia\/","wordCount":7482,"articleBody":" (adsbygoogle = window.adsbygoogle || []).push({});before-content-x4Le exponation binaire (aussi Carr\u00e9 et \u00e0 cultiver appel\u00e9) est une m\u00e9thode efficace pour calculer les puissances naturelles, c’est-\u00e0-dire exprimer la forme X k {displaystyle x ^ {k}} (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Avec un nombre naturel k {displaystyle k} . Cet algorithme \u00e9tait d\u00e9j\u00e0 d’environ 200 avant JC. BC a d\u00e9couvert en Inde et est appel\u00e9 dans une \u0153uvre Chandah-s\u00fbtra \u00e9crit. (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Un Avec = X 4 {displaystyle z = x ^ {4}} Pour calculer, vous pouvez soit Avec = X \u22c5 X \u22c5 X \u22c5 X {displayStyle z = xcdot xcdot xcdot x} calculer (trois multiplications) ou et = X \u22c5 X {displayStyle y = xcdot x} , (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4Avec = et \u22c5 et {displaystyle z = ycdot y} (deux multiplications), c’est-\u00e0-dire Avec = ( X 2 ) 2 {displayStyle z = (x ^ {2}) ^ {2}} . De m\u00eame, d’autres puissances enti\u00e8res peuvent \u00eatre calcul\u00e9es efficacement par “carr\u00e9s continus et multiplication occasionnelle”. Ces multiplications de sauvegarde fonctionnent pour des nombres r\u00e9els ainsi que des matrices r\u00e9elles, des courbes elliptiques et tout autre demi-groupe. Conversion de l’exposant k {displaystyle k} dans la pr\u00e9sentation binaire associ\u00e9e. Remplacer tout le monde 0 \u00e0 travers Q Et tout le monde d’abord \u00e0 travers Qm. Devient maintenant Q Comme instruction pour les carr\u00e9s et M compris comme des instructions pour le multiplicateur. Ainsi, la cha\u00eene de caract\u00e8res r\u00e9sultante de gauche \u00e0 droite forme une disposition pour le calcul de X k{displaystyle x ^ {k}} . Vous commencez avec 1, carr\u00e9s pour chaque lecture Q Le r\u00e9sultat provisoire pr\u00e9c\u00e9dent et le multiplique pour chaque lecture M avec X {displaystyle x} . Depuis la pr\u00e9sentation binaire de 0″>commence toujours par la section 1 – et donc aussi les instructions avec QM commence -, suit pour la premi\u00e8re instruction QM Dans tous les cas, le r\u00e9sultat interm\u00e9diaire d’abord 2 \u22c5 X = X {displayStyle 1 ^ {2} cdot x = x} . Pour cette raison, il existe une variante l\u00e9g\u00e8rement simplifi\u00e9e dans laquelle la premi\u00e8re instruction QM \u00e0 travers X {displaystyle x} est remplac\u00e9. Table of ContentsExemple (algorithme) [ Modifier | Modifier le texte source ]] Pseudocode (algorithme) [ Modifier | Modifier le texte source ]] Exemple (algorithme alternatif) [ Modifier | Modifier le texte source ]] Pseudocode (algorithme alternatif) [ Modifier | Modifier le texte source ]] Exemple [ Modifier | Modifier le texte source ]] Exemple (algorithme) [ Modifier | Modifier le texte source ]] \u00catre k = 23. La pr\u00e9sentation binaire de 23 est 10111 . Il en r\u00e9sulte le remplacement QM QM QM QM . Apr\u00e8s avoir peint le principal QM -Ifaes tu as QM QM QM . \u00c0 partir de cela, nous pouvons maintenant lire que le processus informatique doit \u00eatre regard\u00e9 comme suit: \u00abSquare, carr\u00e9s, multiplier avec X {displaystyle x} , carr\u00e9s, multiplier avec X {displaystyle x} , carr\u00e9s, multiplier avec X {displaystyle x} \u00ab. Formellement, le tout ressemble \u00e0 ceci: ( ((x2)2\u22c5x)2\u22c5x) 2 \u22c5 X {displayStyle Left (Left ((x ^ {2}) ^ {2} cdot xRight) ^ {2} cdot xRight) ^ {2} cdot x} ou progressivement \u00e9crit: X \u27f6QX 2\u27f6QX 4\u27f6\u22c5xX 5\u27f6QX 10\u27f6\u22c5xX 11\u27f6QX 22\u27f6\u22c5xX 23{displayStyle x; {stackrel {mathrm {q}} {longRightArrow}}; x ^ {2}; {stackrel {mathrm {q}} {longRightArrow}}; x ^ {4}; {stackrel {CDOT X} {LongRightArw m {q}} {longRightArrow}}; x ^ {10}; {stackRel {cdot x} {longRightArrow}}; x ^ {11}; {empesser {mathrm {q}} {longRightArrow}}; x ^ {22}; {{};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};};}; {23}} Vous pouvez voir \u00e0 partir de l’exemple que vous pouvez vous \u00e9pargner quelques \u00e9tapes de calcul \u00e0 l’aide de l’exponation binaire.Au lieu de 22 multiplications, seulement 7 sont n\u00e9cessaires en carr\u00e9 quatre fois et trois fois avec X {displaystyle x} multipli\u00e9. Pseudocode (algorithme) [ Modifier | Modifier le texte source ]] L’algorithme est indiqu\u00e9 en deux variantes. La variante 1 utilise une condition IF pour se multiplier dans les endroits correspondants. Variante 2 incorpore implicitement la condition IF dans l’expression arithm\u00e9tique. version 1 Variante 2 \/\/ calcule x ^ k\/\/ b ... Repr\u00e9sentation binaire de k\/\/ res ... r\u00e9sultat du calculFonction bin_exp (x, b) res = 1 pour i = n..0 res = res ^ 2 Si b_i == 1 res = res * x fin fin Retour Resfonction finale \/\/ calcule x ^ k\/\/ b ... Repr\u00e9sentation binaire de k\/\/ res ... r\u00e9sultat du calculFonction bin_exp (x, b) res = 1 pour i = n..0 res = res ^ 2 * x ^ {b_i} fin Retour Resfonction finale Vous pouvez \u00e9galement concevoir la proc\u00e9dure pour un calcul \u00e0 la main de mani\u00e8re \u00e0 ce que vous fassez d’abord la base de la base assez souvent, puis multipliez les nombres corrects les uns avec les autres. Ensuite, il est similaire \u00e0 la multiplication des agriculteurs russes, qui attribue la multiplication de deux nombres pour faire de moiti\u00e9, double et ajouter des nombres. Pour ce faire, \u00e9crivez l’exposant \u00e0 gauche et la base \u00e0 droite. L’exposant est progressivement divis\u00e9 par deux (le r\u00e9sultat est arrondi) et la base est progressivement carr\u00e9. Vous annulez les lignes avec un exposant droit. Le produit des droits non pein\u00e9s est la puissance que vous recherchez. Exemple (algorithme alternatif) [ Modifier | Modifier le texte source ]] 2 18 18 2 9 4 4 16 2 256 d’abord 65 536 R\u00e9sultat 262.144 (= 4 \u00b7 65 536 ) Pseudocode (algorithme alternatif) [ Modifier | Modifier le texte source ]] Contrairement \u00e0 l’approche pr\u00e9c\u00e9dente, les puissances requises de X {displaystyle x} directement d\u00e9gust\u00e9. Cette variante est id\u00e9ale lorsque l’exposant k {displaystyle k} n’est pas explicitement pr\u00e9sent dans la pr\u00e9sentation binaire. Comme illustration, l’\u00e9galit\u00e9 peut X 23 = X 16 \u22c5 X 4 \u22c5 X 2 \u22c5 X {displayStyle x ^ {23} = x ^ {16} CDOT x ^ {4} CDOT X ^ {2} CDOT X} \u00eatre consid\u00e9r\u00e9 comme. Devrait \u00eatre d\u00e9termin\u00e9 X k {displaystyle x ^ {k}} , sans k {displaystyle k} avoir dans la pr\u00e9sentation binaire. Exponation binaire \/\/ calcule x ^ k \/\/ res ... r\u00e9sultat du calcul Fonction res = bin_exp (x, k) res = 1 Tandis que k> 0 Si k mod 2 == 1 res = res * x fin X = x ^ 2 K = k div 2 \/\/ Nombre de division enti\u00e8rement (le r\u00e9sultat est arrondi) fin Retour Res fonction finale Chaque nombre naturel n {displaystyle n} Peut \u00eatre clairement dans n = 2 m + b {displayStyle n = 2m + b} d\u00e9monter, par lequel b \u2208 { 0 , d’abord } {displaystyle bin {0,1}} . Sur la base des lois sur la puissance, il y a an=a2m+b=(am)2ab.{displayStyle {begin {align\u00e9} a ^ {n} & = a ^ {2m + b} \\ & = (a ^ {m}) ^ {2} a ^ {b} .end {align\u00e9}}} La derni\u00e8re expression ne comprend que une potentialisation avec un exposant m {displaystyle m} Qui seulement \u00e0 moiti\u00e9 aussi grand que n {displaystyle n} est ce qui peut \u00eatre calcul\u00e9 r\u00e9cursivement avec le m\u00eame algorithme, Un carr\u00e9, une multiplication, Une potentialisation avec 0 ou 1 comme exposant. L’impl\u00e9mentation directe dans Haskell ressemblerait \u00e0 ceci: un ^ 0 = d'abord un ^ d'abord = un un ^ 2 = un * un un ^ n = ( un ^ m ) ^ 2 * un ^ b o\u00f9 ( m , b ) = n `` Divmod `` 2 La fonction ^ qui est d\u00e9fini ici est donc bas\u00e9 sur un existant * Pour la multiplication, Divmod Pour le rotation du point binaire le plus bas de l’exposant et, r\u00e9cursif, vous-m\u00eame. Des optimisations mineures, telles que la conversion en une variante r\u00e9purative finale, conduisent essentiellement aux algorithmes it\u00e9ratifs mentionn\u00e9s ci-dessus. Lors du calcul du modulo d’un nombre naturel, une modification de la lumi\u00e8re est applicable qui emp\u00eache les nombres calcul\u00e9s de devenir trop grands: apr\u00e8s chaque carr\u00e9s et multiplicateur, le reste.Cette proc\u00e9dure est utilis\u00e9e, par exemple, pour le cryptage RSA. Exemple [ Modifier | Modifier le texte source ]] 2 18 contre 39 18 2 9 4 4 16 2 22 (= 256 contre 39) d’abord 16 (= 484 contre 39) R\u00e9sultat 25 (= 4 \u00b7 16 contre 39 = 2 18 contre 39) Avec la potentialisation simple et lente de X k {displaystyle x ^ {k}} devenir ( k – d’abord ) {displayStyle (k-1)} Multiplications n\u00e9cessaires. Dans le cas de l’exponation binaire, la boucle est uniquement enregistrer 2 \u2061 ( k ) {DisplayStyle Log _ {2} (k)} -Run dans le temps ( enregistrer 2 \u2061 ( k ) {DisplayStyle Log _ {2} (k)} correspond approximativement \u00e0 la longueur du nombre k {displaystyle k} dans la pr\u00e9sentation binaire). Dans chaque course de broyage, il y a un carr\u00e9 (par lequel le premier carr\u00e9 peut \u00eatre n\u00e9glig\u00e9) et peut-\u00eatre une multiplication. Devenir asymptotique O ( enregistrer \u2061 ( k ) ) {displayStyle o (log (k))} Op\u00e9rations (op\u00e9rations \u00e0 long terme \u00e9ventuellement \u00e0 long terme) requises, tandis que O ( k ) {displaystyle o (k)} Battre les op\u00e9rations en simple potentialisation. O {displaystyle o} D\u00e9crit une barri\u00e8re sup\u00e9rieure asymptotique pour le comportement d’ex\u00e9cution de l’algorithme. Comme vous pouvez facilement le voir, l’exponation binaire est beaucoup plus efficace que le processus simple. Cette pr\u00e9tention r\u00e9duite \u00e0 la puissance de calcul est \u00e9norme pour les grandes bases et les exposants. L’exponiation binaire ne doit pas n\u00e9cessairement \u00eatre le type de puissance de calcul la plus multiplication. \u00c0, par exemple, Avec = X 15 {displaystyle z = x ^ {15}} Pour calculer, vous pouvez soit expon\u00e9rer en fonction de l’exponation binaire Avec = ( ((x2\u22c5x)2\u22c5x)2\u22c5x) {displayStyle z = Left (Left ((x ^ {2} cdot x) ^ {2} cdot xRight) ^ {2} cdot xRight)} calculer (6 multiplications) ou mais Avec = et 3= et \u22c5 et 2{displayStyle z = y ^ {3} = ycdot y ^ {2}} avec et = X 5= X \u22c5 ( X 2) 2{displayStyle y = x ^ {5} = xcdot (x ^ {2}) ^ {2}} (un total de 5 multiplications). Ce sera 0 0 : = d’abord {DisplayStyle 0 ^ {0}: = 1} utilis\u00e9, comme dans la fonction faire du quilles De la st. Au lieu de non sign\u00e9 tout le monde peut sans signe Utilisation du type de donn\u00e9es entier si n\u00e9cessaire. Un examen du d\u00e9bordement est manquant pour simplifier la pr\u00e9sentation. \/\/ b: base \/\/ E: Exposant \/\/ Hypoth\u00e8ses: le type T a l'op\u00e9rateur * = (t) et A 1. mod\u00e8le < typename T > T bin_exp ( T b , non sign\u00e9 C'est ) { si ( C'est == 0 ) retour T ( d'abord )); alors que ( C'est % 2 == 0 ) \/\/ E tout droit? { b * = b ; C'est \/ = 2 ; \t}\t\/\/ hier ist e ungerade\tT result = b;\twhile(true)\t{\t\te \/= 2; \t\tif(e==0)\t\t{\t\t break;\t\t}\t\tb *= b;\t\tif(e%2) \/\/ e ungerade?\t\t{\t\t\tresult *= b;\t\t}\t};\treturn result;} (adsbygoogle = window.adsbygoogle || []).push({});after-content-x4"},{"@context":"http:\/\/schema.org\/","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"item":{"@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/#breadcrumbitem","name":"Enzyklop\u00e4die"}},{"@type":"ListItem","position":2,"item":{"@id":"https:\/\/wiki.edu.vn\/all2fr\/wiki1\/exponation-binaire-wikipedia\/#breadcrumbitem","name":"Exponation binaire – Wikipedia"}}]}]