La fonction modulo en c++
Fermé
MFI
-
7 avril 2011 à 23:07
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 avril 2011 à 10:55
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 8 avril 2011 à 10:55
A voir également:
- C++ modulo
- Modulo 97 ✓ - Forum Programmation
- Modulo en c - Forum C
- Modulo casio graph 35+ ✓ - Forum calculatrices
- Modulo ✓ - Forum C++
- Javascript modulo - Forum Javascript
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
7 avril 2011 à 23:52
7 avril 2011 à 23:52
Ça n'a aucun sens de parler de calcul modulaire sur les réels !
Quand tu fais a%b c'est le reste de la division, or pour des réels elle est forcément nulle.
Pour des entiers on aurait q=a/b et r=a%b tels que a = q*b+r
Or avec des réels on aura q*b qui est exactement égal à a, donc r=0...
Ce n'est pas un bug, tu obtiens 0 car c'est la bonne valeur, même si elle n'a aucun sens...
Quand tu fais a%b c'est le reste de la division, or pour des réels elle est forcément nulle.
Pour des entiers on aurait q=a/b et r=a%b tels que a = q*b+r
Or avec des réels on aura q*b qui est exactement égal à a, donc r=0...
Ce n'est pas un bug, tu obtiens 0 car c'est la bonne valeur, même si elle n'a aucun sens...
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
8 avril 2011 à 08:31
8 avril 2011 à 08:31
Salut.
Bien sur que ça a un sens de parler de modulo avec des réels. Exemple courant en mathématique avec les angles :
Si cos(a) vaut 1 alors a vaut 0 modulo 2 pi.
Je ne connais pas de fonction C/C++ pour calculer le modulo de réels, mais on doit pouvoir la faire assez facilement.
Bien sur que ça a un sens de parler de modulo avec des réels. Exemple courant en mathématique avec les angles :
Si cos(a) vaut 1 alors a vaut 0 modulo 2 pi.
Je ne connais pas de fonction C/C++ pour calculer le modulo de réels, mais on doit pouvoir la faire assez facilement.
template<typedef T> T modulo(T nb,T mod) { T resu=nb; while(resu>mod) resu-=mod; return resu; }
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
8 avril 2011 à 10:55
8 avril 2011 à 10:55
Dans ce cas il faut repasser par les entiers, mais ce n'est plus du calcul modulaire au sens algébrique, car ce n'est pas possible dans R.
On aurait donc quelque chose comme q = (int) a/b, et r = a-q*b notre résultat.
On aurait donc quelque chose comme q = (int) a/b, et r = a-q*b notre résultat.