Probleme calcul php

Résolu/Fermé
CyRux Messages postés 164 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 8 septembre 2016 - 12 juin 2016 à 20:19
CyRux Messages postés 164 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 8 septembre 2016 - 12 juin 2016 à 21:19
Bonsoir a tous ^^,
Dans le cadre d'un projet pour intégrer du RSA à mon site j'ai besoin de calculer une Exponentiation Modulaire (exemple : a^b%c) mais je n'y arrive pas ...
on va prendre pour exemple
125^103 % 407 qui doit donner 97.
mais quand je fait
echo bcmod(125^103, 407);
ça m'affiche 26.
quand je fait
echo fmod(pow(125, 103), 407);
ça m'affiche 164.
.... bref je n'arrive jamais a trouver le bon résultat ... Auriez vous une solution a me proposer ? ;)
Merci d'avance et bonne journée.




--
A voir également:

1 réponse

Bonjour

En php, ^ n'est pas l'élévation à la puissance C'est le ou exclusif.
https://www.php.net/manual/fr/language.operators.bitwise.php

Quant à l'utilisation de pow, ça ne peut pas marcher : les calcules sont faits sur un nombre limité de chiffres, alors que pour calculer un modulo, il faut la valeur entière exacte, qui doit faire un peu plus de 200 chiffres - bien au delà de la précision habituellement utilisée en informatique.
Tu peux utiliser la bibliothèque BC pour faire des calculs sur des nombres avec beaucoup de chiffres significatifs :
https://www.php.net/manual/fr/ref.bc.php
mais il y a sûrement un algorithme qui permet d'obtenir la réponse sans avoir besoin de manipuler d'aussi grands nombres.
0
CyRux Messages postés 164 Date d'inscription dimanche 4 janvier 2015 Statut Membre Dernière intervention 8 septembre 2016 3
12 juin 2016 à 21:19
Merci pour ta réponse précise et rapide ^^
bcpowmod(125, 103, 407)
donne bien 97 ^^ tout marche nikel ^^
Merci encore et bonne soirée.
0