Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 27-10-2024 10:07:20

ccapucine
Membre
Inscription : 19-05-2018
Messages : 185

Algorithme pour calculer le reste et le résultat d'une divistion

Bonjour,
j'ai trouvé sur un autre forum; un exercice intéressant.
Mais il n y a pas eu de réponse.
Soient $N$ et $M$ deux naturels donnés. On définit les nombres naturels $R$ et $Q$ par $M= N \cdot Q + R$
($R$ est le reste de la division de $M$ sur $N$, $Q$ est le résultat de la division de $M$ sur $N$).
Quel algorithme de calculer $Q$ et $R$ en utilisant la soustraction? S'il vous plaît.
Je ne comprend même pas ce que veut dire "utiliser la soustraction" pour calculer $Q$ et $R$. Un exemple serait le bienvenue.
Merci d'avance

Hors ligne

#2 27-10-2024 10:18:35

Roro
Membre expert
Inscription : 07-10-2007
Messages : 1 659

Re : Algorithme pour calculer le reste et le résultat d'une divistion

Bonjour,

Je pense qu'il faut faire une boucle qui, à chaque itération, remplace M par M-N, tant que M reste positif.
Le nombre d'itérations correspond au quotient Q, et le reste R est donné par la valeur de M juste avant la dernière itération.

Roro.

Hors ligne

#3 27-10-2024 12:45:56

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 223

Re : Algorithme pour calculer le reste et le résultat d'une divistion

Bonjour,

Je plussoie Roro...
Si on se te posait la question : << Comment effectuerais-tu la multiplication  132 *25  en n'utilisant que l'addition ? >>, tu répondrais :
Facile :
$P= \overbrace{132+132+132+\cdots+132}^{25\; termes\;égaux\; à\; 132}$

ou
$P=\overbrace{25+25+25+25+25+25+\cdots+25}^{132\; termes\;égaux\; à\; 25}$

Alors, que signifie par exemple << Qu'appelle-t-on quotient euclidien, (par exemple) de 32567 par 29 ? >>

Une réponse serait :

C'est le nombre de fois qu'on peut soustraire 29 à 32567 !
Donc tu mobilises non seulement la soustraction, mais aussi l'addition...

---------------------------------------

Script naïf en Python :


M,N,Q=32586,29,0
Md=M            # Je garde la valeur d'origine de M pour l'affichage futur

while not M<N:  # Tant que M n'est pas inférieur à N
    Q=Q+1           # on incrémente Q de 1 à chaque tour
    M=M-N           # on décrémente M de la valeur N à chaque tour

print("Le quotient entier et le reste de la division de",Md,"par",N,"sont :")
print ("Q =",Q," et R =",M)
print()
print("Vérification : ")
D=N*Q+M
print(N ,"*",Q,"=",N*Q,"et", N*Q,"+",M,"=", D
 

Sortie :


Le quotient entier et le reste de la division de 32586 par 29 sont :
Q = 1123  et R = 19

Vérification :
29 * 1123 = 32567 et 32567 + 19 = 32586
 

@+

Dernière modification par yoshi (28-10-2024 13:40:35)


Arx Tarpeia Capitoli proxima...

Hors ligne

#4 28-10-2024 13:33:34

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 223

Re : Algorithme pour calculer le reste et le résultat d'une divistion

Re,

Avec un autre langage utilisé (pénible) : Algobox


Code de l'algorithme
1 FONCTIONS_UTILISEES
2 VARIABLES
3 M EST_DU_TYPE NOMBRE
4 N EST_DU_TYPE NOMBRE
5 Md EST_DU_TYPE NOMBRE
6 Q EST_DU_TYPE NOMBRE
7 R EST_DU_TYPE NOMBRE
8 D EST_DU_TYPE NOMBRE
9 DEBUT_ALGORITHME
10 M PREND_LA_VALEUR 32586
11 N PREND_LA_VALEUR 29
12 Q PREND_LA_VALEUR 0
13 R PREND_LA_VALEUR 0
14 Md PREND_LA_VALEUR M
15 TANT_QUE (M> N) FAIRE
16 DEBUT_TANT_QUE
17 Q PREND_LA_VALEUR Q+1
18 M PREND_LA_VALEUR M-N
19 FIN_TANT_QUE
20 AFFICHER " "
21 AFFICHER " --- Résultats --- "
22 AFFICHER " "
23 AFFICHER "Le quotient entier est : "
24 AFFICHER Q
25 AFFICHER "Le reste est : "
26 AFFICHER M
27 AFFICHER " "
28 AFFICHER "--- Vérification ---"
29 AFFICHER " "
30 AFFICHER N
31 AFFICHER " * "
32 AFFICHER Q
33 AFFICHER " + "
34 AFFICHER M
35 AFFICHER " = "
36 D PREND_LA_VALEUR N*Q+M
37 AFFICHER D
38 FIN_ALGORITHME
 

Sortie:
yvq2.png

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#5 31-10-2024 21:36:28

ccapucine
Membre
Inscription : 19-05-2018
Messages : 185

Re : Algorithme pour calculer le reste et le résultat d'une divistion

Bonjour,
vraiment désolée. Je pensais avoir posté la réponse.
Mais apparemment, la réponse n'est pas partie. Celà est sûrement dû à un problème de connexion.
J'ai bien compris la réponse. On fait, il s'agit de calculer la multiplication par des additions successives.
Donc on initialise pas 0 et on additionne N fois M avec M.
Merci beaucoup pour l'aide et désolée encore une fois. Je pensais que ma réponse était postée.

Hors ligne

#6 01-11-2024 20:10:54

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 223

Re : Algorithme pour calculer le reste et le résultat d'une divistion

Bonsoir,

Ok, ne pas oublier non plus la fausse manip, voire tout bêtement l'oubli de valider sa réponse (plus fréquent qu'on ne le croit) ... N'en parlons plus...
Ton questionnement portait sur le lien entre division et soustraction et il m'avait semblé intéressant de commencé par illustrer le lien entre multiplication et addition, pour pouvoir enchaîner avec la réponse à ton questionnement...
Les scripts écrits en Python, puis en AlgoBox ont-ils répondu à ton attente ?
Quand bien mêmene serais-tu pas versée en programmation, le script Python - avec commentaires -  devait t'éclairer sur ce lien : c'était reproductible à la main, avec d'autres nombres plus petits parce que faire 1123 fois la même soustraction, ce serait devenu très vite... (en restant poli) lassant ! ^_^

Je vois que le lien entre Addition et Multiplication est clair (très probablement l'était-il déjà avant)...
Mais le lien entre soustraction et division aussi, maintenant ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
un plus vingt deux
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums