Bonjour,
Comment calculer le PPCM de deux float (PPCM = Plus Petit Commun Multiple) ?
J'ai trouvé comment le calculer le PPCM de deux entiers mas pas celui de deux Float.
Un bout de code sera la bienvenue.
Merci d'avance
Bonjour,
Comment calculer le PPCM de deux float (PPCM = Plus Petit Commun Multiple) ?
J'ai trouvé comment le calculer le PPCM de deux entiers mas pas celui de deux Float.
Un bout de code sera la bienvenue.
Merci d'avance
A mon avis, ce que tu demandes n'a pas de sens en mathématiques.
Tu trouveras TOUJOURS un plus petit commun multiple aussi petit que tu veux dans l'ensemble des réels.
En effet, le PPCM de deux floats n'a pas de sens. Qui te demande de faire ça ?
Est-ce que ton problème est syntaxique ?
Parce que comme l'a soulevé ram-000, il n'y a pas de PPCM dans les réels, uniquement les entiers.
Si c'est un problème de syntaxe ou de sémantique, il faut veiller à ce que tes nombres réels soient convertis en entiers avant l'application du PPCM, ou ne faire une fonction PPCM qui n'accepte que des entiers, de cette manière, même si tu appelles ta fonction avec des doubles, le resultat se basera sur la partie entière.
Exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 int ppcm( int a, int b ) { ... calcul du ppcm ... } int main() { double nombre1 = 18.1; double nombre2 = 9.2; std::cout << ppcm( nombre1, nombre2 ) << std::endl; // affichera bien le ppcm de 18 et de 9 }
Exactement : le PPCM n'a de sens que pour les entiers, c'est de l'arithmétique. Le faire sur des réels (floats) n'a aucun sens : tu n'auras pas plus de précision qu'avec des entiers, et même au contraire : tu vas en perdre un max !!
Je cherche pas de précision.
Tout simplement les valeurs dont je vais calculer leurs PPCM sont des Floats.
Est ce que je peux faire ainsi :
Float a = 0.8;
Float b= 0.2 ;
Je vais par exemple les multiplier par 100 puis calculer le PPCM et à la fin deviser le PPCM par 100
Ce n'est pas possible, cela n'a pas de sens.
En admettant que cela soit possible, le PPCM de 0.8 et 0.2 pourrait être 0.2, 0.01, 0.000001, 0.0000000005 etc.
Il y a TOUJOURS un plus petit nombre qui soit un diviseur alors que dans l'ensemble des entiers, il n'y a pas toujours de plus petit nombre qui soit un diviseur. C'est pour cela que le PPCM a un sens dans l'ensemble des entiers mais pas dans l'ensemble des réels (flottants).
Quel que soient les réels A et B, et les facteurs réels I et J, un "commun multiple" M tel que M=A.I=B.J ne sera JAMAIS le plus petit, car il existe toujours plus petit : M/2 = A.I/2 = B.J/2 ... Et cela ne s'arrêtera jamais (cf. calcul infinitésimal et limites pour la preuve).
C'est pour cela que le PPCM n'a aucun sens avec des réels...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager