Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#301 Re : Programmation » Essai de mini-tuto Python » 30-10-2019 17:12:06
pour les nombres de Fibonacci en partant de 1, il y a 23 itérations , et il me semble même qu'à l'origine
ça commence ainsi : pour n = 0 et n+1 = 1:
soit 0 +1 =1 première itération
1+1 = 2
1+2 =3
etc
la dernière et 23ème :
28657 + 46368 = 75025 ce qui donne 23 itérations, mais 24 nombres car le dernier est le résultat de la 23ème itération...
la fonction [for in range (1,24) va bien afficher les 24 résultats en partant du 1 ce qui sous entend la première itération 0+1 = 1 et la 23 ème: 28657 + 46368
si on part de 2 et pour for in range (1,25) il y aura 25 nombres pour 24 itérations car le 25 ème nombre serra 46368 + 75025 = 121393 si on compte le 1
sous entendu la première itération = 0+1 =1
Mais pour : for in range(2,25) si il affiche 24 nombres , cela veut dire qu'il va jusqu'à la 23 itération en partant de 2 ; mais il compte en commençant par 1 jusqu'au 25 ème nombre
Donc ou est l'astuce ???
si j'ai bien retenue la leçon .... sinon je vais prendre des coups de Bâtons...
#302 Re : Programmation » Essai de mini-tuto Python » 29-10-2019 18:09:14
Bonjour
("Une petite intro : concernant mon programme de base en Python je dirai qu'il a été multiplié par 50 et un temps divisé par 1000 , au départ il ne dépassait pas le 1000 000 000
ensuite tu l'as simplifié en ne travaillant que dans un famille fixé ce qui a permis d'aller à 150 000 000 000 . puis une personne aussi intéressé que toi la retranscrit en C++ , résultat 15 000 000 000 000 en moins d'une heure , pour un crible c'est pas mal du tout ...")
En lisant tes explications et ce que j'ai pu apprendre avec toi en python , étant à la base complètement nul et autant en anglais ce qui n'arrange pas les choses , je comprend quand même l'idée ; Mais pour un profane il y a des points de bases à vraiment connaître :
1) l'indentation qui change après chaque fonction , ou en dessous de chaque fonction.
2) les lignes print par rapport à ce que l'on veut faire apparaître ne se place pas n'importe où, on le voit dans tes deux exemples...avec fibo..et print avec la même indentation ou pas ??? après la fonction (for i in range(2,25):)
3) certaines fonctions doivent avoir une indentation différente suivant où la fonction est placé :
exemple : la fonction else
if i<4:
print(i,end=",_")
else:
print(i)
Je pense que si à la base on ne maitrise pas bien l'indentation on va galérer , c'est le problème que j'ai rencontré et le reste vient assez vite avec de bonnes explications....
4) quand tu parles du pas dans l'instruction :
le pas: est une variable qui est fixé au départ de la chaine d'instruction , je suppose que dans ce cas précis le pas = fibo1+fibo2, etc fibo2+fibo3...fibo(n) + fibo (n+1)
5) il est vraie que d'écrire ce que fait chaque bloc d'instruction permet de bien appréhender son programme ou sa façon de programmer...
Ton exemple : # ajoute une virgule espace après chaque chiffre
Souvent elle permet d'expliciter ce que va faire le bloc de fonction par exmple:
# On génère un tableau de N/30 cases rempli de 1
# On calcule les produits: j = a * b
j'arrête là ....
#303 Re : Café mathématique » Division d'un rectangle » 26-10-2019 08:20:57
Bonjour
je pense que cela ne serra quand même pas facile de diviser 360° en 28 angles égaux , soit: chaque angle de 12,85714...° quelque soit le point de départ....il serait bon de faire 30 part de 12°; Ce qui serra plus facile à découper , surtout si c'est une pizza.....
Faire un cercle passant par les 4 coins, extérieur au rectangle ou intérieur passant par le point milieu des 4 côtés...Mais Yoshi a surement une meilleur idée....
sinon faire un rectangle de 28cm de périmètre donc L= 8 cm; l = 6 cm et faire 14 parts égales de 2 cm en partant d'un angle ce qui donne 4 intervalle de 2cm sur une longueur et 3 de 2 cm sur la largeur d'un demi rectangle , fois 2 , donnera 28 parts égales .
Ensuite on peut multiplier par 2, la longueur et la largeur; pour augmenter la dimension du rectangle, mais garder 14 parts par demi rectangle..etc...
A Yoshi .....
#304 Re : Programmation » Alignement de produits » 13-10-2019 06:55:04
Bonjour.
Mettons les choses au point @Cosinus : comme vient de te le souligner @Yoshi qui me connait très bien , car si tu regardes 5 sujets en dessous dans ce forum programmation tu verras le travail qu'a accompli @ Yoshi sur mon sujet (" crible en python" LEG; qui est l'algorithme de Goldbach).
Mes interventions n'ont absolument pas le but de saboter ce sujet bien au contraire : le faire avancer afin que je puisse essayer le programme et voir ce qu'il donne en temps... ! toutes mes question ont pour but de dénouer tes lignes de code afin de les comprendre...mais comme tu n'aimes pas donner d'explications ou tu ne peux pas en donner, c'est ton problème...et c'est déplorable de faire une fixation sur les intervention et question des intervenants, sur un forum libre au public.
Que tu veuilles tout faire , pour te trouver des excuses afin de mettre un terme à ton sujet, ça ne regarde que toi. Mais peut être, tu commences à t'apercevoir que ton pseudo algo, ne risque pas de te permettre de factoriser de grands entiers en partant des résultats du programme très bien ficelé et fait par Yoshi.
Même si cela est plus qu'impoli de ta part de te défiler de la sorte , après tout le temps et le travail qu'il t'a consacré; j'espère qu'il finira le programme afin que l'on puisse le tester et voir ce qu'il donne...pour le fun et les intervenants du forum présent, ou qui regarde le déroulement du programme sans intervenir ou participer.
Je suis désolé, si toute vérité n'est pas bonne à dire.....Sur un forum, il faut quand même admettre toutes les questions même si elles peuvent paraître dérangeantes, du moment que c'est constructif. Preuve : regarde ta boucle de 52 à 59 il lui a fallu une ligne pour l'optimiser dans le programme....ainsi que le début du programme avec les racines carrées entières...etc...etc
#305 Re : Programmation » Alignement de produits » 12-10-2019 13:00:25
Re LEG : salut comment ça va ?
PS : sauf erreur de ma part, c'est moi qui invente l'algo.
Pour moi ça va très bien ,
on ne te dis pas le contraire et franchement peut importe qui l'invente cet "algo polynôme" par contre c'est toi qui demande la programmation à Yoshi .
on te demande des explications et tu répond toujours à côté , qui plus est : tu mets ces capacités en doute, et il est obligé de sortir l'artillerie pour te montrer que ton invention de ta boucle ne sert à rien.
Alors qu'il aurait été très simple d'expliquer, en répondant ce que tu voulais faire avec cette boucle .... même si ton orgueil doit en prendre un coup ....
Lorsque l'on demande de l'aide pour faire un programme en Python et que l'on y connait rien en programmation , comme moi, le minimum et d'expliquer ce que tu veux faire avec tes pseudos ligne de codes; ce n'est pas difficile....et de répondre par des phrases aux explications demandées et non pas par d'autres questions ou d'autres assertions qui n'ont aucune utilité....normalement il aurait déjà fini la partie finale du programme....!
Exemple : Q est une puissance de 9 à la ligne 52 , je veux connaître l'exposant de 3 pour incrémenter K dans la fonction suivante ligne 60, voila ce que j'ai fais de 52 à 59...point barre.!
Je suis même persuadé que tu l'aurais trouvé tout seul ....et à défaut: ("lui demander comment indexer K en partant de Q ou k =j pour arriver à l'exposant de 3 afin que K=J= exposant ou l'inverse, il a utilisé la même méthode pour la racine carrée en début de programme et c'est simple de voir ce qu'il a fait... ainsi que pour les fonctions suivantes : Def ...etc , Jamais tu lui a demandé que fait tel ou tel bloc = Fontion , à tel ou tel ligne... )
Et s'il te plait , ne me répond qu'il n'était pas obligé.....ou que l'on est pas obligé de participer....
Donc : on continue....
#306 Re : Programmation » Alignement de produits » 12-10-2019 09:09:47
Pour ça je te fais confiance , et pourtant depuis que je lui demande d'expliquer le but de cette boucle , qui pour moi est inutile: pour trouver la valeur de K , ce que tu as parfaitement vue de suite.
["et bien entendu, en fonction du Q, tu trouves le kk.....") il faut bien rire.....
Q=9^26.
test:
52 l'exposant de 3
6461081889226673298932241 le resultat
@+
#307 Re : Programmation » Alignement de produits » 12-10-2019 08:52:53
voila ce que cela donne :
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul 8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>>
RESTART: E:\Documents\.Programe Yoshi-Cosinuspax.py
*************************************************
* Alignements progressif de produits *
* Idée : cosinuspax *
* v.2 *
*************************************************
*******************
Temps écoulé : 0.05 s soit : 0 min 0.05 s
>>> from math import log
>>> Q=2541865828329
>>> k=int(round(log(Q,3),0))
>>> print(k)
26
>>> print(3**k)
2541865828329
>>>
j'ai bien la même valeur que toi :$3^{26}= 2541865828329$
dans l'iDLE directement voila ce que j'ai tapé:
from math import log
Q=2541865828329
k=int(round(log(Q,3),0))
print(k)
print(3**k)
résultat:
RESTART: E:\Documents\.Programe Yoshi-Cosinuspax.py
26
2541865828329
>>>
#308 Re : Programmation » Alignement de produits » 12-10-2019 07:52:34
@cosinus; lorsque @yoshi t'a posé la question, tu lui a répondu avant hier , page 12:
On sort quand W = Q. Si ça n'est pas automatique, on peut le préciser : si W = Q alors k = j.
est ce que tu peux nous dire une bonne fois pour toute à quoi sert ta boucle, au lieu de tourner la tête...?
tu suppose que Q = t/v = 729 soit 81*9 ou 9^3 ou encore 3^6 en vertu de quoi ??? à ce moment du programme ligne 53 ?? puisque ligne 52 on est next j, mais peu importe..la valeur de Q à cet instant....!
W=3, pour j=1
W=9 *3 pour j=2 ; 27< 729=Q
W=27 *3 pour j=3 ;81<Q
W=81*3 pour j =4 ; 243 <Q
w=243*3 pour j =5 ; 729 = Q ? vrai = true donc ....> ligne 60
Or : pour quoi faire tout ça pour rient ? juste pour faire tourner le manège jusqu'à 729 ....au lieu d'expliquer avec des phrases , c'est difficile ?
sauf erreur de ma part, car c'est @Yoshi qui fait le programme :
je lui aurai dit à la ligne 52 si Q>=729 = T/v , aller ligne 60, sinon si Q = 9^n = T/v < 729 alors prendre Q= 729 et aller ligne 60 point barre .
Car tu ne sais pas , qu'elle sera la valeur de Q à la ligne 52 à cet instant du programme en court depuis le début des fonctions...OUi OU NON ?
Pour la nième fois tu peux expliquer la raison de cette boucle de 52 à 59...?
Au lieu de dire: du moment que k=10 = j et Q = 59049 ; Ah bon et en vertu de quoi ??
#309 Re : Programmation » Alignement de produits » 11-10-2019 10:22:59
Et ben dis donc tu en fais des tours de manèges gratuits....lolll
@à Cosinus:
quel est d'après toi, la valeur de Q = T / V à cette ligne 53 ? à ce moment du programme...?
Je suppose qu'étant donné le programme t'a renvoyé à next H , ligne 52, le programme a la valeur de V et de T cet instant...ok
Comment tu peux connaître que T / V = 9^5 ????
puisque tu dis : peu importe du moment qu Q = 9^5 et K =10....
c'est ce que tu espérais avec cette boucle ? qui pour moi, ne sert toujours à rien pour la boucle def suivante : car où il apparait Q ????
#310 Re : Programmation » Alignement de produits » 11-10-2019 07:10:08
Bonjour
@Yoshi ("dans l'attente")
j'aime bien ta question:
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 ?
Et bien, tu ne t'en rappelles pas quand on été petit ? tu faisais des tours de manège et si tu attrapais le pompon, et bien tu continuais à faire des tours gratuits...Donc ton programme à chaque tour il attrape le pompon ...et tu continues ...Loll
#311 Re : Programmation » Alignement de produits » 10-10-2019 17:43:15
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...
#312 Re : Programmation » Alignement de produits » 10-10-2019 13:39:48
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
#313 Re : Programmation » Alignement de produits » 10-10-2019 11:43:23
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.
#314 Re : Programmation » Alignement de produits » 09-10-2019 20:06:59
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....
#315 Re : Programmation » Alignement de produits » 09-10-2019 17:28:22
@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.")
#316 Re : Programmation » Alignement de produits » 09-10-2019 15:14:57
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....
#317 Re : Programmation » Alignement de produits » 09-10-2019 09:09:41
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 ????
#318 Re : Programmation » Alignement de produits » 08-10-2019 22:56:43
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....
#319 Re : Programmation » Alignement de produits » 08-10-2019 21:55:47
Ok Yoshi , pour l'explication ligne 16 et 17 , je ne le comprenais pas comme ça ...
je pense que tu as inverser le signe > en < dans le bloc ci dessous à la ligne: if A>=S and B>=s
def BTA(A,S,P):
B=P//A
if P>S**2:
if A>=S and B<=S:
if A>B:
A=B
concernant ces deux lignes qui te posent problème ensuite :
38 h = 1
39 h = h + 2
tu es sûr que cela ne veut pas dire 38 h =1 initialisé à 1, puis h += 2 il incrémente de 2 lorsque i augmente de 1 ; car ce h, pour moi il remplace V ....non ???
ensuite il vaut peut être mieux tester, une fois ce bloc fini à la ligne 52 ; avant d'aller plus loin......et voir ce que cela donne....
j'ai une erreur de syntax dans ce bloc la troisième condition :
else:
if not T<63:
arret=initialisation2(A,B,S,P)
break
else:
fin_h=1
else: <....ici erreur :invalid syntax
if T in Primes:
A=A0*T
B=P//A
if P>S**2:
if A>=S and B>=S:
j'évite de te souhaiter bon courage mais le cœur y est....
@+
#320 Re : Programmation » Alignement de produits » 08-10-2019 18:25:48
re @Yoshi :
la ligne 31, pour moi il veut dire A prend la valeur de B et B prend la valeur de A donc on inverse ....c'est ce qu'il indique au post au dessus ligne 17,18....etc
mais le problème se situe entre les lignes 20 et 29 ...c'est pour cela qu'il faudrait qu'il éclaircisse ses point ..sauf si de ton côté tu as compris mais remarque du post ci dessus : #271
#321 Re : Programmation » Alignement de produits » 08-10-2019 18:14:57
Ok cosinus mais tu n'as pas fais attention à ma remarque:
tu dis : Produit aligné A PRIORI. Donc A = 17 et B = 21 (on inverse), et on teste 17 : 17 - 15 = 2 qui est bien égal à 1 x 1 + 1. Donc 17 x 21 est un produit aligné PROBABLE
or il y a deux points qui posent problème :
1)
On est à la ligne 16 ok avec P = N*T ou (A*3) * 17 = 357 donc N= P=119 ne vérifie pas l'égalité de cette ligne 16 car S² = 225, d'où on ne va pas à la ligne 20 ok ?
2) donc on passe à la ligne 17 ok ? oui ou non...?
par conséquent : à cette ligne il y a aussi un bug : car à cet instant S = 15, et comme A et B ne sont pas inférieur à 15,
le programme est induit en erreur car, qu'est ce qu'il fait ???
il n'a pas d'instruction il faudrait : sinon si A et B > de S
alors on passe à la ligne 20 ok ?? qui devient : et si A > B on inverse, puis on test cette ligne 20 .
d'où :
3) 20 ("A inverse B") - S = C donc 17-15 = 2 donc ok....
21 : $C\not= 0$
on passe à 22 , 23 et on a F = 1+1+15 = 17
donc 24 : A inverse B = F ......> stop et print
En résumé :
Si ligne 20 $A - S\not= 0$
on passe ligne 21 (calcul ") si valeur entière : $\sqrt{A - S} = R $ et si $A - (R^2 +R +S)= 0$ alors stop et print.....
Sinon on retourne à netx i += 1 donc i = 3 ; pour V+= 2 == 5, T +=2 == 5 qui est premiers...! donc A = A0*T
; A0 = 7 , et 7*5 = 35 qui est le nouveau A ok ? oui ou non ?
mais à cet instant B =21 , donc on inverse encore oui ou non ....? Ou on calcul le P :
A = 21 et B =35 On calcule P ou Pas si oui 35*21 = 735 ?
pour calculer la ligne 28 : B = P /A le quel de A ? si c'est le A0 alors 735/7= 105 =B si c'est A = 35 alors 735/35 = 21 .....??? gros grosse interrogation ....?
d'où P = 21*35 = 735 , on est à la ligne
Don il faut éclaircir ces points avant de toucher au programme et ensuite faire un test avec cette partie programmée....jusqu'à la ligne 29 ou :
29 Si P > S^2, si A >= S, si B >= S, aller à 31 (aligné à priori). Et on parle bien dans ce cas de figure de P = 735 ou de P = 35*105 = 3675 ???
A toi de reprendre point par point ces instrcutions en gardant ces exemples afin qu'il n'y ai pas de confusion....
#322 Re : Programmation » Alignement de produits » 08-10-2019 10:39:43
re : il y a un problème à éclaircir: avec la ligne 16:
16 Si P = N, alors si P > S^2, si A >=S, si B >= S, aller à 20. cette condition est impossible à partir de i=2 donc pour :
i=0 v=1 T=1 , A0=7 ; B=17 ;
1+=1 ==1 donc 7*17 = P = N = 119
1+=1 ==2 donc V=T= T+2 ==3 et A = 3*7 == 21 et 21*17 = 357 avant ta modif on faisait print A,B et P puis stop . ok ?
mais maintenant i = 2 donc P = N*t = 357 donc P ne peut être = N d'origine, soit : N0 = 119 ..ok?
et le calcul de S donne 15 à i==2 .. ok? avec A = 21 et B =17
donc ligne 17, A ou B < S = 15 : non ok ? on ne retourne pas à next i += 1 == 3 , que fait donc le programme à part tourner en rond si on ne déclare pas stop..??
est ce le bug que @Yoshi à rencontrer suite à ta petite vérif page 8 post #200 ?
mais supposions qu'on saute la ligne 17 on va à 20 :
ligne 20 : $A - S\not={0}$ donc : calcul D, calcul F : vérif : $A - D^2 - D - S = 0$ ok ; donc stop et print ; ok ?
d'où cette ligne 17 : si A ou B n'est pas inférieur à S sauter à la ligne 20 ...Non ? etc pour les cas suivants....lignes 30; 45 ...etc
Mais à quoi sert ces deux vérifications par rapport aux programme fait version 1 et 2 où : on avait P > S² avec A et B > S donc print A,B, P et stop ...????
#323 Re : Programmation » Alignement de produits » 07-10-2019 14:28:42
Et Ben tu as sacrément changé la définition d'un produit aligné...et tu changes le programme..car avant il s'arrêtait lorsque
cette condition P>s² est a , B >= S était remplie
maintenant tu le renvois 1er) sur sur 19 ou 20 c'est pareil, ie: si A - S = 0 alors print ...ou si A = D² + D + S sinon on continue...
mais Problème important dans le programme tu vas continuer à calculer lorsque :
52 Si P > S^2, si A >= S, si B >= S, aller à 54 (aligné à priori). Quelle différence avec les deux conditions ci-dessus ???
54 Si A > B, alors A = B
et idem pour la ligne 66...>68
§ Mais alors pourquoi ne pas calculer la ligne 55 avant la ligne 52 qui mettrait un terme, au lieu de créer des redondances....
puisqu'il faut calculer S à la ligne 52, d'où à ce moment la, si A - S = 0 et bien : stop print....! ou :
si ligne 59 si A = D² + D + S § idem pour les lignes 69 et 73,
d'où sinon : P>S², et A,et B > S alors aller à la ligne : si A > B alors A = B
c'est à dire, on connait A et P:
pour chaque produit P calculer $\sqrt{p}= R$ puis calculer $L = R² + r $ ; puis $S = P - L$ et : $\sqrt{A -S} = D$
a) si $A = S$ print stop , ou si $A = D^2 + D + S$ print stop.
b) sinon : P>S², et A,et B > S alors aller à la ligne : si A > B alors A = B....si bien entendu A est > B sinon on continue avec le A en court....??
et tu vas te retrouver ligne 60, qui te renvoie ligne 48 :
("Je pense que là, il va y avoir des Bugs....car avec le test : A0=73 et B =3692347 on se retrouve avec i=19 ,v=37 et T=37 à la ligne next i ")
24 Si A différent de F, aller à next i.
25 Si T est un nombre premier compris entre 3 et 47, aller à next i.
26 h = h + 2 (h = 1)
27 Si h > (T + 1) / 2, aller à next i.
28 Si T mod h = 0, alors A = A0 x h
29 Si T mod h différent de 0, aller à next h.
30 B = T / A
------------------------------------------------------
ligne 30 comment T peut être divisé par A qui est supérieur à T à la ligne 24,
et comme T est premier = 37 on reprend T=39 ,
en principe à cet instant ligne 26, h=3; donc ligne 28 : 39 / 3 = 0 alors :
A= A0*3; mais : A0 = 73 ??
donc 73*3=219
ligne 30 : B = 38 / 219 ???
--------------------------------------------------------------------------------------------------------------
voici le test de Yoshi avec les valeurs de v et T : on est à la ligne 18 : où cette condition P>s² est a , B >= S était remplie donc print résultat; ce qui ne serra plus le cas ok ?:
*** Début du programme ***
A0 = 73
B = 3692347
P = 269541331
V T
1 1
3 3
5 5
7 7
9 9
11 11
13 13
15 15
17 17
19 19
21 21
23 23
25 25
27 27
29 29
31 31
33 33
35 35
P = 9433946585
A = 2555
B = 3692347
-------------------------------------------------------------------------------------------------------------
next i ; i = 19, v = 37, T = 37 et T est un nombre premier.
-------------------------------------------------------------------------------------------------------------
@Yoshi :
que donne le programme si tu l'as modifié uniquement jusqu'à la ligne 31 ? avec la modification et le renvoi de la ligne 18 sur la ligne 20....Puis le renvoi de la ligne :
39 Si A différent de F, aller à next h.
Car à priori suite à cette modif de son post #200; et tes tests du post #201 , plus rien ne fonctionne suite à ce bug relatif à sa modification ou on tourne en rond...car SI l'égalité de la ligne A-S=0 et A = D²+D+S ne se rencontre pas .
Donc A différent de F fait que le programme tourne tourne....le furet.....
#324 Re : Programmation » Alignement de produits » 07-10-2019 11:08:19
voici 3 tests avec A et B premiers au départ:
*************************************************
* Alignements progressif de produits *
* Idée : cosinuspax *
* v.2 *
*************************************************
*** Début du programme ***
A0 = 877
B = 881
P = 772637
P = 772637
A = 877
B = 881
P = 5408459
A = 6139
B = 881
*******************
Temps écoulé : 0.08 s soit : 0 min 0.08 s
>>>
RESTART: E:\\Crible.Programe Yoshi-Cosinuspax.py
*************************************************
* Alignements progressif de produits *
* Idée : cosinuspax *
* v.2 *
*************************************************
*** Début du programme ***
A0 = 881
B = 6139
P = 5408459
P = 5408459
A = 881
B = 6139
P = 37859213
A = 6167
B = 6139
*******************
Temps écoulé : 0.08 s soit : 0 min 0.08 s
>>>
RESTART: E:\Crible.Programe Yoshi-Cosinuspax.py
*************************************************
* Alignements progressif de produits *
* Idée : cosinuspax *
* v.2 *
*************************************************
*** Début du programme ***
A0 = 6139
B = 6167
P = 37859213
P = 37859213
A = 6139
B = 6167
P = 795043473
A = 128919
B = 6167
*******************
Temps écoulé : 0.11 s soit : 0 min 0.11 s
on a bien L<P, A > S et B > S .... pour P = 37859213 .
ou encore :
Pour P = 795043473 et bien on a L < P et A et B > S....stop print...
P = 795043473
A = 128919
B = 6167
#325 Re : Programmation » Alignement de produits » 07-10-2019 10:35:38
Bonjour
@Yoshi:
Si A > B alors A prend la valeur de B Et que devient B ?
Ca n'a que peu d'importance pour vérifier l'alignement de A,B et le produit P, en partant de la valeur d'origine, que tu multiplies P par T , ou A par T , ou encore B par T c'est du pareil au même .....à la base où il n'y a qu'une condition d'alignement : les trois critères qui vérifient A,B et P...§
Si par la suite tu rajoutes des conditions d'alignement ....quel serait le but d'alignement d'origine ?
voila ton exemple page 8 post #190 que tu as détaillé avec les valeurs : i,e,v,t...etc
voici les deux tests tu remarqueras que le temps est quasiment linéaire :
test 1)
*************************************************
* Alignements progressif de produits *
* Idée : cosinuspax *
* v.2 *
*************************************************
*** Début du programme ***
A0 = 73
B = 3692347
P = 269541331
résultat:
P = 9433946585
A = 2555
B = 3692347
*******************
Temps écoulé : 0.09 s soit : 0 min 0.09 s
>>>
test 2)
RESTART: E:\\Crible.Programe Yoshi-Cosinuspax.py
*************************************************
* Alignements progressif de produits *
* Idée : cosinuspax *
* v.2 *
*************************************************
*** Début du programme ***
A0 = 45413
B = 3507065749624756498911323
P = 159266376887709066885059911399
résultat:
P = 77027314874113107478158991641287681822487280899
A = 21963464723281779041913
B = 3507065749624756498911323
*******************
Temps écoulé : 0.08 s soit : 0 min 0.08 s
>>>
donc que tu multiplies uniquement A par T, avec A < B et des-que A devient > B, et bien tu inverse et tu multiplies B par T mais avec le T en court....inférieur à 49 ,etc etc puis V = 7 multiplié par 9^x>0 donnera T , et T * A ou B en court......etc..etc,jusqu'au résultat tel que ci-dessus....
Et à chaque fois que A ou B devient supérieur à l'autre et bien inverse....!
Car de toutes les façons le produit P d'origine il y a longtemps que A et B ne seront plus deux facteurs premiers simultanément.
Il n'y a qu'au début , lors du premier choix que A et B doivent être premiers...
Je pense d'ailleurs que si tu t'amuses à modifier le programme lorsque A >b alors break et on inverse B *T en court tant que B< A ou tant que A<B on mulitplie par le T en court ....sans rien changer aux valeurs de e,v,t...avec T < = 49, pour V = 7 puis réitération V * 9^x donnera T = 63 qu'il multipliera soit A soit B tant que les 3 conditions d'alignement ne sont pas vérifiées .....etc etc.
pour moi : il n'y a que cette inversion à modifier si A > b alors B*T et on continue tant que B< A puis à nouveau si B > A , alors A*T tant que les 3conditions ne sont pas vérifiées soit: L < P avec A et B > S stop ! ....Non ?
car cela ne sert à rien de repartir avec T = 1 lorsque A > B où B devient B0 c'est absurde à mon avis , facile à vérifier...et je me demande même si cela sert à quelque chose d'inverser...
puisque dans les tests que j'ai fait ou que tu as fait dans le résultat final, on a bien l'alignement mais avec A > B....







