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

#276 08-10-2019 23:44:05

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Re, LEG. Oui, il faut rajouter SI P < S^2 à chaque ligne avec sinon. Oubli. Comme cela arrive rarement, j'ai zappé. Donc notre produit 17 x 21 est un pseudo-produit, pas aligné. Il faut chercher plus loin.
Tu parles de calculer P, mais P se calcule au départ (ligne 11).
Avec T = 5, c'est 35 x 17 (si tu prends 7 x 17), non 35 x 21. Inversé, c'est 17 x 35.
Tu as l'air de plaindre Yoshi, mais je te signale qu'il est consentant : je lui ai déjà proposé de laisser tomber. Quant à toi, si cela te déranges autant de devoir te confronter à moi, tu n'es pas obligé de participer. Mais il est vrai que sans toi je n'aurais pas remarqué tout de suite mes fautes d'étourderie.

Hors ligne

#277 08-10-2019 23:56:43

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

re cosinus ; non pour Yoshi , c'est amical il me connait pour avoir passé beaucoup de temps sur mon programme d'algorithme ....de Goldbach... il ne lâche pas le morceau comme ça.....

Et moi, ce qui m'intéresse c'est de voir son final et ce que donnera le programme  ....donc pas d'inquiétude....

Dernière modification par LEG (09-10-2019 00:07:02)

Hors ligne

#278 09-10-2019 00:09:46

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Input A
A0 = A
Input B
A < B

CALCUL DE T

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

CALCUL DE P (ET S)

11 Si i > 1, P = N x T
12 R = sqrt entière de P
13 L = R^2 + R
14 Si L > P, aller à next i.
15 Si L < P, S = P - L

TEST ALIGNEMENT A ET B SI P = N

16 Si P = N, alors si P >= S^2, si A >=S ET si B >= S, aller à 20.
17 Sinon, si P < S^2 OU si A ou B < S, aller à next i.
18 Si P > N et si T < 63, aller à 26.
19 Si T >= 63, aller à 53.
20 A - S = C
21 Si C = 0 alors print P, A et B. STOP.
22 D = sqrt entière de C
23 F = D^2 + D + S
24 Si A = F alors print P, A et B. STOP.
25 Si A différent de F, aller à next i.

TEST ALIGNEMENT A ET B SI T EST PREMIER

26 Si T est un nombre premier >= 3 et <= 47, alors A = A0 x T.
27 Sinon, aller à 38.
28 B = P / A
29 Si P >= S^2, si A >= S ET si B >= S, aller à 31 (aligné à priori).
30 Sinon, si P < S^2 OU si A ou B < S, aller à next i.
31 Si A > B, alors A = B et B = A0 x T
32 A - S = C
33 Si C = 0 alors print P, A et B. STOP.
34 D = sqrt entière de C
35 F = D^2 + D + S
36 Si A = F alors print P, A et B. STOP (aligné probable).
37 Si A différent de F, aller à next i.

TEST ALIGNEMENT A ET B SI T EST COMPOSE >= 9 <= 49

38 h = 1
39 h = h + 2
40 Si h > (T + 1) / 2, aller à next i.
41 Si T mod h = 0, alors A = A0 x h
42 Si T mod h différent de 0, aller à next h.
43 B = P / A
44 Si P >= S^2, si A >= S ET si B >= S, aller à 46 (aligné à priori).
45 Sinon, si P < S^2 OU si A ou B < S, aller à next h.
46 Si A > B, alors A = B et B = A0 x h
47 A - S = C
48 Si C = 0 alors print P, A et B. STOP.
49 D = sqrt entière de C
50 F = D^2 + D + S
51 Si A = F alors print P, A et B. STOP (aligné probable).
52 Si A différent de F, aller à next h.

CALCUL DE K

53 Q = T / V
54 k = logarithme de Q en base 3

TEST ALIGNEMENT A ET B SI T > 49 (avec A = 3^m x A0)

60 m = - 1
61 m = m + 1
62 Si m > k, aller à 74
63 A = 3^m x A0
64 B = P / A
65 Si P >= S^2, si A >= S ET si B >= S, aller à 67 (aligné à priori).
66 Sinon, si P < S^2 OU si A ou B < S, aller à next m.
67 Si A > B, alors A = B et B = A0 x 3^m
68 A - S = C
69 Si C = 0 alors print P, A et B. STOP.
70 D = sqrt entière de C
71 F = D^2 + D + S
72 Si A = F alors print P, A et B. STOP (aligné probable).
73 Si A différent de F, aller à next m.

TEST ALIGNEMENT A ET B SI T > 49 (avec A = 3^n x V x A0)

74 n = - 1
75 n = n + 1
76 Si n > k, aller à next i.
77 A = (3^n x V) x A0
78 B = P / A
79 Si P >= S^2, si A >= S ET si B >= S, aller à 81 (aligné à priori).
80 Sinon, si P < S^2 OU si A ou B < S, aller à next n.
81 Si A > B, alors A = B et B = A0 x 3^n x V
82 A - S = C
83 Si C = 0 alors print P, A et B. STOP.
84 D = sqrt entière de C
85 F = D^2 + D + S
86 Si A = F alors print P, A et B. STOP (aligné probable).
87 Si A différent de F, aller à next n.

Dernière modification par cosinuspax (12-10-2019 19:23:56)

Hors ligne

#279 09-10-2019 10:09:41

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

salut
@Yoshi

je pense qu'il serait peut être bon de voir ce que donne le programme jusqu'au bloc de la ligne 52; et de ne pas utiliser la condition de la ligne 19, qui te renvois

ligne 63 pour aller calculer Q .....? qu'elle utilité ? puisqu'ensuite ce W=3*3 apparait nul part, dans les blocs suivants.....

Mais ensuite: la condition si m > J re sauter à la ligne 74....d'autant : que m est incrémenté de +=1 comme j, si ce n'est : que m est initialisé à -1 alors que j est initialisé à 1 ? .... donc m ne serra jamais supérieur à j ? alors pas de saut.....?

Car dans ton exemple et que j'ai reproduit #post 253 :
A0 = 45413
B = 3507065749624756498911323
P = 159266376887709066885059911399

il y a beaucoup de cas où T va dépasser 63, surtout si on prend T premier....

quel est l'utilité de ces sauts ? est de voir ce que donne le programme jusqu'à la ligne 52....sans la condition de la ligne 19..

@cosinus :

il serait bon que tu donnes une explication à l'utilité de ces sauts : ligne 19 sauter ligne 53, puis ligne 62 sauter ligne 74 et puis tout à coup plus de sauts....?

Prends l'exemple du test ci-dessus ou T dépasse allègrement les 63 ....qu'est ce que cela aurait changé dans le calcul de ton produit P aligné ????

je passe sur tes deux conditions d'alignement ....à priori et probable.

Car dans l'hypothèse ou un alignement à priori est aussi un alignement probable,  tu jettes l'eau du bain ??? sans oublier la ligne 48 : aligné entre les deux ????

Hors ligne

#280 09-10-2019 15:44:05

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 991

Re : Alignement de produits

Bonjour

@cosinuspax
Ligne 29  Si P>S^2, SI A>=S et B >=S.....
Ligne 30  Sinon si P<S^2, si A<S ou B <S
Ligne 31 Si A>B alors A,B=B,A

1.  Et le cas P=S^2 ? On ferait quoi si par hasard cela arrivait ?

2 J'écris 29 et 30 comme ça :
Si P >S^2
            Si A >=S   et  B>=S:
                   Ligne 31
SINON si P<S^2
            SI A<S ou B<S
                   next i

Que doit-on faire
    a) Si P>S^2, mais que soit A<=S, soit B>=S  ? une partir du cas A<S ou B<S, mais dont la conséquence n'est donnée que si P<S^2, alors que là,
        on est dans le cas P>S^2 ? On va ligne 31 ?
   b) Si P<S^2   mais que A>=S et B>=S ? on va en ligne 31 aussi ?
       

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#281 09-10-2019 16:14:57

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

yoshi a écrit :

Bonjour

Et le cas P=S**2 on en ferait quoi si par hasard cela arrivait ?

@+

il pense probablement à juste raison que ce n'est pas possible que S soit la racine carrée de P, car elle est utilisée pour calculer L , donc je vois mal comment

$P - (\sqrt {P } * \sqrt{P} + \sqrt{P})=S$  =  $\sqrt{P}$ non ? c'est toi le prof ....Loll

tu as raison aussi pour le cas des 2 lignes 29 et 30, je pense qu'il faut plutôt dire si P< S² et si A ou B différent de S....

Dernière modification par LEG (09-10-2019 16:19:44)

Hors ligne

#282 09-10-2019 16:54:11

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 991

Re : Alignement de produits

Re,

Je n'avais pas fait de vérification, je la laissais à cosinus...
Je me contente de soulever des lièvres que l'analyse programmatique met en lumière, pour programmer le plus proprement possible parce que pour les sauts, je suis obligé d'interpréter autrement ce qu'il a écrit, ce qui fait que si jamais il se mettait à analyser ce que je fais il pourrait se dire : mais, mais... ce n'est pas ce que j'ai écrit !?
Lorsque j'aurai terminé et lancé le programme, arrivera la phase de débogage et là viendra le temps des calculs...
Si c'est moi qui pond un truc de A à Z - comme sur le nombre de David Champer, je n'avais pas passé la journée pour rien dans la mise au point de l'affichage tel que je le voulais) - là oui, je fais des essais et des calculs en cours de route...
Dans le cas présent, je dois interpréter un pseudo-code qui n'en est même pas un...
Que veux-tu que je fasse ? Je n'ai pas la moindre idée du pourquoi de ces algorithmes empilés les uns sur les autres...
Si je m'amuse à vérifier les impossibilités je n'ai pas fini : je préfère questionner et dans l'attente d'une réponse adopter celle qui me paraît probable à 99% et continuer...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#283 09-10-2019 17:01:59

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Salut Yoshi, si P >= S^2. Effectivement, ça peut arriver. Par exemple pour S = 41 (la fameuse suite d'Euler) on a 41 x 41 = 1681. Le premier produit aligné est donné par S^2.
Je restaure 29 et 30.

Dernière modification par cosinuspax (09-10-2019 17:13:40)

Hors ligne

#284 09-10-2019 17:07:06

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Désolé pour le pseudo-code "qui n'en est même pas un", mais c'est le mien. L'essentiel est qu'il soit logique. Je te rappelle que les précédents ont fini par fonctionner.
Ici, l'ennui est qu'on opère à distance. J'ai déjà travaillé avec un programmeur, mais sur le terrain. Le programme se construisait bout par bout et pouvait de ce fait être modifié rapidement.

Dernière modification par cosinuspax (09-10-2019 17:46:59)

Hors ligne

#285 09-10-2019 17:30:50

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Donc, à priori, ligne 29 il manque un ET (il me semble qu'il figurait dans les programmes (1) et (2)). Et il manque un OU ligne 29.

Hors ligne

#286 09-10-2019 17:56:56

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

LEG, le B A BA de l'alignement c'est P = S^2. Mort de rire !

Hors ligne

#287 09-10-2019 18:28:22

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

@Cosinu :tu dis que la question de Yoshi peut se produire que P = S**2 ? et tu site effectivement avec S = 41  alors dis que 41 le fameux nombre d'Euler est en réalité est un nombre premier négatif

si S = - 41 , et  P = 1681

donc effectivement -41² + - 41 = 1640

et bien sûr 1681 - 1640 = 41 tiens il est positif....?

et comme $\sqrt {1681} = 41$ qui est positif parfait ...@cosinus .....c'est vrai que je n'avais pas vue que l'on pouvait avoir S un nombre négatif .

Mais L = 41²+41 = 1722 tu peux m'expliquer  comment un nombre négatif est un nombre positif..... et qu'il va en plus, falloir tenir compte que S peut être un nombre négatif  j'espère qu'en Python ça ne pose pas de problème , par ce que, il y en a un qui ne va peut être pas rigoler....Car tu n'en as jamais parlé

Au lieu d'être mort de Rire avec ton B A BA , dont je ne comprend pas ce que tu veux dire avec cette allusion...

Et comment tu fais pour avoir A = B = 41 avec A < B  ou inversement,  en plus tu supposes que ça peut arriver , puisque tu dis à @Yoshi que le premier produit aligné est 41² = N = P  avec A < B .....?
("Tu n'as pas l'impression de te foutre de la gueule du monde ...désolé pour l'expression.")

Dernière modification par LEG (09-10-2019 18:41:59)

Hors ligne

#288 09-10-2019 20:13:28

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 991

Re : Alignement de produits

Re,

@LEG

donc effectivement -41² + - 41 = 1641

non
-41²= -1681  et -41²+(-41)= -1722...

@cosinuspax
29 Si P >= S^2, si A >= S ET si B >= S, aller à 31 (aligné à priori).
30 Sinon, si P < S^2 OU si A ou B < S, aller à next i.

Pas de souci avec ET : je l'avais mis..
Je place ton OU supplémentaire et j'examine si j'ai bien compris ce qui pe.Plaçons-nous dans le cas où P<S²,
le résultat de
Si P<S² ou  si A<S ou si B<S sera toujours VRAI (True)
   donc on ira à ton next i peu importent les comparaisons avec A et B
Ça te convient ?

Plaçons-nous maintenant  dans le cas où la condition SI P<S² est fausse  on n'ira à next i que si A <S ou B <S
Le résultat du test ne sera Faux que si A<S Faux (donc A>=S) et B<S Faux (donc B>=S) et ce cas aura été vu en ligne 29. Là, OK...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#289 09-10-2019 21:06:59

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

re
@Yoshi

non
-41²= -1681  et -41²+(-41)= -1722...

...c'est vrai,  mais ma calculette me donne -41²+(-41)= 1640  et je suis d'accord que:
41² = (-41)² = 41*41 = -41*(-41) = 1681

Mais, heureusement que tu ne risques pas de trouver dans cet algo P négatif car je pense que Python aura du mal à extraire la racine carrée...sauf si tu as une idée....

Hors ligne

#290 10-10-2019 10:29:25

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Qu'est-ce que c'est que cette histoire de nombres négatifs ?
Si P = S^2, P = 41 x 41 = 1681. Il n'y a pas de S négatif.

Hors ligne

#291 10-10-2019 10:30:27

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Re Yoshi : on est d'accord.

Dernière modification par cosinuspax (10-10-2019 10:34:13)

Hors ligne

#292 10-10-2019 11:50:18

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 991

Re : Alignement de produits

Salut

Au pt'it père LEG...
Je vais bientôt m'occuper de ton cas...
Oui, je ne lâche pas facilement : j'ai horreur d'échouer...

...c'est vrai,  mais ma calculette-41²+(-41)= 1640

Alors je vais te donner un conseil n'enchaîne pas deux opérations différentes de suite parce que tu vas avoir une surprise selon l'ordre dans lequel tu les tapes...
Si tu essaie 2 *3 +1 ou 1+2*3 avec Python tu obtiendras 7.
Mais il y a gros à parier que ta calculette pour 1+2 * 3 te donnera 9...
Pour -41² elle calcule (-41)² alors que c'est -(41²)

L'idée que tu évoques avec ironie existe depuis pas mal de temps...
Tu dois savoir que les nombres se répartissent en
entiers naturels $\mathbb N$ : 0, 1, 2, 3, 4...
entiers relatifs $\mathbb Z$  entiers positifs (les précédents) et négatifs (ex -1, -2, -3...)
décimaux relatifs $\mathbb D$   les nombres décimaux sont des nombres munis d'une virgule et possédant un nombre fini de décimales :
2,1825  ; -3,328 (...) 2 ????... comment ça 2 ? Bin oui : 2 ou 2,0 c'est la même chose (sauf en programmation ou les nombres sont typés en entiers (relatifs)  et nombre en virgules flottante (tous les autres)...
Puis tu as :
les nombres rationnels $\mathbb Q$ : tous les nombres qui peuvent s'écrire sous la forme d'un quotient de deux entiers.
Ils comprennent les entiers naturels ou relatifs : ... 2 peut s'écrire $\frac 2 1$, $\frac 6 3$...
ils comprennent les décimaux relatifs $-3,24=-\frac{324}{100}=-\frac{162}{50}=-\frac{81}{25}$
Mais il y en a d'autres, comme $\pm\frac{27}{17}=\pm 3.857142\,\, 857142\,\, 857142\,\, 857142...$
Ces nombres là ne sont pas entiers, ni décimaux puisque le nombre de décimales est infini.
Ce sont des suites décimales périodiques illimitées. Dans l'exemple donné la période est la séquence 857142 qui se répète à l'infini...

Et il y en a encore qui ne sont ni entiers, ni décimaux, ni rationnels : ce sont des irrationnels. Par exemple : $e$ (exponentielle), $\pi$, $\sqrt 2$, $\sqrt 3$... et d'autres encore.
On regroupe tout ce petit monde (depuis les entiers) dans un nouvel ensemble $\mathbb R$, ensemble des nombres réels...

Mais les matheux ont été assez vite gênés par l'impossibilité d'utiliser $\sqrt{-1}$, (ou $\sqrt{-1681}$ ^_^) et ils ont fini, en plusieurs dizaines d'années, par codifier l'existence d'un autre ensemble, $\mathbb C$, l'ensemble des nombres complexes (qui regroupe tous les précédent) basé sur l'"astuce" qui a consisté à créer un nombre i tel que $i^2=-1$, i comme imaginaire...
Les prémices de l'apparition de i remontent à... 1545 où on en trouve l'idéedans un ouvrage du mathématicien italien Girolamo Cardano (Jérôme Cardan en français)...
tu peux additionner i, le diviser, le multiplier, en prendre une puissance avec les mêmes règles que d'habitude :
$i+i+i = i \times 3 = 3i$, $ i\times i\times i\times i =i^4=(i\times i\times i)\times(i\times i)=i^2\times i^2=(-1)\times(-1)=1$
$ i\times i\times i\times i \times i= (i\times i\times i\times i) \times i = i^4 \times i = 1 \times i = i$
$i^3=-i$
Tu peux écrire 2+3i par exemple c'est un nombre complexe composé de 2 parties
une partie dite réelle pure, (le 2) et l'autre imaginaire pure (3i)...
$(3+2i)(3-2i)=3^2-4i^2=9-4\times(-1)=9+4=13$
Ce que Python peut faire sans autre forme de procès:

>>> print((3+2j)*(3-2j))
(13+0j)

soit 13...

@cosinuspax
Ok, merci.
Vu également pour les lignes 44 et 45, 66 et 67,  79 et 80 ?

J'espère finir la transcription aujourd'hui, puis je revérifierai en détail si les astuces de branchement devraient - en théorie - fonctionner...
Si je suis (provisoirement) satisfait, je passe aux tests...
Des suggestions de nombres avec complication croissante ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#293 10-10-2019 12:43:23

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

re @Yoshi;
tu vois que j'en apprend beaucoup avec toi , car honnêtement si tu m'avais demandé combien font:
$(3+2i)(3−2i)=32−4i2=9−4×(−1)=9+4=13$ je ne t'aurai surement pas répondu que ça fait 13, mais plutôt je n'en sais rien , car je ne me suis jamais intéressé aux nombres complexes et pourtant on peut calculer une racine carrée négative, uniquement dans ces nombres..

@cosinus :

Qu'est-ce que c'est que cette histoire de nombres négatifs ?
Si P = S^2, P = 41 x 41 = 1681. Il n'y a pas de S négatif.

Relis le #post et dis nous si on peut avoir P = N =1681 = A*B, où : A = B , donc si P est un carré parfait, combien vaut L = R² + R ? pour moi il vaut 1722.

Et combien vaut S selon ton écriture ? pour moi P - L =-41  un entier négatif . Où as tu écris que si P < L alors S vaut L - P, et non pas P - L.

Dernière modification par LEG (10-10-2019 12:45:08)

Hors ligne

#294 10-10-2019 13:23:09

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 991

Re : Alignement de produits

Re,

@LEG
J'avais zappé le calcul :
$\sqrt{-1681}=\sqrt{1681i^2}=\pm 41i$

Concernant P-L =-41
A priori c'est impossible parce que si P-L<0 alors P<L et c'est prévu. Dans ce cas, on refait un tour dans def calculs_de_base maintenant rebaptisée initialisation 1, où sont transcrites ces lignes :
14 Si L > P, aller à next i.
15 Si L < P, S = P - L

et dans cette cette fonction, il y a notamment le recalcul de T qui est incrémenté, puis on fait le calcul d'un nouveau P, par P=A0 x T
Et on ressort et on va vérifier  L et P et de nouveau si L>P on va chercher un nouveau P.
En résumé, tant que tu n'auras L<P, tu ne calculeras pas P-L...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#295 10-10-2019 14:39:48

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

re @Yoshi au moins c'est clair...de ce côté .
donc : tant que  L > P, on ne calculeras pas P-L...d'où retour vers le futur...Loll
merci cher ami de tes explications.

je me suis amusé à faire des tests avec la version2 en court , effectivement si A <0, et B > 1 erreur signalé. De plus si A = B = 41 il ne sort rient de plus que :

A0 = 41
B = 41
P = 1681

1 1
3 3
5 5

P = 8405
  A = 205
  B = 41

                    *******************

Temps écoulé : 0.06 s soit : 0 min  0.06 s

le programme retourne à next i pour rient , car à la base si $S = \sqrt {P}$ il devrait y avoir stop de suite  car si P = carré parfait, il est inutile de le tester.

j'ai aussi fait des tests en augmentant la valeur limite de 51 à 53 , puis à 57, ainsi que la valeur limite si T > 49, passé à 53 et pour T et V == 57.

A part quelques centièmes de temps perdus, le résultat est identique en prenant A et B de ton dernier test  que j'ai reproduit...

Une question : je suppose que dans ta prochaine version , et d'après ce que j'ai pu voir, tu ne vas utiliser que T = facteur premier < 49  ???  OK je viens de revoir cette ligne de programme (" prime < 49 , c'est uniquement pour le re calcul de A, si T est premier : A0* T lorsque T < 63

Dernière modification par LEG (10-10-2019 14:59:24)

Hors ligne

#296 10-10-2019 17:42:45

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 16 991

Re : Alignement de produits

Salut,

@cosinuspax
54 W=3
55 j=1
56 j = j + 1

57    Tant que W < Q alors W = W x 3
58 next j
59 k = j

Si je comprends bien on initialise W à 3, puis j à 1 (et on l'augmente immédiatement de 1 : il passe à 2)
Alors on boucle sur Wx3 jusqu'à ce que W cesse d'être inférieur à Q. A ce moment on sort de la boucle, on passe ligne 58 qui nous renvoie en 56 (2e tour de manège) où j augmente de 1 et passe à 3 et de là, en  57 : boucle Tant que W

Description du parcours
initialisations (lignes 54 et 55) W=3 et j=1
1. ligne 56 début du 1er tour de manège : on aura j=2 et W=3 en arrivant en 57...
2. ligne 57 W <Q et on boucle jusqu'à avoir W>=Q là on sort et on passe à 58 
3. ligne 58 qui nous renvoie en 56
4. ligne 56 (début du 2e tour de manège) avec le W>=Q  et j qui passe à 3
5. ligne 57  Là on ne rentre pas dans la boucle Tant que W puisque à la fin du 1er tour on a eu W>=Q
6. ligne 58 qui nous renvoie en 56
7. ligne 56 (début du 3e tour de manège) avec toujours W>=Q  et j qui passe à 4...

Question : On sort quand pour aller en 59 ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#297 10-10-2019 17:52:42

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

On sort quand W = Q. Si ça n'est pas automatique, on peut le préciser : si W = Q alors k = j.

Hors ligne

#298 10-10-2019 17:55:57

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Re : Alignement de produits

Re LEG : il n'y a pas de S négatif. Pour en avoir il faudrait accepter tous les P - L, même ceux avec L supérieur à P.

Hors ligne

#299 10-10-2019 18:27:56

cosinuspax
Membre
Inscription : 23-02-2019
Messages : 252

Hors ligne

#300 10-10-2019 18:43:15

LEG
Membre
Inscription : 19-09-2012
Messages : 694

Re : Alignement de produits

cosinuspax a écrit :

Re LEG : il n'y a pas de S négatif. Pour en avoir il faudrait accepter tous les P - L, même ceux avec L supérieur à P.

Ok @cosinus
Yoshi m'a expLiqué le déroulement post au dessus.

J'en profite pour te reposer cette question sur ces lignes , dont @Yoshi parle

à quoi sert cette instruction dans le programme et si j'ai bien compris la question de Yoshi lorsque l'on a Q = W on saute ligne 59 avec J = K ou l'inverse..
mais quel est l'utilité de cette boucle ....?

A moins que le but de cette boucle, sert à initialiser K par rapport à J , car K est utilisé dans la boucle  def suivante ligne 62...?
Si c'est la cas , peut être qu'il serait plus simple d'incrémenter K et losrque W=Q alors return K et on passe ligne 60 ....non ?
Puisque c'est K qui va être utilisé ensuite...

Dernière modification par LEG (10-10-2019 18:58:12)

Hors ligne

Pied de page des forums