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

#26 18-08-2019 12:52:03

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

Re : Alignement de produits

Super, et tu peux faire de même avec F et G (34763 et 278013). Les deux produits sont importants (un seul est le bon).

Hors ligne

#27 18-08-2019 13:01:53

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

Re : Alignement de produits

Ma modif d'hier (si P = N) permet de sauter cette ligne si P > N. Je vais faire suivre : si P = N, si A ou B < S alors P = N x T, next i. On zappe ainsi la partie dont nous n'avons pas besoin.

Hors ligne

#28 18-08-2019 13:45:30

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

Re : Alignement de produits

RE,

Maintenant :

Avec : A = 92671  B = 34763  N = 3221521973  R = 56758  L = 3221527322

Si Q = 3
P = 9664565919   C = 92671   D = 104289  S = 4747  M = 3

P = 9664565919   F = 278013   G = 34763  S = 4747  M = 3

Alors ?
Quelle ligne est la bonne ? Et pourquoi (je pourrai alors bloquer la mauvaise...) ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#29 18-08-2019 18:06:21

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

Re : Alignement de produits

Malheureusement, le test dont je dispose ne permet pas de trancher pour cet exemple. Les deux produits sont possibles car C, D, F et G sont tous supérieurs à S (ce qui n'est pas toujours le cas). Pour l'instant, je teste un système qui, s'il fonctionne, doit servir de tremplin pour en tester un autre. Evidemment, c'est ce deuxième système (utopique pour l'instant) qui est déterminant pour la recherche.

Hors ligne

#30 19-08-2019 08:50:01

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

Re : Alignement de produits

Les ensembles en question sont donnés par S + (2 + 4 + 6 + 8 + 10 + ...2n). Le plus connu est S 41 (Euler), qui donne 40 nombres premiers consécutifs jusqu'à S^2. Ce qui m'intéresse est la structure des lignes de produits à partir de S^2. Le système d'alignement permet d'intégrer un produit quelconque dans un tel ensemble.

Hors ligne

#31 19-08-2019 08:53:03

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

Re : Alignement de produits

Ton programme te permet-il de calculer :

A : 542906957840287
x
B : 951492943934717

Hors ligne

#32 19-08-2019 09:14:41

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

Re : Alignement de produits

Bon jour,

J'ai trouvé un bug :

Avec : A = 17053  B = 99089  N = 1689764717  R = 41106  L = 1689744342

Si Q = 3
P = 25346470755   C = 85265   D = 297267  S = 79525  M = 7

Et on affiche la ligne ci-dessus ad nauseum...

Idem :

Avec : A = 542906957840287  B = 951492943934717  N = 516572139598095964506240543779  R = 718729531602880  L = 516572139598095999391555897280

Si Q = 3
P = 17046880606737166828705937944707   C = 5971976536243157   D = 2854478831804151  S = 2259039952032627  M = 13

Et je boucle dans fin...

Donc, j'ai revérifié :

Avec : A = 92671  B = 34763  N = 3221521973  R = 56758  L = 3221527322

Si Q = 3
P = 9664565919   C = 92671   D = 104289  S = 4747  M = 3

P = 9664565919   F = 278013   G = 34763  S = 4747  M = 3

Le prog s'arrête bien...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#33 20-08-2019 08:49:42

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

Re : Alignement de produits

Salut Yoshi,

Super, je constate qu'il faut aller jusqu'à M = 13 (13 - 2) pour résoudre l'exemple à 15 chiffres. Peut-être que c'est différent avec un Q plus grand.
Je te propose :

A = 456677434437440644486475995861

B = 353983300754723083028038875227

A et B de 30 chiffres.

Je doute que des nombres aussi grands soient alignés du premier coup.

Hors ligne

#34 20-08-2019 09:05:56

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

Re : Alignement de produits

RE,


J'ai arrêté pour
Q=3
i=9877144, M=19754287

Q=5
i=8708058, M=17416115

Q=7
i=10053847, M=20107693

A ce stade pas de réponses...
Peut-être faut-il démarrer avec Q bien supérieur ?
Je ferai un essai.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#35 20-08-2019 10:47:01

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

Re : Alignement de produits

RE,

Même constat avec Q=2001, 20001, 200001 ou 2000001...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#36 20-08-2019 11:46:54

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

Re : Alignement de produits

C'est pas possible. Il y a un hic quelque part.
Premièrement, est-ce que L est à chaque fois supérieur à P ?  Et à quel moment (nombre d'itérations) est-ce que L est inférieur à P ?  Peux-tu arrêter dès que L est inférieur à P ? Et noter P, C, D, F et G (même inférieurs à S) ?
C'est impossible qu'un produit ne soit pas alignable, même grand.

Hors ligne

#37 20-08-2019 12:00:45

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

Re : Alignement de produits

Vérifier également si ce produit n'est pas aligné tout de suite avec A et B.
je t'envoie d'autres tests :

A : 380312714929783
B : 701200841523563

A : 408364015901707
B : 680154053092271

A : 48280590019558924983
B : 82456381070844400657

Hors ligne

#38 20-08-2019 12:32:30

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

Re : Alignement de produits

J'ai fait des tests sur internet pour calculer la racine d'un nombre de 60 chiffres. Il y a plein de problèmes de format. Il est possible que ça vienne du code utilisé. L'idéal pour les grands nombres est PHP (il me semble).

Dernière modification par cosinuspax (20-08-2019 13:30:12)

Hors ligne

#39 20-08-2019 13:19:05

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

Re : Alignement de produits

Même WOLFRAM ALPHA, réputé comme l'un des plus "puissants" calculateurs du web, mouline pour donner la racine carrée de :

161656185622363884157409873825181107869683925399877147435447 qui est le produit de deux premiers de 30 chiffres.

Voici la PUB :

PUISSANCE ALGORITHMIQUE INIMAGINABLE
Mathematica élabore des algorithmes sans précédent dans tous les domaines — beaucoup d'entre eux sont développés à Wolfram en utilisant les méthodologies de développement et des capacités sans égal du Wolfram Language.

Par contre, cela marche pour des nombres de 60 chiffres avec plus de deux diviseurs. Très curieux.

Dernière modification par cosinuspax (20-08-2019 17:36:24)

Hors ligne

#40 20-08-2019 14:43:50

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

Re : Alignement de produits

Ren

Je veux bien, mais je reviens à mon 1er post : comment puis-je savoir qu'un produit est "aligné"...

Il y a plein de problèmes de format.

Ça veut dire quoi ?
Je n'ai aucun problème à extraire la racine entière d'un nombre de 60 chiffres : je dispose d'une fonction qui extrait la racine entière d'un nombre de 1000 chiffres "instantanément" (pas de délai visible).
Je l'ai mise en service au lieu de la racine native de Python.

J'ai trouvé ce qui ne va pas : i ne s'incrémentait plus si P=N, affichage P,A et N puis stop.
Si j'enlève le stop, j'ai toujours P=N (c'est ça l'alignement ?) et i croît (je l'arrête quand ?)...

Autres essais :
Avec : A = 380312714929783  B = 701200841523563  N = 266675595750874761514284976829  R = 516406424970560  L = 266675595750875131103291684160

Si Q = 3
P = 800026787252624284542854930487   C = 380312714929783   D = 2103602524570689  S = 62352511406247  M = 3

P = 800026787252624284542854930487   F = 1140938144789349   G = 701200841523563  S = 62352511406247  M = 3

Si Q = 5
P = 6666889893771869037857124420725   C = 1901563574648915   D = 3506004207617815  S = 1088403331727925  M = 7

P = 6666889893771869037857124420725   F = 1901563574648915   G = 3506004207617815  S = 1088403331727925  M = 7
---------------------------------------

Avec : A = 408364015901707  B = 680154053092271  N = 277750440552582621779737406597  R = 527020341687664  L = 277750440552582640040071464560

Si Q = 3
P = 4166256608288739326696061098955   C = 2041820079508535   D = 2040462159276813  S = 2011496827304133  M = 7
Et on tourne en boucle....

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

Avec : A = 48280590019558924983  B = 82456381070844400657  N = 3981042728977957633650654470915858913831  R = 63095504823861720439  L = 3981042728977957633622842421532852073160

Si Q = 3
P = 3981042728977957633650654470915858913831 A = 48280590019558924983 B = 82456381070844400657
i = 1 M = 1 S = 27812049383006840671 L<P : True

Et on boucle sur cette ligne...

Et ne perds pas ton temps avec les racines carrées...
Vois :

n=63094356715608696926381197557554234379625310554711453864375923727662163230808394316395194680654556960697524632598720323766501473030408534874382964883126860709185690102995837158849314781242242754210890969005683515763583063838621240426989722134009648160727402919968667486929039080697180501228511193044567884678516027280508811244663777625236069839834642321
>>> len(str(n))
353
>>> Rac2(n)
251185900710228353625655108952663405535919062817316936476666854871741026694017197416142676644915893714140303331399065966965867712533044407388677889970875814265979168448506481413
>>>

J'ai fabriqué un nombre n
Je demande combien il a de chiffres : 353.
Je demande ensuite sa racine entière qui s'affiche instantanément

Je te conseille vivement de repenser ton algorithme, au niveau des tests d'arrêts : j'improvise parce que tu n'es pas clair (désolé) !

Point de détail que tu dois connaître je pense :
A=25
Si A est pair Alors
     print ("A est pair")
print ("A est impair")
Si je programme ça, j'obtiens bien : A est impair.

Mais si je commence par A = 24, s'affiche
A est pair
A est impair

1er cas : condition non vérifiée, le langage de programmation zappe la ligne suivante et va écrire : A est impair.
2e cas : condition vérifiée, le langage de programmation va écrire : A est pair et passe à ce qui suit, donc écrit aussi A est impair...
Donc quand tu écris ta ligne SI... ALORS, je ne sais que faire de ta ligne suivante !

Si j'écris :
A=24
Si A est pair Alors
     print ("A est pair")
Sinon Alors
    print ("A est impair")

Plus de problème...

On peut même avoir cette structure :
Si condition ALORS
    Fais qq ch
Sinon Si autre condition Alors
    Fais autre chose
...
Sinon ALORS
    exécution finale

Mais toi quand tu enchaînes des ligne de SI ALORS, je dois comprendre quoi ?
Parce que dans ce cas
que la première condition soit vérifiée ou non le programme enchaine avec la 2e ligne de SI... ALORS

Comprends-tu ce que je veux te dire ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#41 20-08-2019 15:58:20

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

Re : Alignement de produits

Qu'est-ce que tu appelles "boucler sur cette ligne" ? Tourner en rond ?  Je ne remets pas ton code en cause. J'essaye de comprendre. Le STOP final intervient si on a C et D >= S ou F et G >= S ou C, D, F et G >= S, avec L < P évidemment. N'est-ce pas clair ? Où faut-il placer ce STOP sinon ?  Tu as peut-être une idée, l'algo me semble quand même assez simple à comprendre.
Un produit est "aligné" :

Si A et B >=S avec L<P
Si C et D >=S avec L<P
Si F et G >= S avec L<P

Avec la possibilité d'avoir deux produits alignés si on a C, D, F et G >=S en même temps.

Cela semble pourtant simple.

Hors ligne

#42 20-08-2019 16:52:35

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

Re : Alignement de produits

Il faut me dire quelles lignes exactement sont obscures dans mon organigramme. C'est la seule méthode valable pour se comprendre.

Hors ligne

#43 20-08-2019 18:59:49

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

Re : Alignement de produits

RE,

Boucler, c'est tourner en rond : la ligne se répète à l'identique tant que je ne stoppe pas le processus artificiellement.
Sinpn une boucle en informatique c'est un processus qui exécute la même suite d'instructions de façon systématique tant qu'elle ne remplit la condition du test d'arrêt : c'est une forme de factorisation.
Ex : je dispose d'un algorithme qui après calculs sur 4 lignes dit si un nombre est premier ou pas...
On me donne 2000 nombres.
J'ai 2 solutions :
- je travaille bêtement je demande à la machine de répéter 2000 fois les 4 lignes : j'aurai donc écrit 8000 lignes
- je "factorise", dans ces 4 lignes je remplace le nombre à tester par une variable...
   je fournis la liste des 2000 nombres
   je construis une boucle dans laquelle ma variable va se voir affecter l'une après l'autre la valeur de chacun des 2000 nombres
   et les 4 lignes calculs seront exécutées 2000 fois, une pour chaque valeur différente de ma variable...
Au total j'aurais peut-être en tout 8 lignes qui vont faire le boulot des 8000 du cas précédent...
Tu vois ?
Et la boucle s'arrête lorsqu'elle a traité chacun des 2000 nombres...

Si L > P alors
Si L < P alors S = P - L
Si P = N, si P > S^2, si A >= S,  si B >= S alors STOP (print P, A et B)
Si P = N, si A ou B < S alors P = N x T. Aller à next i.
C = A x (M - 2)
D = B x Q
Si P > S^2, si C >= S, si D >= S alors print P, C et D
F = A x Q
G = B x (M - 2)
Si P > S^2, si F >= S, si G >= S alors print P, F et G
Si C ou D < S AND si F ou G < S alors P = N x T. Aller à next i.
STOP

Je vais te récrire en Pseudo-Code comme je l'ai compris ...

SI L > P ALORS
       ALLER LIGNE AUGMENTER i
FIN SI

SI  P = N ALORS
        SI P > S^2 ET (SI A >= S ET  B >= S) ALORS
                   AFFICHE VALEUR de P, A et B
                   ARRET DU PROGRAMME
         FIN SI
SINON
         SI (A<S ou  B < S) ALORS
                      P = N x T.
                      ALLER LIGNE AUGMENTER i de 1
         FIN SI                  
FIN SI

C = A x (M - 2)
D = B x Q

Si P > S^2 ET si C >= S ET  si D >= S ALORS
       AFFICHE VALEUR de P, C  et D
FIN SI

F = A x Q
G = B x (M - 2)

Si P > S^2 ET  si F >= S Et si G >= S ALORS
       AFFICHE VALEUR de P, F  et G
FIN SI

Si C ou D < S ET Si (F<S ou  ou G < S) ALORS
        P = N x T
        ALLER LIGNE AUGMENTER i de 1
FIN SI
ARRET PROGRAMME

 

     

Je préfère être bien clair :
SI condition ALORS
       instructions
FIN SI

Autres instructions
condition vérifiée :  instructions exécutées et on passe à Autres instructions
condition non vérifiée :  instructions non exécutées et on passe à Autres instructions.
Dans les 2 cas on passe à Autres instructions sauf lorsqu'après le SI on trouve un SINON...

Que les instructions de la ligne que j'ai mise en rouge soient exécutées ou non, la ligne suivante sera traitée.
Ce qui n'est pas le cas lorsqu'il est écrit : ALLER LIGNE AUGMENTER i de 1
il est bien clair qu'on
* remonte jusqu'à ta ligne (cf post #1) i = i+1
* augmente effectivement i de 1
* puis qu'on reprend tous les calculs dans l'ordre à partir la ligne suivante
c'est là ce que fait typiquement une boucle...
Suis-je clair ?
Ai-je traduit correctement ce que tu as écrit ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#44 20-08-2019 21:55:01

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

Re : Alignement de produits

C'est tout à fait clair pour le passage concerné.
A propos de l'exemple avec 20 chiffres (40 chiffres de N) on a un alignement par A et B tous deux supérieurs à S (L < P). Pour N = 60 chiffres, ça reste incompréhensible. Les diviseurs augmentent en multipliant N par T, de même que S, mais tôt ou tard S devient plus petit, et l'on doit avoir de fait C et D ou F et G > S. Aucune raison que ce soit différent pour les grands nombres. Le cauchemar serait que les deux diviseurs ne soient JAMAIS supérieurs à S en même temps, mais c'est extrêmement peu probable.

Dernière modification par cosinuspax (21-08-2019 08:15:35)

Hors ligne

#45 21-08-2019 08:32:25

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

Re : Alignement de produits

Salut,

Lorsque tu écris post #40 "je sais ce qui n'allait pas", fais-tu allusion au produit de 60 chiffres ?
Entendons-nous bien : lorsque P = N on a forcément i = 1. Dès que l'on fait P = N x T, P est supérieur à N et i > 1.

Dernière modification par cosinuspax (21-08-2019 08:49:17)

Hors ligne

#46 21-08-2019 09:13:33

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

Re : Alignement de produits

Peut-être que ceci peut t'intéresser :

https://www.developpez.net/forums/d6010 … s-nombres/

Hors ligne

#47 21-08-2019 13:46:48

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

Re : Alignement de produits

Re,

J'ai écrit très exactement :

J'ai trouvé ce qui ne va pas : i ne s'incrémentait plus si P=N, affichage P,A et N puis stop.
Si j'enlève le stop, j'ai toujours P=N (c'est ça l'alignement ?) et i croît (je l'arrête quand ?)...

Quant à ton histoire de racine carrée, je te répète : tu perd ton temps...
Pas convaincu par un nombre à 353 chiffres ?
Bon, j'en prends un autre :

>>>n=236067977499789696409173668731276235440618359611525724270897245410520925637804899414414408378782274969508176150773783504253267724447073863586360121533452708866778173191879165811276645322639856580535761350417533785003423392414064442086432539097252592627228876299517402440681611775908909498492371390729728898482088641542689894099131693577019748678884425089754132956183176921499977424801530434115035957668332512498815178139408000562420855243542235556106306342820234093331982933959746352271201341749614202635904737885504389687061135660045757139956595566956917564578221952500060539231234005009286764875529722056766253666074485853505262330678494633422242317637277026632407680104443315825733505893098136226343198686471946989970180818952426445962034522141192232912598196325811104170495807048120403455994943506855551855572512388641655010262436312571024449618789424682903404474716115455723201737676590460918529575603577984398054155380779064393639723028756062999482213852177348592453515121046345555040707227872421534778752911212121184331789335191038008011118179004590618846249647104244248308880129406811314695953279447898998931691577460792461807500679877124204847380502773608291559913962448914943560683462529064408327944642680888989746046308353537875042061374757606883401879088192559117973574464190248537871146194090191913688035110397638436041281058110378698951852014697045642021763892890884446377826385893792440046028875405398460156061705223615090385775410042193684987254271850375215557693316723004778269866662446210678464272486385274578213410067985645305271124180595972849455195451310172309750871496529436282902540012047780324155464489988706177998190033606562243886409639287753517266295971438227956307956149523015444235016538917278640913041979397111356282139367457681174922067562108887818873671671627622623379877111539509682982890683018259081401003895509723261508452834587893607346396117236678366571982607921440289119008995584241522495712918323216741189975720139403788197728015288723418668345418382867300274315320229607628612524761028642346963020111802691220236015810127628430541861717618575140690101561629091763981267225965596282349067854624161857945584442659612858937564854974803490110813557514166474621951830235525956886569495816353036195574536832235265007722422582873668753404700742232661451739766517420672644476219618024220397983536829835024662680305467687674469001869572099585891983164402516209196461851057442482740872298204109437109922361752853153022121091762951208863569597169079462572603250897522297040434128808223321533901195515665140790221756461654212957878042231382078553676907726666431316593195462068720646450914872744082488128177653475168679073591862464426874641991499778939913129472014591999678257620639485262503594282864024622559103789556345382831782355983912962511600369101312659057197182001817243605955127578519983299892856386044587104693349518653903308428042182726036389445415780244174574723414697299996312510945622746959743313905497801628876810654967562756493383488845926982941631401470509141417954535093868764523909372306624190671584760292185470204202383804367213501946179150579154936284590867887709863106792607614583383516922029219901101296073586082944731440797201471015218046346250032264096871672963540969636219832048850465433443803786691927572175750574034787186060267180224742047834253180940526988056615337534872773026542125606463481386346689646871290637011627062170994667015199335574248981167273508265781724812649127907144250485223405560573120864698856746034511488116745565359920634787280265752554024873596622892873895341062544984820943340027649566257313012986868360780082035610679011754491733115104587831647941683545966745646230513852185991884480001121253357348715847944908169635303946872530537889777105440549557494671967073455522815183424102653868967505983299961872049235688535145553580038383814076104409224649647826522086543833690246120472557870908649235399515073780835273005095702764926293166727667520471557985345977264323716791807279963676916552898249196187408611111922759468652269660989899373621790713926965635625772507292168406789307638883891428533364743678983664741817149700533136079794881324210720612800521634225331990839873746321891445776218415576455440727336896306512345682353819585333310447693766227437059838432638104031372624456414311997529368471041185707435156153121007354626195038244794777444936516114319489148096859756147044319685335325156154124038860801085100316625006035068188234382038597807689450066597604900287359368833895919090609182062762324374091359957327323492119140006891940227050362692013131070406957762348299882549652830427113552788078142077417636467613606700076093600349616441182193688405289280437541068020063605763328830618278789631280638564557096482902100637765037994014972457588431179148564043331412437618115617610064935398259457442077414739481287133491784051731314795712171913306821407199566408926726929709789953277707020910545964845813996977073936560929194915253028687181018766424874866677410333142980118142113404977597160874363025220088076297608145048812328580449564543054482241701315776774249872702136127303334864446555355115947985407524638294094647910241214110079841768852074175816866685236768271941563296591074286439223790075954292600151119507591407104542898638264345112880256618361009001798437410242372138671463077918701580601473454046628330640846803107482885374308110232959222866460497088081881382291227974605207903656336068965050865347715180112086404907454385824972916266688339705987827149573979159728789960460942339343147245678240362546258331799055198384406367447136545587712746625309599718249265500601211851349099588701762385901137098651871063745828360227282437494150525621373966027152104943889118643910719220905660629767823538602393171668628849789797131168501668218859005543951667044885825147298761508342274784875202870136597569865425995024573763920996715503175435608213942639335069543895845273038032679542569478158672222382817996611206722121974343566110870807121790585816369282874278588756271209640778958251490154151150206004841453258003618084586849885181213322826645744539613802919890239909560327983028252250514565613286625233149387763902128843347743600022008436966051618330867674984728236777712937028630012746380859029629388486292179050941440748111338261384419816096389059502213009285621083551051819037426377671829531992082635920418830617171066477545076046545526595474428625593643343246884236640360576282549488633769443691878556287094819999814446640611852595322247665596663397650786252401300740576895657333880894615894209522511731675059724725019996464671943101446767666488163051556386728525260866053179163416009025577462318711754944345129894001032733451543078419681900654902243073746018243992590455318263274187937214542685385246309506608759866331622147392862843439588681127831024216216272525377713949613612023383788350054459748

Il a 6789 chiffres, ça te paraît suffisant pour une démo ?
Je cherche sa racine carrée entière, je vérifie que  (r+1)²>n, puis que r²<n:

>>> r=Rac2(n)
>>> r
15364503815606597596910607037611598658188019063570084988704989539284420203633434914655247429013421386763999794834544283720419773819320422899714096884339460781925708938611438119383498201833866334409592936046927960023631057811382300137791389959128156356508786779880771173855722618546496615499855444555320543199929116950938753861382640139380872507588471962197418206132778684774397756940797561915111720243887694899018276390397113593310543631100008596885913200419753468511130745730534730069592186906375687592937553707622681803944439491823000913104841693795574976383596012258349780647213995521353823530034131452145895559454037756213323218516024465047927609382452546338497164232429147089214710422673016925451008024137664792025825472377759978476867673115748560550316040605392471431240115559220234791826542627284533851065000922353796855774269191116283608417829799789495849348439325630071340746158023300130916997509913915569936632169281090667956860984500954597170950778216686709109399329438178679542896511179076040699793246951917550266852470935462507328405089390485154955410978048328829901641940216317771598725899405491019409979244162678862277815686211270345551798182973981091810321515537921179803636635000635664573139951734439568486135413866779114623091252563953798261669560579532037094840027707294763172132824335136785573324907645065126370326051330058753660451339869340946541094894919560199199337089396726527220610086756880477235496978880524216529326540696515403145278636993549393980459476311842009004005762443599358440518869918489221838848292301031469058959145635264652466056800478454716617925911248969091154335018902426038863519867339117727909128640491124437438605075571011672340868295419763953890396851295417705360694718429127836331634748133728851111165134279077187899693200536123815128349623315167202450217800163182171319611251996845066148939968056166751788045323400683138428571789378088966666529203052139727508035125983684809450351990702512051829987238172479543780734110557974252157159310446238211946248441136030807443523526232473423449024060227670691904107796346425114848582222079057976101373463441786534940299467403474816941158397528098277829397846913863242851395154050353455655515966876159035650429320535408495801337892953395760094864907290743000800763726154935343685477236773466019632546201404012596749353418064672315450961637399953431768004387966406814922597606612995293213308618645910741411815836911291969558548265882030176949159825242872910616882427735523510687288784285859649424010439888160244482000854265489452848031124319118628001076496532412235279465309212169505999089785291124326368560701607741698580387354960067715756737051216023463064566238701593055530450104486355791312076889393307866962694021696390898858436790857727804105451135244550296491781015111188575839206792522503832844988610236335544603372942498248947762965598680252906045225585081733557637514857772995516150822560984096568594749733535583270094078030164107306772234586667316126133760873905078643750154633743202604572016961437093028181457057414108910885614832247982065493819963764663666553790049112260594493997765087972434593010165045422126016235082418495770713615001497376854172515633900092249962779353943446290879188271333425349447010573885471484537525200562460599230509305062328109211825785845489983667830272006350519848839789773393034472081942156163740947135216927584567406360827813624531072387288889552276068906777935654
>>> (r+1)**2>n
True
>>> r**2<n
True
>>>

Pas de délai d'attente "visible"...

Tu es du genre têtu, hein ?
C'est bon ? Convaincu ?

Exit ton souci de racine carrée...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#48 22-08-2019 09:04:53

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

Re : Alignement de produits

Salut Modo Ferox,

Je t'ai envoyé ce lien uniquement pour info, pas pour remettre en cause ta bonne foi. Je sais bien que tu as de "gros muscles" informatiques, et personne n'en doute ici.
Par ailleurs, tu as peut-être l'impression que j'exploite ton talent de programmateur à mes propres fins, ce que je peux comprendre. Aussi je te propose qu'on arrête ici le tandem. Merci pour ta collaboration.

Cos

Hors ligne

#49 22-08-2019 13:39:22

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

Re : Alignement de produits

Bonjour,


Je ne me suis pas exprimé en tant que Modo Ferox, ma casquette réversible était du côté contributeur ^_^

Gros malentendus !

Je t'ai envoyé ce lien uniquement pour info, pas pour remettre en cause ta bonne foi.

Loin de moi, cette pensée...
Simplement, j'avais déjà précisé que ces problèmes de racines carrées ne pouvaient être une explication : j'y remédiais pour les grands nombres.
Alors en votant le lien je me suis dit que tu ne considérais peut-être pas un nombre de 353 chiffres assez grand...
Aussi t'en ai-je fourni un de 6789 chiffres (j'ai trouvé la suite 6-7-8-9 amusante) et fourni la vérification de ce que sa racine entière calculée était exacte.
Comme ça tu n'allais pas perdre ton temps avec un pb inexistant
Point.
Pas de mauvaises intentions à supputer de ma part, ni de "roulage de mécaniques" (y a bien bien plus fort que moi...)

Mon Credo : TDARSAQQ, Toujours Disposé A Rendre Service A QuelQu'un...
Je n'aime pas laisser un problème en rade : j'en éprouve un sentiment d'insatisfaction.

Par ailleurs, tu as peut-être l'impression que j'exploite ton talent de programmateur à mes propres fins

Pourquoi donc ?
Pas du tout, je suis adepte du Logiciel Libre :
- Logiciel dont le code source est à libre disposition de qui pense être capable de le comprendre...
- Logiciel qu'on peut modifier à sa guise sans autorisation
- logiciel qui, une fois modifié par nos soins, est librement redistribuable à titre gracieux ou même onéreux (sans droits d'auteurs à payer)

Logiciel Libre (ex : suites bureautiques LibreOffice.org et Apache OpenOffice.org) $\neq$ Logiciel propriétaire (suite Office de Microsoft).

Si tu veux vraiment qu'on ne collabore plus, ok, ça te regarde...
Mais moi, je vais continuer à chercher à comprendre.
J'ai d'ailleurs repris...
Une phase m'avait échappé :
Ok ?

Entendons-nous bien : lorsque P = N on a forcément i = 1. Dès que l'on fait P = N x T, P est supérieur à N et i > 1

.
J'ai vérifié mon code :

SI  P = N ALORS
       SI P > S^2 ET (SI A >= S ET  B >= S) ALORS
             AFFICHE VALEUR de P, A et B
             [s]ARRET DU PROGRAMME[/s] --> je retournais à augmentation de i
        FIN SI
SINON
        SI (A<S ou  B < S) ALORS
                P = N x T.
                ALLER LIGNE AUGMENTER i de 1
        FIN SI                  
FIN SI

Rectification faite  avec test pour Q =3 et Q=5 :

Avec : A = 48280590019558924983  B = 82456381070844400657  N = 3981042728977957633650654470915858913831  R = 63095504823861720439  L = 3981042728977957633622842421532852073160

Si Q = 3
P = 3981042728977957633650654470915858913831 A = 48280590019558924983 B = 82456381070844400657
i = 1 M = 1 S = 27812049383006840671 L<P : True

Si Q = 5
P = 3981042728977957633650654470915858913831 A = 48280590019558924983 B = 82456381070844400657
i = 1 M = 1 S = 27812049383006840671 L<P : True

2e correction
Au lieu d'arrêter le programme je retourne à Augment i de 1 en forçant i à 0, ainsi après i=i+1, il repart à 1
Sortie :

Avec : A = 48280590019558924983  B = 82456381070844400657  N = 3981042728977957633650654470915858913831  R = 63095504823861720439  L = 3981042728977957633622842421532852073160

Si Q = 3
P = 3981042728977957633650654470915858913831 A = 48280590019558924983 B = 82456381070844400657
i = 1 M = 1 S = 27812049383006840671 L<P : True

Si Q = 5
P = 3981042728977957633650654470915858913831 A = 48280590019558924983 B = 82456381070844400657
i = 1 M = 1 S = 27812049383006840671 L<P : True

Ce qui ne change rien, mais prouve que je n'ai toujours pas compris comment coder.
Voilà mon pseudo code de A à Z


A,B =  48280590019558924983,82456381070844400657
print("Avec ")
P=A*B
R = Rac2(P)
L=R**2+R
print("A =",A," B =",B," N =",N," R =",R," L =",L,"\n")
   
Pour Q ALLANT De 3 A 5   #boucle 1
     print ("Si Q =",Q)
     i=0 et stop=0
    TANT QUE stop $\neq$ 1  # boucle 2
            i=i+1
            SI  i == 1 ALORS
                 M=1
            SINON:
                M=M+2
                R = Rac2(P)
                L=R**2+R
           FIN SI
           TANT QUE 1 est VRAI   # boucle 3 infinie : sortie avec break ("casser")
                 T=Q*M
                 SI L>P:
                      P=N*T
                      break  # retour à la ligne  i=i+1
                 FIN SI
                 SI  P = N ALORS
                       SI P > S^2 ET (SI A >= S ET  B >= S) ALORS
                             AFFICHE VALEUR de P, A et B
                             AFFICHE VALEUR de i, M, S, L>P (là on aura TRUE ou FALSE)
                             i=0
                             break
                       FIN SI
                  SINON
                       SI (A<S ou  B < S) ALORS
                            P = N x T.
                            break   # retour à la ligne i=i+1
                       FIN SI                  
                  FIN SI
                  C = A x (M - 2)
                  D = B x Q
                  Si P > S^2 ET si C >= S ET  si D >= S ALORS
                        AFFICHE VALEUR de P, C  et D
                   FIN SI
                   F = A x Q
                   G = B x (M - 2)
                   Si P > S^2 ET  (si F >= S Et si G >= S) ALORS
                         AFFICHE VALEUR de P, F  et G
                   FIN SI
                   SI (C<S OU D <S) ET (F<S OU G<S) ALORS
                          P = N x T
                          break   # retour à la ligne i=i+1
                   FIN SI
                   stop=1  # pour pouvoir sortir de la boucle 2
                   break   # une fois sorti de la boucle 3
           FIN boucle 3
       FIN boucle 2
FIN boucle POUR
     

Toi, tu es le mieux armé pour comprendre...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#50 22-08-2019 18:50:01

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

Re : Alignement de produits

Salut
@Yoshi:
pour pouvoir le coder , peut être qu'il faudrait que son algorithme  ne change pas ....en fonction des résultats ..! #post 1

je viens de jeter un regard sur ce qu'il veut faire , je constate qu'il y a des anomalies tu ne peux pas avoir L = R² + R , et avoir aussi  (P/R = q) et donc : L = q*R

Si il veut utiliser les deux cas avec soit L = R² + R et L = r * q , il faut le spécifier ...non ?

exemple tiré de son premier post #1:

Exemple : 11 x 19 = 209 et Q = 3. Ce produit est non aligné puisque L > P, et il en est ainsi jusqu'à T = 15 (209 x 15 = 3135 = 55 x 57 = (11 x 5) x (19 x 3)).
Avec M = 1, deux formes de produits sont possibles. Exemple : 29 x 71, non aligné, aligné avec 29 x 71 x 3 (S = 15), donne 29 x 213 et 71 x 87.

je refait sa méthode:
L =R² + R =14*14 + 14 = 210 > p, d'où L>p.
mais: L = R*q = R² < p . donc il pousse plus loin pour avoir : 209 * 3 * 5 = 11*19*3*5 = 3135, qui va bien donner un produit aligné selon son idée:

racine de 3135 = 55 = R
3135 / R = q = 57
3135 = 55*57 = 3*5*11*19

donc pourquoi faire L = R² + R , à quoi sa rime puisque, cela serra > P; autrement dit :

si P/R = q = R et ben on saute , on prend directement p * Q = prime = 3, 5, 7 ou etc un nombre premier Pi < A, ou à B peut importe....

sinon à quoi bon on passe purement et simplement à deux nombres premiers A et B , ayant une différence entre leur racine carrée...
exemple 181 * 211  , donnera L = R * q = 195 * 195 = R² d'où R² < P; ce qui n'est pas le but je suppose...
mais 181 * 241 = P = 43621 sa racine R = 208 puis P / R = 43621 / 208 = 209, et bien entendu L = 208*209 = 43472 qui est < P. Mais L est pair et 208 = 2^4 * 13
quel est le but ?
d'avoir par exemple : (181*241* 3) = 130863 ; puis L = R² = 361*361 = 130321 < 130863
ou :
(181 * 241 * 13) = 567073 ; puis L = R² = 753*753 = 567009 qui est < 567073

il semblerait qu'il suffit simplement d'avoir un petit facteur Premier., ou d'avoir un écart entre les deux racines carrées des deux facteurs premiers A et B.....

quand à avoir la valeur entière d'une racine carrée ce n'est pas la le problème, comme tu l'as d'ailleurs montré au dessus avec un entier de 3000 chiffres ou plus, 10000....

bonne soirée.

Hors ligne

Pied de page des forums