ForHosting KIT · Outils pour développeurs

Le modulo est-il associatif ?

L'API d'associativité du modulo répond à une question trompeusement simple : pour trois entiers donnés, le groupement a-t-il de l'importance ?

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Elle calcule les deux ordres de l'opération de reste — (a % b) % c à gauche et a % (b % c) à droite — et vous indique s'ils concordent. Vous envoyez trois entiers et recevez les deux côtés de la comparaison ainsi qu'un simple vrai ou faux, calculé en précision arbitraire pour un résultat exact quelle que soit la taille réaliste des valeurs. Si une position de diviseur vaut zéro — b, c ou le reste intermédiaire b % c — la requête est rejetée avec une erreur claire au lieu d'une surprise de division par zéro. C'est un petit contrôle, mais c'est celui qui décide si une expression à modulo chaîné dans votre code signifie bien ce que vous croyez.

Pourquoi le groupement compte pour l'opération de reste

L'addition et la multiplication sont associatives : (1 + 2) + 3 égale toujours 1 + (2 + 3), donc personne ne pense aux parenthèses. L'opération de reste ne bénéficie d'aucune garantie de ce genre. L'expression a % b % c est ambiguë sur le papier, et la plupart des langages de programmation la résolvent en évaluant de gauche à droite, ce qui produit (a % b) % c. Que cela égale le groupement alternatif a % (b % c) dépend entièrement des trois valeurs en jeu. Prenons a = 17, b = 5, c = 3 : le groupement de gauche donne (17 % 5) % 3 = 2 % 3 = 2, tandis que celui de droite donne 17 % (5 % 3) = 17 % 2 = 1. Les deux groupements divergent : le modulo n'est donc pas associatif pour ce triplet. Mais pour a = 8, b = 5, c = 3, les deux côtés valent 0, et l'opération s'avère associative dans ce cas. Cette capacité existe parce que cette distinction est facile à rater en revue de code et fastidieuse à vérifier à la main sur tout un ensemble de paramètres candidats : un seul appel tranche de façon déterministe, en renvoyant les deux valeurs intermédiaires afin que vous voyiez exactement où les deux groupements divergent, au lieu de croire un simple booléen sur parole.

Comment la vérification est calculée, et la règle du diviseur nul

Le calcul est délibérément transparent. D'abord, chaque entrée est analysée comme un entier — les chaînes décimales comme les nombres JSON sont acceptés — et l'arithmétique en précision arbitraire est utilisée en interne, sans plafond de précision à 2⁵³ ni aucun arrondi dans la chaîne. Ensuite, le côté gauche est évalué comme (a % b) % c et le côté droit comme a % (b % c), où % suit la convention tronquée familière de JavaScript, C et Java : le résultat prend le signe du dividende. Les deux résultats sont comparés pour une égalité exacte, et la réponse est rapportée avec les deux côtés. Il existe une situation où aucune réponse booléenne n'existe : la division par zéro. Trois positions de diviseur apparaissent dans les deux expressions — b dans a % b, c dans (a % b) % c, et la valeur intermédiaire b % c comme diviseur du côté droit. Si b ou c vaut zéro, ou si b % c s'avère nul pour les valeurs données, la requête est rejetée comme entrée invalide avec un message nommant précisément le diviseur en cause. Cette erreur n'est jamais facturée : vous pouvez donc explorer des plages de paramètres par programme en toute sécurité. Les entrées jusqu'à 2048 chiffres décimaux par champ sont acceptées.

Où cette vérification gagne sa place

L'appelant le plus fréquent est quelqu'un qui enseigne ou apprend la théorie des nombres : les questions d'associativité reviennent constamment dans les manuels et les recueils d'exercices, et pouvoir vérifier une affirmation sur des centaines de triplets en quelques secondes transforme une corvée en expérience. Le deuxième appelant est un développeur qui remanie une logique de hachage ou de partitionnement, où des expressions comme h % m % n s'insinuent et changent silencieusement de sens selon l'ordre d'évaluation — vérifier l'associativité sur les vrais couples de modulos en production vous dit si une réécriture est sûre. Le troisième est quiconque construit un outil de calcul symbolique ou de simplification d'expressions, qui doit savoir quelles règles de réécriture sont valides avant de les appliquer. Le calculateur gratuit de cette page exécute exactement le même code que le point d'accès payant : ce que vous testez dans le navigateur est ce que votre intégration recevra. Les appels automatisés coûtent $0.002 par requête, sans surcoût unitaire. Envoyez un objet JSON avec les champs a, b et c ; la réponse reprend les entrées, rapporte gauche et droite en chaînes décimales, et donne le verdict final dans le champ associative — true quand les deux groupements concordent, false sinon.

Vérifier une série d'exercices de théorie des nombres

Contrôlez des affirmations d'associativité sur des dizaines de triplets en quelques secondes au lieu de calculer chaque groupement à la main, et voyez les deux côtés en cas de désaccord.

Auditer des expressions de hachage et de partitionnement

Confirmez si h % m % n peut être regroupé sans risque dans du code en production avant de remanier une expression qui achemine du trafic.

Alimenter une règle de simplification d'expressions

Laissez un outil de calcul symbolique décider si la réassociation d'un modulo chaîné est valide pour des valeurs concrètes avant d'appliquer la réécriture.

Combien cela coûte-t-il ?

$0.002 par requête, sans surcoût unitaire. L'exécution est également gratuite dans votre navigateur sur cette page.

Que compare-t-elle exactement ?

Le groupement de gauche (a % b) % c face au groupement de droite a % (b % c). Elle renvoie les deux valeurs et true lorsqu'elles sont égales.

Que se passe-t-il si un diviseur vaut zéro ?

La requête est rejetée comme entrée invalide. Cela couvre b = 0, c = 0 et le cas plus subtil où b % c = 0, qui rendrait nul le diviseur du côté droit.

Les entiers peuvent-ils être négatifs ?

Oui. Le reste suit la convention tronquée de JavaScript, C et Java : le résultat prend le signe du dividende.

Quelle taille peuvent atteindre les entiers ?

Jusqu'à 2048 chiffres décimaux par champ, calculés en arithmétique de précision arbitraire, sans arrondi ni plafond à 2⁵³.

La réponse est-elle mise en cache ou aléatoire ?

Non. Le calcul est entièrement déterministe : les mêmes trois entiers produisent toujours les mêmes gauche, droite et verdict.

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/math/is-modulo-associative

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/math/is-modulo-associative \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"a":"17","b":"5","c":"3"}'
{
  "a": "17",
  "b": "5",
  "c": "3"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.is_modulo_associative",
  "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.

max_digits2048
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.

Consulter la documentation complète du KIT →