ForHosting KIT · Mathématiques

Exponentiation modulaire rapide

Obtenez le reste exact d'une puissance énorme sans débordement : 2 puissance 10 modulo 1000 donne 24, et 3 puissance 5 modulo 13 donne 9. La base, l'exposant et le modulo peuvent compter jusqu'à 2048 chiffres chacun. Gratuit dans votre navigateur.

  • Gratuit
  • Fonctionne dans votre navigateur
  • Sans inscription
  • Vos données restent sur votre appareil
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt
Si vous saisissez
Base
2
Exposant
10
Module
1000
Vous obtenez
Résultat
24

L'exponentiation modulaire rapide répond à une question précise : quel est le reste non négatif exact lorsqu'une base entière est élevée à un exposant entier et réduite modulo m ? Ce résidu sous-tend les démos de cours de type RSA, les ébauches d'échange Diffie–Hellman, les problèmes de concours de programmation et tout script de production qui doit puissancer de grands entiers sans déborder des types à largeur fixe ni perdre la précision au-delà de 2^53.

Ce que calcule l'exponentiation modulaire rapide

Étant donnés des entiers base, exponent et module m, l'exponentiation modulaire renvoie l'unique reste r dans l'intervalle fermé de zéro à m moins un tel que la base élevée à l'exposant est congruente à r modulo m. En symboles, r ≡ base^exponent (mod m). Une approche naïve multiplie la base par elle-même exponent fois puis seulement réduit, ce qui gonfle les valeurs intermédiaires bien au-delà de la virgule flottante ou des entiers à largeur fixe et échoue silencieusement lorsque la précision est perdue.

L'exponentiation modulaire rapide réduit après chaque multiplication et élève au carré la base courante tout en parcourant les bits de l'exposant du moins au plus significatif, de sorte que le travail total croît avec la longueur en bits de l'exposant et non avec sa magnitude décimale. Lorsque m vaut un, tout entier est congruent à zéro, donc le résultat est toujours zéro.

Lorsque l'exposant est zéro, le résultat est un pour toute base tant que m est supérieur à un, selon la convention du produit vide de la théorie des nombres et des bibliothèques de programmation. Les bases négatives sont d'abord réduites dans le système de résidus non négatifs modulo m pour que la chaîne de multiplications ne mélange pas de restes signés.

Les exposants négatifs sont rejetés car ils exigent des inverses modulaires qui peuvent ne pas exister lorsque base et m ne sont pas premiers entre eux, et cette étape d'inverse est hors du périmètre de ce calculateur.

Limites, performances et usages développeurs

L'exponentiation modulaire binaire effectue un nombre constant de multiplications modulaires par bit de l'exposant, donc doubler l'exposant double à peu près le travail, tandis qu'un module plus grand renchérit chaque produit avec la longueur en chiffres. Les enseignants s'en servent pour vérifier les calculs à la main de a^b mod m avant que les élèves rendent des preuves.

Les développeurs l'intègrent dans des tests de propriétés qui affirment que les protocoles restent dans des classes de résidus, dans des jeux ou classements qui replient de grands compteurs modulo un premier, et dans des pipelines de scripting qui ne doivent pas réimplémenter carré et multiplication dans chaque langage.

Vérifier les réponses de concours et devoirs a^b mod m

Élèves et moniteurs peuvent contrôler des puissances modulaires sans multiplier à la main d'énormes intermédiaires ni se fier à une calculatrice qui perd silencieusement la précision au-delà de 2^53.

Amorcer démos crypto et tests unitaires de protocole

Les scripts qui ont besoin d'une étape déterministe base^exp mod m pour un RSA jouet, Diffie–Hellman ou des assertions de classe de résidus peuvent appeler ceci au lieu d'embarquer leur propre puissance BigInt.

Replier de grands compteurs dans une plage de résidus fixe

Jeux, systèmes de classement et aides de sharding qui élèvent un entier puis réduisent modulo m obtiennent un reste exact sans surprises d'arrondi en virgule flottante.

Qu'est-ce que l'exponentiation modulaire ?

C'est élever la base à un exposant et prendre le reste modulo m, écrit base^exponent mod m. Ce calculateur renvoie ce reste non négatif comme result.

Pourquoi un exposant négatif est-il rejeté ?

Les exposants négatifs signifient des puissances réciproques et exigent des inverses modulaires, qui peuvent ne pas exister lorsque base et m ne sont pas premiers entre eux.

Comment fonctionne le calculateur d'exponentiation modulaire rapide ?

Il utilise le carré et la multiplication binaires sur BigInt : pour chaque bit de l'exposant il élève au carré la base courante modulo m et multiplie dans le résultat lorsque le bit est actif.

Le calculateur d'exponentiation modulaire rapide est-il gratuit ?

L'outil navigateur est gratuit et s'exécute en local.

Que se passe-t-il si le modulo vaut 1 ou l'exposant vaut 0 ?

Avec un modulo de 1, tout nombre laisse un reste de 0 : le résultat vaut toujours 0. Avec un exposant de 0, le résultat vaut 1 pour toute base, tant que le modulo dépasse 1 : 7 puissance 0 modulo 5 donne 1.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

POSThttps://api.kit.forhosting.com/dev/modular-exponentiation

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

curl -X POST https://api.kit.forhosting.com/dev/modular-exponentiation \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"base":"2","exponent":"10","modulus":"1000"}'
{
  "base": "2",
  "exponent": "10",
  "modulus": "1000"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.modular_exponentiation",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Ce calculateur d'exponentiation modulaire rapide exécute l'algorithme binaire de carré et multiplication sur BigInt afin que les produits intermédiaires restent réduits à chaque étape, que la réponse soit déterministe, et que vous puissiez essayer le même noyau pur gratuitement dans le navigateur avant d'appeler l'API, qui ne facture que les tâches réussies.

Ce que calcule l'exponentiation modulaire rapide

Le module doit être au moins un ; les modules nuls ou négatifs ne définissent pas un reste non négatif standard et renvoient invalid_input au lieu d'inventer une réponse.

Comment appeler l'API et lire le résultat

Envoyez un corps JSON avec trois champs obligatoires : base, exponent et modulus. Chacun peut être une chaîne d'entier décimal ou un nombre JSON ; la forme chaîne est préférée pour les valeurs au-delà de la plage des entiers sûrs de JavaScript, car au-delà de ce seuil tous les entiers ne sont pas représentés exactement. Les alias a pour base, exp ou e ou power pour exponent, et m ou mod pour modulus sont acceptés afin que formulaires et clients écrits à la main partagent un seul contrat sans renommer les clés. En cas de succès, la réponse renvoie base, exponent et modulus sous forme de chaînes décimales normalisées et ajoute result comme reste non négatif de base^exponent mod modulus. Contrôles classiques à lancer immédiatement : base 2, exponent 10, modulus 1000 donne result 24 ; base 3, exponent 5, modulus 13 donne 9 ; base 7, exponent 0, modulus 5 donne 1. Une validation échouée—champs manquants, non-entiers, fractions, module inférieur à un, exposant négatif ou valeur plus longue que la limite de chiffres publiée—renvoie invalid_input et n'est jamais débitée du solde prépayé. Le tarif est un forfait $0.002 par requête réussie sous l'unité item.

Limites, performances et usages développeurs

Cette capacité plafonne base, exponent et modulus à 2048 chiffres décimaux—assez pour les concours, les devoirs et de nombreuses démos à échelle cryptographique—tout en restant assez compacte pour que le BigInt pur du Worker reste interactif sans pile multiprécision lourde ni conteneur. Si vous avez besoin de modules à des millions de chiffres, de décompositions par le théorème chinois des restes ou de primitives cryptographiques à temps constant résistantes aux canaux auxiliaires, il vous faut une bibliothèque cryptographique dédiée ; cet outil parse léger est volontairement le calculateur et l'étape API partagés pour des puissances modulaires exactes dans les flux de développement. Associez-le à des outils de factorisation ou d'inverse modulaire lorsque le flux nécessite la boîte à outils modulaire complète ; ce endpoint ne répond qu'à la question de puissancer et réduire pour que l'intention de recherche reste claire et la réponse minimale et prévisible.

Que se passe-t-il si le module est inférieur à 1 ?

Le module doit être au moins 1. Les modules nuls ou négatifs ne définissent pas le reste non négatif standard utilisé ici et renvoient invalid_input.

Consulter la documentation complète du KIT →