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

#76 Re : Programmation » Alignement de produits » 25-09-2019 22:24:43

Input A
Input B

1 N = A x B
2 P = N
3 V = 1
4 e = - 1
5 i = i + 1 (i = 0)
6 Si i > 1, alors V = V + 2
7 Si e = - 1, alors T = V
8 Si V = 51, alors e = e + 1 et V = 7
9 Si e > - 1 et si V = 7, alors T = 51 x 9^e
10 Si T > 49 x 9^e, alors T = 9 x (9^e x V)
11 Si i > 1, alors P = N x T

12 R = sqrt entière de P
13 L = R^2 + R
14 Si L > P, alors aller à next i.
15 Si L < P, alors S = P - L
16 Si P = N, alors si P > S^2, si A >=S, si B > S, print P, A et B. STOP.
17 Sinon, si A ou B < S, alors aller à next i.

18 A = A x T
19 Si P > S^2, si A >= S, si B >= S, alors print P, A et B. STOP.
20 Si A ou B < S, alors aller à next i.

#77 Re : Programmation » Alignement de produits » 25-09-2019 22:10:03

Oui c'est ça, T = 13 donne A inférieur à S, j'ai vérifié à la main. Avec T = 15 on doit avoir A et B supérieurs à S. Super. Maintenant reste à tester le bloc des multiples de 9 ...C'est à dire quand V atteint 51.
A dem avec des exemples.

#78 Re : Programmation » Alignement de produits » 25-09-2019 13:14:00

Le cycle des T multiples de 9 (63, 81, 117 ...) n'intervient pas avant que V atteigne 51. Donc avec V = T = 13, A x T = 73 x 13 = 949 et non 73 x 13^3. Pourquoi T devient 13 ^3 ? Pourquoi calculer T x T x T ...
C'est comme avec A = 145. Il y a une distorsion de T entre N x T et A x T.
D'autant plus bizarre que ça a marché avec 29 x 71 (T = 3).

#80 Re : Programmation » Alignement de produits » 25-09-2019 12:20:55

C'est délirant. N est multiplié par 13 et A est multiplié par 13 ^ 3 !
N et A doivent être multipliés par le même nombre (T). Si N est multiplié par 13, A est multiplié aussi par 13. On devrait donc avoir ici : 73 x 13 = 949 et non 160381.
Pour B pas de problème, il ne doit pas bouger.

#82 Re : Programmation » Alignement de produits » 25-09-2019 11:25:27

Bravo pour la suppression des décimaux. Malheureusement A doit toujours être multiplié par un multiple de 9 à partir de V = 51 : 63, 81, 117... Ici on a A = 160381 donc A x T = 73 x 2197 et 2197 n'est pas un multiple de 9. Je ne vois pas comment la machine a pu trouver ça. Encore un mystère.

#83 Re : Programmation » Alignement de produits » 25-09-2019 09:02:11

Salut, intéressant. Quel bazar !  Il va falloir procéder autrement. C'est reparti.
Est-ce que ça ne viendrait pas de là ?

9 Si e > - 1 et si V = 7, alors T = 51 x 9^e

Si e est SUPERIEUR à - 1 et non EGAL à - 1. Parce que si e = - 1 ça donne effectivement des décimaux à partir de 7 puisque e = - 1 par définition. Si e > 1 cela veut dire que le programme a attendu que e = e + 1 = 0 (ligne 8).
Donc apparemment la machine ne tient pas compte de la ligne 8.

#84 Re : Programmation » Alignement de produits » 24-09-2019 21:50:01

De toute façon en ligne 8 tu dois avoir e = 0 (e = - 1 + 1). J'ai interverti lignes 7 et 8. C'est plus clair.

#85 Re : Programmation » Alignement de produits » 24-09-2019 21:40:38

J'ai transféré le programme.

Ligne 9 : si e > - 1 ET si V = 7 alors T = 51 x 9 ^e

et non: si e = - 1

e = - 1 uniquement quand V est inférieur à 51 (de 1 à 49). Après, quand V arrive à 51, e passe à 0 (ligne 8 : si V = 51, alors e = e + 1 et V = 7).
Si tu abordes la ligne 9 avec e = - 1 tu as forcément des décimaux. Tu dois l'aborder avec e = 0. Si ça ne marche pas ça viendra de moi. Il faudra que je revois les lignes 7 à 10. Sinon pour le départ c'est OK, on a bien T = 3 pour N et pour A.

#86 Re : Programmation » Alignement de produits » 24-09-2019 21:26:50

Input A
Input B

1 N = A x B
2 P = N
3 V = 1
4 e = - 1
5 i = i + 1 (i = 0)
6 Si i > 1, alors V = V + 2
7 Si e = - 1, alors T = V
8 Si V = 51, alors e = e + 1 et V = 7
9 Si e > - 1 et si V = 7, alors T = 51 x 9^e
10 Si T > 49 x 9^e, alors T = 9 x (9^e x V)
11 Si i > 1, alors P = N x T

12 R = sqrt entière de P
13 L = R^2 + R
14 Si L > P, alors aller à next i.
15 Si L < P, alors S = P - L
16 Si P = N, alors si P > S^2, si A >=S, si B > S, print P, A et B. STOP.
17 Sinon, si A ou B < S, alors aller à next i.

18 A = A x T
19 Si P > S^2, si A >= S, si B >= S, alors print P, A et B. STOP.
20 Si A ou B < S, alors aller à next i.

#87 Re : Programmation » Alignement de produits » 24-09-2019 19:18:11

On est arrivé au bout de la première phase, on arrivera au bout de la deuxième. C'est effectivement un petit programme très simple (comparé à ton programme de conjugaison), mais son bon fonctionnement ouvre pour moi certaines portes arithmétiques.
Et je suis certain que tes supers pouvoirs de programmeur nous permettront d'aller au bout de la troisième phase.

#88 Re : Programmation » Alignement de produits » 24-09-2019 15:58:06

OK pour les expressions avec 9, j'ai amalgamé. Mais cela n'empêche pas : si e = 0 et V = 3 le résultat donne 27 et non 45 ou alors j'arrête les maths.

9 x (e + 1) x V = 27

Ta machine n'est pas en train de confondre 3 et 5 ?

#89 Re : Programmation » Alignement de produits » 24-09-2019 10:11:40

Attention: 9 ^ e + 1 ne permet pas d'avoir 9 ^ 0 = 1. En effet, comme e = e + 1 quand V = 51, il ne peut plus être égal = - 1 après ça. Je numérote chaque instruction du pseudo code (ça je peux faire, sinon pour moi Python c'est du chinois (!), mais j'admire aussi ta sagacité !).

#90 Re : Programmation » Alignement de produits » 24-09-2019 09:33:42

Tu vois, en refaisant le parcours (comme tu dis), ligne par ligne, on arrive bien à A x T = 87 et non 145 (si A et B > S comme c'est le cas). Je ne procède pas la tête en l'air. La première version ne collait pas et ça s'expliquait : le programme revenait à next i après avoir fait P = N x T. Dans la nouvelle version ça n'est plus possible.

#91 Re : Programmation » Alignement de produits » 24-09-2019 09:21:15

Bonjour Yoshi,

Même problème. Je prends l'exemple 1 : 29 x 71 = 2059.

L > P donc next i. P = N x T donc 2059 x 3 = 6177, L < P donc A x T = 87 donc et non 145. Pour trouver 145 il faut repasser par next i. Avec cette version c'est impossible.
Mais je comprends que mon programme puisse poser un problème (n'étant pas familier de l'informatique).

#92 Re : Programmation » Alignement de produits » 23-09-2019 09:24:28

Bonjour,

Nouvelle version (la bonne, j'espère) :

Input A
Input B

1 N = A x B
2 P = N
3 V = 1
4 e = - 1
5 i = i + 1 (i = 0)
6 Si i > 1, alors V = V + 2
7 Si V = 51, alors e = e + 1 et V = 7
8 Si e = - 1, alors T = V
9 Si e > - 1 et si V = 7, alors T = 51 x 9^e
10 Si T > 49 x 9^e, alors T = 9 x (9^e x V)
11 Si i > 1, alors P = N x T

12 R = sqrt entière de P
13 L = R^2 + R
14 Si L > P, alors aller à next i.
15 Si L < P, alors S = P - L
16 Si P = N, alors si P > S^2, si A >=S, si B > S, print P, A et B. STOP.
17 Sinon, si A ou B < S, alors aller à next i.

18 A = A x T
19 Si P > S^2, si A >= S, si B >= S, alors print P, A et B. STOP.
20 Si A ou B < S, alors aller à next i.

Je te rappelle que le principe de cet algo est d'aligner A et B dans un temps acceptable quand ils sont séparés par un écart important. Pour les produits classiques (sans grand écart) l'alignement se fait rapidement.
Désolé, je n'arrive pas à me faire à l'indentation. Je m'en tiens à la conception.
Bonne journée.

#93 Re : Programmation » Alignement de produits » 22-09-2019 17:51:15

Non, c'est ma conception qui plante. Le cycle des x9 n'est pas synchronisé avec N x T. Il faut que je reprenne à zéro. Désolé.
A ++

#94 Re : Programmation » Alignement de produits » 22-09-2019 14:42:47

Je crois savoir d'où ça vient. Je corrige.

#95 Re : Programmation » Alignement de produits » 22-09-2019 13:53:30

Il y a un petit problème avec T.
29 x 71 = 2059
L > P donc P = N x T (T = 3)
P = 6177
Mais pourquoi A x T = 145 (T = 5) alors que ça devrait faire A x T = 87 (T = 3) ?  Pourquoi prendre le T qui suit alors que ni A ni B ne sont inférieurs ?
Et pourquoi mets-tu STOP à la place de "aller à next i" ?

#97 Re : Programmation » Alignement de produits » 22-09-2019 10:08:35

Salut Yoshi, je suis un peu déçu que depuis le début tu n'aie pas la moindre idée de ce que je veux faire.
Quand T >= 49, la variable e n'est pas égale à - 1 mais à 0, c'est précisé. Normalement, ce 0 apparaît quand V = 49 (- 1 + 1 = 0). Ensuite, tu as : si e = 0, T = 49. Donc si T est au moins = 49, tu ne peux pas multiplier 49 par 9^- 1. Si ça ne marche pas comme ça, je n'ai pas de meilleure idée pour l'instant.
Pour le reste je corrige.

Bon dimanche.

#98 Re : Programmation » Alignement de produits » 21-09-2019 12:35:19

Salut, bon, tu devines de quoi il en retourne.

Si A et B >= S OR si A'et B' >= S, alors STOP.
Si A ou B < S AND si A' ou B' < S, P = N x T. Aller à next i.

C'est juste un oubli.

#99 Re : Programmation » Alignement de produits » 20-09-2019 18:50:39

C'est corrigé. Pour calculer T, le programme fait V = V + 2, donc 3. Tant que e = - 1, T a la valeur de V + 2 donc ici 3. Quand V arrive à 49, le compteur e passe à 0 et V = 7. T a donc la valeur de 49 (puisque 49 x 9^0 = 49), ce qui implique T = 9 x (9^0 x 7) = 63 > 49 puis 81, 99 ... avec V + 2.  Puis V parvient de nouveau à 49. Alors le compteur e passe à 1 et V = 7. T a donc la valeur de 49 x 9^1, ce qui implique T = 9 x (9^1 x 7) = 567 > 441 puis 729, 891 avec V + 2. Etc.
Tu as le principe.

#100 Re : Programmation » Alignement de produits » 20-09-2019 09:12:41

Salut, je tente de corriger dans la mesure du possible.

Pied de page des forums