Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#126 Re : Programmation » Alignement de produits » 01-09-2019 08:15:22
Salut,
Je n'ai pas résisté à la tentation de refaire un pseudo code en introduisant le test d'alignement sûr. Il vient en plus du précédent, surtout ne pas fusionner.
Normalement le programme ne s'arrête que sur les produits "alignés sûrs", mais il donne en passant les produits "alignés non sûrs".
Input A (premier)
Input B (premier)
Input Q (2n - 1 > 1)
A < B
N = A x B
P = N
i = i + 1
R = racine entière de P
L = R^2 + R
Si i = 1 M = 1
Si i > 1 M = M + 2
T = Q x M
Si L >= P alors P = N x T. Aller à next i.
Si L < P alors S = P - L
Si P > N aller à &
Si P = N, si A ou B < S alors P = N x T. Aller à next i.
Sinon, si P > S^2, si A >= S, si B >= S alors vérif A :
K = A - S
E = racine entière de K
Si E^2 + E + S = A alors print P, A et B, "aligné sûr". STOP.
Sinon, alors P = N x T. Aller à next i.
& C = A x (M - 2)
D = B x Q
F = A x Q
G = B x (M - 2)
Si C ou D < S AND si F ou G < S alors P = N x T. Aller à next i.
Si C ou D < S aller à %
Si P > S^2, si C >= S, si D >= S alors vérif C :
K = C - S
E = racine entière de K
Si E^2 + E + S = C alors print P, C et D, "aligné sûr". STOP.
Sinon, alors P = N x T. Aller à next i.
% Si P > S^2, si F >= S, si G >= S alors vérif F :
K = F - S
E = racine entière de K
Si E^2 + E + S = F alors print P, F et G, "aligné sûr". STOP.
Sinon, alors P = N x T. Aller à next i.
Bon dimanche.
#127 Re : Programmation » Alignement de produits » 31-08-2019 15:55:47
Pas comblé encore mais ultra content que ce premier test soit positif. Je me posais la question du rapport entre A et B et S au fur et à mesure que les nombres grandissent (car S grandit très vite avec la taille). En fait ce rapport reste le même et le nombres d'étapes est toujours très réduit, ce qui permet de tester avec plusieurs Q.
#128 Re : Programmation » Alignement de produits » 31-08-2019 10:42:33
Salut Yoshi,
Merci pour les tests et pour ton aide en général. Comblé, non, pas encore, car il reste encore le test définitif. Je sais seulement que tous les produits sont alignables quelle que soit leur taille (et encore un certain nombre sont pseudo alignés). Evidemment, lors du test définitif, il s'agira de découvrir le produit à partir de N (aligné) et non plus seulement de le tester. Je n'y crois pas trop, mais ça vaut le coup d'expérimenter.
A++
#129 Re : Programmation » Alignement de produits » 30-08-2019 20:42:47
Essaye ces deux-là :
A = 6928549421925621512554273485150663023900541879040250219063866895746762107610041063838532250812097257
B = 2037560909601944415101859734428115289923312805974834293517807472443864779374511336140525331613038573
100 chiffres. Attention, ce sont des premiers probables, pas certains.
#130 Re : Programmation » Alignement de produits » 30-08-2019 20:38:39
Ces deux-là n'ont rien de spécial, mais comme L > P tout de suite (contrairement aux deux autres qui donnaient L < P tout de suite), ça valait le coup de tester ton code. Maintenant on peut dire que ça fonctionne. Aller plus loin dans les Q ne sert qu'à avoir toujours plus d'alignements. Ici on peut s'arrêter à Q = 15.
Par contre, augmenter le nombre de chiffres, OK. Théoriquement le processus d'alignement est indépendant du nombre de chiffres.
#131 Re : Programmation » Alignement de produits » 30-08-2019 08:43:46
Je constate également que le processus d'alignement n'est pas fonction de la taille du nombre.
#132 Re : Programmation » Alignement de produits » 30-08-2019 08:37:47
Merci, super.
Sans doute parmi ces produits certains sont pseudo alignés, mais sur le nombre on peut être quasi sûr qu'il y en a qui sont alignés. Il en suffit d'un qui soit aligné pour le test ultime.
#133 Re : Programmation » Alignement de produits » 30-08-2019 08:32:23
Tu avais mis dans ton code précédent N = P. C'est plutôt l'inverse : P = N. Sinon je te suis, c'est toujours la même logique pour moi, mais sans doute l'as-tu affinée.
En fait on a deux blocs bien séparés :
1) P = N si L < P tout de suite
2) P > N si L > P tout de suite
#134 Re : Programmation » Alignement de produits » 30-08-2019 08:15:32
Salut Yoshi,
Si ce passage est en cause, pourquoi fonctionne-t-il avec des N inférieurs à 60 ?
En tout cas le test est positif. Bravo. M = 19 est assez élevé mais pourquoi pas. Q = 3 je présume ? peux-tu tester des Q plus élevés ?
#135 Re : Programmation » Alignement de produits » 29-08-2019 14:32:18
Peux-tu tester :
A 448112341766964559764297625291
B 398553599201280303607945220797
N =
178596786657737932800833348803878901316132765258159766376927
R = 422607130391499585735292046744
L =
178596786657737932800833348803943264419199096070715973048280
L >=P
#136 Re : Programmation » Alignement de produits » 29-08-2019 12:45:55
J'attire ton attention sur le fait que ce programme "branlant" va quand même jusqu'à 59 chiffres de N. Après, est-ce vraiment le programme qui est en cause ? (comme ça, à partir de 60 chiffres, il décide de ne plus jouer ?).
#137 Re : Programmation » Alignement de produits » 29-08-2019 12:41:16
Si P est par miracle égal à L, S dans ce cas = 0, ce qui donne la suite : 0, 2, 6, 12, 20, 30, 42, ... dont tous les nombres sont pairs. Impossible, donc équivaut à L > P (à rajouter dans le programme).
Si L >= P alors P = N x T, next i.
#138 Re : Programmation » Alignement de produits » 29-08-2019 12:30:15
Parfait jusqu'à : SINON si P différent de N. A ce stade, les tests A ou B < S et A et B >= S sont déjà faits. Si P est différent (supérieur) à N, on va tout de suite au calcul de C et D (on zappe toute la séquence P = N). D'ailleurs je n'ai pas écrit SINON si P > N, cela va de soi quand P n'est plus égal à N
#139 Re : Programmation » Alignement de produits » 29-08-2019 09:59:34
Pour cet exemple, L est supérieur à N. Normalement, le programme doit faire P = N x T. Aller à next i. T = 3 à ce moment puisque Q = 3 et M = 1. Donc P = N x 3. Il passe à i = 2 et fait le nouveau calcul de P et de L.
A 448112341766964559764297625291
B 398553599201280303607945220797
#140 Re : Programmation » Alignement de produits » 29-08-2019 09:39:05
Même résultat pour l'exemple si-dessus : L est inférieur à N (P = N).
N =285438282422228662150088429608306813721712689335174575509587
R = 534264244004994837489127834284
L =
285438282422228662150088429608274143684074216524845293626940
#141 Re : Programmation » Alignement de produits » 29-08-2019 09:27:52
Regarde bien si L est supérieur ou inférieur à P. S'il est inférieur, tout est normal.
#142 Re : Programmation » Alignement de produits » 29-08-2019 09:19:52
Salut,
D'accord, mais pourquoi à partir de 2 x 30 chiffres ? Bizarre. Pourquoi ne pas spécifier au programme de faire comme d'habitude avec A et B de 30 chiffres ?
En voici deux autres :
A 775941213935564328459698982023
B 367860705548155112876080250069
#143 Re : Programmation » Alignement de produits » 28-08-2019 15:07:04
OK mais sache que tout fonctionne normalement.
A++
#144 Re : Programmation » Alignement de produits » 28-08-2019 13:30:31
Salut LEG. S, c'est P - L quand L < P. J'ai écrit N x 9 (T = 9), c'est pareil, c'est P avec Q = 3 et M = 3 (5 - 2 dans le programme puisque c'est décalé d'un cran).
Quant à T, si, il apparaît dans le pseudo-code. C'est Q x M.
#145 Re : Programmation » Alignement de produits » 28-08-2019 13:23:08
C'est OK, c'est moi qui ai fait l'erreur : L est bien inférieur à N dès le départ du programme, donc P = N, A et B > S et STOP. Q n'entre jamais en ligne de compte puisqu'on n'a jamais P = N x T.
#146 Re : Programmation » Alignement de produits » 28-08-2019 13:08:00
Surprise. Ton L est inférieur à N, donc tout est normal, on a un alignement avec P = N. Le programme s'arrête toujours à STOP. L'ennui est que mon L à moi est supérieur à N.
Je refais mes calculs.
#147 Re : Programmation » Alignement de produits » 28-08-2019 09:05:28
Si c'était le programme, ça ne marcherait pas pour les nombres inférieurs. Normalement, pour notre exemple, tu dois trouver T = 9. C'est mathématique.
#148 Re : Programmation » Alignement de produits » 28-08-2019 08:32:24
Salut, effectivement c'est incompréhensible que ça ne marche pas pour les 30 chiffres. Et pourtant qu'est-ce qui change ? Rien du tout. Je tente de regarder.
A ++
#149 Re : Programmation » Alignement de produits » 27-08-2019 12:27:41
Salut Yoshi,
Tout d'abord, je constate que ça marche. Ensuite, tu ne peux pas avoir le même résultat que moi car tu as omis le dernier chiffre de B (7). N doit toujours être impair !
#150 Re : Programmation » Alignement de produits » 27-08-2019 07:50:38
Salut,
Voici la solution de l'exemple à 60 chiffres.
A = 456677434437440644486475995861
B = 353983300754723083028038875227
N =
161656185622363884157409873825181107869683925399877147435447
N x 9 =
1454905670601274957416688864426629970827155328598894326919023
R = 1206194706753961409298471526252
L = 1454905670601274957416688864426348344578516031528496796693756
S = 281626248639297070397530225267
A x 3 =
1370032303312321933459427987583
B x 3 =
1061949902264169249084116625681







