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

#1 28-10-2015 20:51:40

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Mon "projet" semestre 1

Bonsoir à tous,
étant en L1 parcourt spécial j'ai un petit travail de recherche à faire en plus, je voulais de préférence des probabilités (marche de l'ivrogne en une dimension mais un programme a préféré donner ce sujet à quelqu'un d'autre) donc voila mon sujet:

Un ensemble de points du plan est dit intégral si et seulement si la distance entre deux points quelconques de cet ensemble est un nombre entier. Quels sont les triangles rectangles intégraux ?

Voila, je n'ai pas encore réfléchi au problème mais j'aurais surement des question dans un certain futur donc j'ouvre ce sujet, je ne demande absolument pas d'aide pour le moment, je veux le travailler un maximum seul.

Dernière modification par Terces (21-12-2015 22:29:54)

Hors ligne

#2 28-10-2015 23:02:40

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Mon "projet" semestre 1

Salut,

merci de ne pas nous demander de l'aide :-) tu peux revenir nous voir quand tu veux !

Hors ligne

#3 14-11-2015 20:36:49

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

Bonsoir(jour),

dans le cadre de ce projet je suis tombé sur ceci:
a² congru 0[2n]          avec donc a et n entiers
et j'aimerais connaitre a en fonction de n, mais sur des cas particuliers, j'en arrive à simplifier une racine carré donc en écrivant mon nombre sous forme radicale et ceci pour trouver a... J'en ai déduit que a ne s'exprimait pas en fonction de 2n, est-ce que c'est le cas en espèrent que non ?

Exemple n=90
a² congrus à 180 donc il existe k entier tel que a=racine(180*k) et pour que a soit entier on peut transformer 180 en 6*racine(5) et je me suis dit que la solution était donc racine(180*5*k'²).
mais dans le cas général on ne peut je penses pas trouver ce 5 en fonction de n, telle est ma question dont je redoute la réponse.

merci d'avance.

Dernière modification par Terces (14-11-2015 20:37:54)

Hors ligne

#4 14-11-2015 21:14:17

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

B'soir,

Vite fait parce que je suis de retour après 4 h de train et HS...
Juste une piste que je te soumets et creuserait demain :
[tex]a^2 \equiv 0\quad [2n] \; \Leftrightarrow \exists k \in \mathbb{N}^*,\; a^2=2kn[/tex]
D'où j'en infère que kn est une puissance impaire de 2...
Je le répète, je sais pas où ça peut mener, c'est une réaction instinctive.

@+

Hors ligne

#5 15-11-2015 09:50:18

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

yoshi a écrit :

B'soir,

Vite fait parce que je suis de retour après 4 h de train et HS...
Juste une piste que je te soumets et creuserait demain :
[tex]a^2 \equiv 0\quad [2n] \; \Leftrightarrow \exists k \in \mathbb{N}^*,\; a^2=2kn[/tex]
D'où j'en infère que kn est une puissance impaire de 2...
Je le répète, je sais pas où ça peut mener, c'est une réaction instinctive.

@+

Salut, long voyage^^
Hum je ne comprends pas vraiment ton raisonnement, ici c'est a l'inconnu donc n(qui est pair....) est "quelconque" donc si je prends par exemple n=10   je ne peux pas le noter 2*22|N-1.

Hors ligne

#6 15-11-2015 09:51:39

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Re,

yoshi a écrit :

D'où j'en infère que kn est une puissance impaire de 2..

Incomplet : kn est en fait le produit d'une puissance impaire de 2 par un carré..
Si n=90, [tex]n= 2 \times 3^2 \times 5[/tex]
Il suffit de prendre k=5.On aura alors [tex]a^2=2\times 2\times 3^2\times 5^2=900[/tex]

Quelques exemples :
n premier n = 13, une solution : [tex]k = 2\times 13[/tex]  alors [tex]a^2=2^2\times 13^2[/tex] et a = 26
[tex]n = 84 = 2^2\times 3 \times 7[/tex], d'où une solution [tex]k = 2\times  3\times 7[/tex] et [tex]a^2 = 2^2\times  3^2\times 7^2[/tex], a =42
n est un carré : [tex]n = 13^2 =169[/tex], une solution k = 2  et [tex]a^2= 2^2\times 13^2[/tex], [tex]a= 2\times 13 = 26[/tex]

@+

[EDIT], je vois seulement ta réponse ...
J'avais prévenu que je n'avais pas les idées très claires, mais c'était une début correct : j'ai précisé ma réponse ci-dessus.
[tex]n= 10  = 2 \times 5[/tex], d'où une solution k = 5  et [tex]a^2=2^2\times 5^2=100[/tex], a =10

Dernière modification par yoshi (15-11-2015 09:55:25)

Hors ligne

#7 17-11-2015 22:17:53

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

yoshi a écrit :

Re,

yoshi a écrit :

D'où j'en infère que kn est une puissance impaire de 2..

Incomplet : kn est le produit d'une puissance impaire de 2 par un carré..
Si n=90, [tex]n= 2 \times 3^2 \times 5[/tex]
Il suffit de prendre k=5.On aura alors [tex]a^2=2\times 2\times 3^2\times 5^2=900[/tex]

Quelques exemples :
n premier n = 13, une solution : [tex]k = 2\times 13[/tex]  alors [tex]a^2=2^2\times 13^2[/tex] et a = 26
[tex]n = 84 = 2^2\times 3 \times 7[/tex], d'où une solution [tex]k = 2\times  3\times 7[/tex] et [tex]a^2 = 2^2\times  3^2\times 7^2[/tex], a =42
n est un carré : [tex]n = 13^2 =169[/tex], une solution k = 2  et [tex]a^2= 2^2\times 13^2[/tex], [tex]a= 2\times 13 = 26[/tex]

@+

[EDIT], je vois seulement ta réponse ...
J'avais prévenu que je n'avais pas les idées très claires, mais c'était une début correct : j'ai précisé ma réponse ci-dessus.
[tex]n= 10  = 2 \times 5[/tex], d'où une solution k = 5  et [tex]a^2=2^2\times 5^2=100[/tex], a =10

Salut, oui je sais faire des cas particuliers, je me suis dit qu'il y avait peut être une périodicité des résultats (minimums) mais je n'en vois pas car par exemple j'ai trouvé un ensemble de solution de ce problème:

a=2 X |N* X n  si  n pair et   (2 X |N* +1) X n si n impair
b=(a²-n²)/2n
c=n+b

pour tout n entier supérieur à 1(si je ne dit pas de betise...).

pour n=2     a4   b3   c5
pour n=3     a9   b12   c15
pour n=4     a8   b6   c10
pour n=5     a15   b20   c25


mais j'oublis pr exemple le cas 17/15/8 car la formule générale que j'ai fait ne part pas d'une valeur minimale*** (après c'est périodique donc on le retrouvera plus loin mais il manque ce qu'il y a avant.)

Enfin la je n'attends pas une réponse de ta part car on ne peut pas dire que j'ai beaucoup cherché à partir de la. J'ai quelques ides pour peut-être trouver un meilleur ensemble, je te tiens au courant.

*** enfin je te dis ca mais je n'ai pas encore vérifier en résolvant ces petites équations comme dans les posts précédents à la main, je le ferais ce WE surement.

Dernière modification par Terces (17-11-2015 22:20:12)

Hors ligne

#8 22-12-2015 17:06:23

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

Re,

Petite question : quand je compte les triangles, imaginez les coté a en abscisse(positif), b en ordonné(positif) et c l’hypoténuse est-ce que les triangles a=6, b=8, c=10 et a=8, b=6, c=8 sont les mêmes ? D'un coté je me dis que un triangle est juste défini par la longueur de ses cotés et de l'autre je vois que si j'effectue une rotation à l'un, je n’obtiens pas l'autre.

PS: J'ai une solution au problème mais elle nécessite l'utilisation des diviseurs du carré de a... Ce n'est je trouves donc pas une solution efficace.

Hors ligne

#9 23-12-2015 16:34:26

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

Re,
Une autre question aussi:
L'année dernière il me semble avoir entendu des gens parler d'une "unité" pour caractériser la vitesse d'un programme et j'aimerais bien savoir cette unité et savoir si je peux la calculer sur deux programmes que j'ai fais. Si jamais cela n'existe pas, je dirais juste que le deuxième est bien plus rapide...

Hors ligne

#10 23-12-2015 16:54:15

Ostap Bender
Membre
Inscription : 23-12-2015
Messages : 242

Re : Mon "projet" semestre 1

Bonjour,

Trouver les triangles rectangles intégraux, c'est trouver les triplets pythagoriciens.

Ostap Bender.

Hors ligne

#11 23-12-2015 18:35:03

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

Ostap Bender a écrit :

Bonjour,

Trouver les triangles rectangles intégraux, c'est trouver les triplets pythagoriciens.

Ostap Bender.

Salut,
Oui je sais, donc je suppose que 3/4/5 et 4/3/5 c'est deux solutions différentes mais j'aimerais en être sur.

Hors ligne

#12 23-12-2015 19:46:41

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Bonsoir,


je suppose que 3/4/5 et 4/3/5 c'est deux solutions différentes

Pour moi, non...
Réponse faite au vu de mon expérience des carrés magiques...
Tu prends le calque du triangle 3,4,5 qu'est ce qui t'empêche de l'appliquer exactement sur le 4,3,5 ?
S'ils étaient différents, ils ne devraient pas être superposables, non ?
Ah, tu vas me dire que les lettres ne sont plus au même endroit ?
Dans ce cas le triangle ABC tels que AB=3, AC =4,  BC = 5  et  le triangle ABC tel que BA =3, BC =4 et AC = 5 seraient des triangles différents...

Au passage :
n étant un entier impair (supérieur à 1) :  [tex]n[/tex], [tex]\frac{n^2-1}{2}[/tex], [tex]\frac{n^2+1}{2}[/tex] sont les côtés du triangle rectangle.

@+

[EDIT] Je pars demain et Vendredi, je rentre Samedi.
J'espère pouvoir me connecter entre-temps

Dernière modification par yoshi (23-12-2015 21:12:03)

Hors ligne

#13 23-12-2015 23:37:05

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

yoshi a écrit :

Bonsoir,


je suppose que 3/4/5 et 4/3/5 c'est deux solutions différentes

Pour moi, non...
Réponse faite au vu de mon expérience des carrés magiques...
Tu prends le calque du triangle 3,4,5 qu'est ce qui t'empêche de l'appliquer exactement sur le 4,3,5 ?
S'ils étaient différents, ils ne devraient pas être superposables, non ?
Ah, tu vas me dire que les lettres ne sont plus au même endroit ?
Dans ce cas le triangle ABC tels que AB=3, AC =4,  BC = 5  et  le triangle ABC tel que Ba =3, BC =4 et AC = 5 seraient des triangles différents...

Au passage :
n étant un entier impair (supérieur à 1) :  [tex]n[/tex], [tex]\frac{n^2-1}{2}[/tex], [tex]\frac{n^2+1}{2}[/tex] sont les côtés du triangle rectangle.

@+

[EDIT] Je pars demain et Vendredi, je rentre Samedi.
J'espère pouvoir me connecter entre-temps

Salut,
merci pour ton indice m'ai j'était déjà au courant en fait^^ d’ailleurs ce n'est pas l'unique solution parfois mais bon je ne t'apprends rien.

Pour le programme j'ai trouvé une "solution" pour bien faire comprendre que le 2eme est plus rapide ! Mais bon j'aimerais quand même connaître l'unité dont j'ai parlé pour peu qu'elle ne soit pas le fruit d'un quiproquo.

Concernant le fait de savoir si 3/4/5 et 4/3/5 sont les mêmes rectangles, il y a quand même marqué dans l'énoncé que:
Un ensemble de points du plan est dit intégral si et seulement si la distance entre deux points quelconques de cet ensemble est un nombre entier. Quels sont les triangles rectangles intégraux ?
Donc si on regarde en premier des coordonnées de points, ca change peut-être la donne mais bon je n'ai qu'à le prendre à mon avantage selon les situations :)

Voila le programme que j'ais fait si ca vous intéresse:

La première partie du programme c'est censé être le programme idiot et le deuxième celui un peu moins idiot :/ et le programme affiche le temps de calculs pour différentes grandes valeurs de a.
Par contre le résultat est un poil faussé car en plus de faire fonctionner le programme je fais des trucs comme écrire ce message donc ce qui doit faire fluctuer les performances de mon PC.

programme:
>>>
import time
from math import*
for a in range(0,10001,1000):
    t1=time.time()           
    for b in range(1,int((a*a-1)/2)+1):
            if sqrt(a*a+b*b)%1==0:
                a=int(a)
                b=int(b)
                c=int(sqrt(a*a+b*b))
                #print(" a=",a," b=",b," c=",c)
    t2=time.time()
    n=1
    while n<a :
        n+=1
        if a%2==0:
            if (a*a)%(2*n)==0 and n%2==0:
                a=a
                b=int((a*a-n*n)/(2*n))
                c=int(b+n)
                #print(" a=",a," b=",b," c=",c)
        elif (a+1)%2==0:
            if (a*a)%n==0 and (a*a)%(2*n)!=0:
                a=a
                b=int((a*a-n*n)/(2*n))
                c=int(b+n)
                #print(" a=",a," b=",b," c=",c)
    t3=time.time()
    print("a=",a," ",t2-t1," ",t3-t2)
>>>

résultat:
>>>
a= 0   0.0   0.0
a= 1000   0.7710440158843994   0.002000093460083008
a= 2000   3.086176872253418   0.003000020980834961
a= 3000   7.104407072067261   0.005000114440917969
a= 4000   13.303761005401611   0.007001161575317383
a= 5000   20.817189931869507   0.008001089096069336
a= 6000   29.555689811706543   0.011001110076904297
a= 7000   40.7913339138031   0.014000177383422852
a= 8000   58.18732810020447   0.013000965118408203
a= 9000   73.19118690490723   0.018001079559326172
a= 10000   89.3801121711731   0.01500082015991211
>>>

Hors ligne

#14 24-12-2015 14:44:14

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Salut,

Concernant le fait de savoir si 3/4/5 et 4/3/5 sont les mêmes rectangles, il y a quand même marqué dans l'énoncé que:
Un ensemble de points du plan est dit intégral si et seulement si la distance entre deux points quelconques de cet ensemble est un nombre entier. Quels sont les triangles rectangles intégraux ?

Oui, et alors ? qu'est-ce qui infirme là-dedans ce que j'ai dit ?
Pour moi, rien ! Tu introduis une notion d'ordre qui n'existe pas dans ta problématique...

Concernant les triplets Pythagoriciens, quand j'ai écrit :
n étant un entier impair (supérieur à 1) : [tex] n[/tex] , [tex]\frac{n^2-1}{2}[/tex] ,  [tex]\frac{n^2+1}{2}[/tex]  sont les côtés du triangle rectangle.
J'ai cité des "pères de famille"....
Prenons par exemple n=3, le triangle 3,4,5 a une descendance infinie
[tex]\forall k \in \mathbb{N}*,\; 3k,4k,5k[/tex] est un triangle rectangle intégral

Je vais essayer de comprendre ce que tu fais dans tes progs (non documentés).

Si je peux faire mieux, quand j'aurai compris, je te le dirai...

@+

Hors ligne

#15 24-12-2015 14:57:16

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Re,

Nan, je ne comprends pas ce que tu cherches à faire...
Si tu pouvais me dire ça rapidement.
Et de toutes façons écrire cette condition :
if sqrt(a*a+b*b)%1==0:
ça sert à quoi, puisque c'est toujours vrai ?
A moins que tu ne réussisses à me sortir un nombre qui ne soit pas multiple 1...

En outre :
elif (a+1)%2==0:
si (a+1)%2 = 0 alors a+1 est pair...
Si a+1 est pair alors a est impair !
Donc tu gagneras du temps en testant directement :
elif a%2==1 :

@+

Hors ligne

#16 24-12-2015 15:51:02

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

yoshi a écrit :

Salut,

Concernant le fait de savoir si 3/4/5 et 4/3/5 sont les mêmes rectangles, il y a quand même marqué dans l'énoncé que:
Un ensemble de points du plan est dit intégral si et seulement si la distance entre deux points quelconques de cet ensemble est un nombre entier. Quels sont les triangles rectangles intégraux ?

Oui, et alors ? qu'est-ce qui infirme là-dedans ce que j'ai dit ?
Pour moi, rien ! Tu introduis une notion d'ordre qui n'existe pas dans ta problématique...

Concernant les triplets Pythagoriciens, quand j'ai écrit :
n étant un entier impair (supérieur à 1) : [tex] n[/tex] , [tex]\frac{n^2-1}{2}[/tex] ,  [tex]\frac{n^2+1}{2}[/tex]  sont les côtés du triangle rectangle.
J'ai cité des "pères de famille"....
Prenons par exemple n=3, le triangle 3,4,5 a une descendance infinie
[tex]\forall k \in \mathbb{N}*,\; 3k,4k,5k[/tex] est un triangle rectangle intégral

Je vais essayer de comprendre ce que tu fais dans tes progs (non documentés).

Si je peux faire mieux, quand j'aurai compris, je te le dirai...

@+

Re,
Ok mais après pour ce qui est de la recherche (vis à vis des "pères de famille") je dois y réfléchir un maximum seul.

Pour ce qui est du programme, alors:
On note le temps dans t1 puis on calcul tous les triplets correspondant à un a fixe et on regarde le temps que ca a pris (t2-t1)
Puis on fait pareil avec le "deuxième programme" en faisant t3-t2.
Et ceci pour a allant de 0 à 10 000 avec un intervalle de 1 000.

on affiche pas les triplets mais juste le temps de calculs des deux "programmes" pour différentes valeurs de a.

Pour ce qui est de sqrt(a*a+b*b)%1==0 et bien le reste ne sera pas 0 si la racine n'est pas entière.

PS: si tu veux voir que je ne mens pas^^ voila le programme un peu modifié pour voir le résultat(j'avais fait une erreur aussi):

import time
from math import*
for a in range(0,1001,100):
    t1=time.time()           
    for b in range(1,int((a*a-1)/2)+1):
            if sqrt(a*a+b*b)%1==0:
                a=int(a)
                b=int(b)
                c=int(sqrt(a*a+b*b))
                print(" a=",a," b=",b," c=",c)
    t2=time.time()
    n=1
    while n<a :
        if a%2==0:
            if (a*a)%(2*n)==0 and n%2==0:
                a=a
                b=int((a*a-n*n)/(2*n))
                c=int(b+n)
                print(" a=",a," b=",b," c=",c)
        elif (a+1)%2==0:
            if (a*a)%n==0 and (a*a)%(2*n)!=0:
                a=a
                b=int((a*a-n*n)/(2*n))
                c=int(b+n)
                print(" a=",a," b=",b," c=",c)
        n+=1
    t3=time.time()
    print("a=",a," ",t2-t1," ",t3-t2)

Je penses que comme ca tu comprendras vite.

Après pour les triangles 3/4/5 et non 4/3/5 je modifierais le programme.
Et il y a d'autres trucs que je dois améliorer, j'avais calculé les maximum de b en fonction a mais pas le minimum, des trucs dans le genre.

Hors ligne

#17 24-12-2015 17:27:29

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Salut,


Tiens, ce lien, je pense, t'intéressera http://capesinterne.free.fr/PLC1/arithm … iciens.pdf.

Je triture ton programme...

Je ne sais pas ce que vais en tirer.

@+

Hors ligne

#18 24-12-2015 19:34:30

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

Programme:
>>>
1-     import time                                                                     
2-     from math import*                                                               
3-     for a in range(1000,10001,1000):                                               
4-         t1=time.time()                                                             
5-         for b in range(a,int((a*a-1)/2)+1):                                         
6-                 if sqrt(a*a+b*b)%1==0:
7-                     c=int(sqrt(a*a+b*b))
8-                     #print(" a=",a," b=",b," c=",c)                                 
9-         t2=time.time()                                                             
10-       n=1                                                                         
11-       while n<a :                                                                 
12-             if a%2==0:                                                             
13-                 if (a*a)%(2*n)==0 and n%2==0 and int((a*a-n*n)/(2*n))>a:           
14-                     b=int((a*a-n*n)/(2*n))                                         
15-                     c=int(b+n)                                                     
16-                     #print(" a=",a," b=",b," c=",c)                               
17-             elif (a+1)%2==0:                                                       
18-                 if (a*a)%n==0 and (a*a)%(2*n)!=0 and int((a*a-n*n)/(2*n))>a:       
19-                     b=int((a*a-n*n)/(2*n))                                         
20-                     c=int(b+n)                                                     
21-                     #print(" a=",a," b=",b," c=",c)
22-             n+=1                                                               
23-         t3=time.time()                                                 
24-         print("a=",a," ",t2-t1," ",t3-t2)                                     
>>>
Explications :
1) Importation du module temps.
2) Importation du module math.
3) On va faire varier a de 1 000 à 10 000 avec un intervalle de 1 000.
4) Avant de commencer la première version du programme, on enregistre le "temps" en t1.
5) La première version du programme va calculer tous les triangles intégraux avec a fixé.
8) Mais nous n'afficherons pas le résultat, on cherche juste le temps de calcul de l'ordinateur.
9) On enregistre le temps a présent, donc t2-t1 sera le temps mis par le programme pour trouver les triangles.
10) On va maintenant chercher les même résultats mais avec le programme issu de l'étude mathématique, on initialise n à 1.
12) On regarde si a est pair.
13) S'il respecte les conditions vu dans l'étude mathématique alors :                                                           
14) Il calcule b.
15) Et c.
16) On n'affichera pas les résultats pour les même raisons qu'avant.
17) Si maintenant a est impair et :
18) Si a respecte les conditions vu dans l'étude mathématique alors :
19) Il calcule b.
20) Et c.
22) On ajoute 1 à n pour tester tous les cas n<a.
23) On enregistre le temps a présent, donc t3-t2 sera le temps mis par le programme pour trouver les triangles.
24) On affiche les différents temps mis par chaque programme pour a fixé (avec en premier le programme version 1 puis celui issu de l'étude mathématique).

Hors ligne

#19 25-12-2015 11:47:48

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Re,

J'avais quelque peu oublié les échanges qui précédaient (il y a plus d'un mois), donc je ne saisissais pas très bien pourquoi tu cherchais de cette façon... :-)

J'ai testé autre chose : j'ai repris un prog générateur de triangles scalènes (les seuls à pouvoir être rectangles).
J'y ai ajouté des tris par contraintes : seulement les tr rectangles, seulement ceux qui ne respectent pas la seule formule que je connaissais et seulement ceux qui ne sont pas des membres d'une famille,
avec [tex] n impair >=3, n, \frac{n^2-1}{2},\frac{n^2+1}{2}[/tex]...
Là sans surprise, entre les périmètres : 100 et 600, j'ai ces triangles :
28 45 53
16 63 65
33 56 65
48 55 73
36 77 85
39 80 89
20 99 101
65 72 97
60 91 109
44 117 125
24 143 145
88 105 137
51 140 149
85 132 157
52 165 173
119 120 169
57 176 185
28 195 197
104 153 185
95 168 193
84 187 205
133 156 205
60 221 229
140 171 221
32 255 257
105 208 233
120 209 241
69 260 269
sans surprise parce que n est... le plus souvent pair, mais il y a aussi quelques impairs...
Je peux te trier les triangles par ordre de 1er côté croissant, par exemple. Je vais aussi reprendre le lien que je t'ai donné et voir si à partir de son exposé, je peux les fabriquer...

[EDIT2]
Encore un peu de lecture :

@+

[EDIT] Bon, bin si on suit ce premier lien donné :
http://capesinterne.free.fr/PLC1/arithm … iciens.pdf
et qu'on aille lire ce second ensuite :
http://www.association-tremplin.org/sit … iciens.pdf
on peut se demander si le premier ne s'est pas - largement - inspiré du 2nd...
En tous cas, ils sont d'accord, et je crois que ma question concernant la génération des triplets pythagoriciens a obtenu sa réponse...

Maintenant, à toi de voir comment raccrocher ça à ta problématique et faire ton propre mix, si ça t'apporte quelque chose...

[EDIT2]
Encore un peu de lecture :
http://histoiredechiffres.free.fr/forma … iciens.pdf
http://mathravel.free.fr/Tpinfo/3eme/tripletpyth.pdf

Ta méthode est plus originale et plus universelle semble-t-il : je vérifierais qu'elle est exhaustive...

Dernière modification par yoshi (25-12-2015 16:34:09)

Hors ligne

#20 26-12-2015 17:31:16

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

J'ai commencé à regarder les tétraèdres qui ont un coin formé uniquement d'angles droits, j'ai fait un programme mais il est lent (façon de parler) :/ en tout cas, pour a allant de 3 à 1000, il n'en trouve pas. Pour le programme, ce n'est pas juste une boucle dans une autre dans une autre, je me suis servi de mon précédent programme mais je ne sais donc pour le moment pas s'il fonctionne, je vais essayer la méthode brutale.
Enfin je n'y est pas encore réfléchi mathématiquement... je vais voir ca.

Dernière modification par Terces (26-12-2015 17:32:49)

Hors ligne

#21 26-12-2015 19:43:24

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Bonsoir,


Bonne chance dans la suite de tes recherches.
Pour ma part, j'arrête le dialogue de sourds.

@+

Hors ligne

#22 26-12-2015 23:55:37

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

yoshi a écrit :

Bonsoir,


Bonne chance dans la suite de tes recherches.
Pour ma part, j'arrête le dialogue de sourds.

@+

Salut,
désolé mais je préfère ne pas regarder les autres solutions de ce problème afin de ne pas faire de "plagia", je suis quand même allé voir rapidement tes liens par curiosité avec les formes de type u²-v², 2uv et u²+v² je crois mais ce ne serait pas honnête si je me servais de ces solutions en les ayants vus.
Pour le tétraèdre, j'ai finalement un bon algorithme rapide et qui trouve tous les côtés.
Merci pour tes conseils et ton aide en tout cas, je trouves que c'est un problème intéressent.

Hors ligne

#23 27-12-2015 07:31:55

freddy
Membre chevronné
Lieu : Paris
Inscription : 27-03-2009
Messages : 7 457

Re : Mon "projet" semestre 1

Terces a écrit :
yoshi a écrit :

Bonsoir,
Bonne chance dans la suite de tes recherches.
Pour ma part, j'arrête le dialogue de sourds.
@+

Salut,
désolé mais je préfère ne pas regarder les autres solutions de ce problème afin de ne pas faire de "plagia", je suis quand même allé voir rapidement tes liens par curiosité avec les formes de type u²-v², 2uv et u²+v² je crois mais ce ne serait pas honnête si je me servais de ces solutions en les ayants vus.
Pour le tétraèdre, j'ai finalement un bon algorithme rapide et qui trouve tous les côtés.
Merci pour tes conseils et ton aide en tout cas, je trouves que c'est un problème intéressent.

Salut,
ce n'est pas la bonne manière de faire de la recherche que d'ignorer ce que s'est déjà fait pour deux raisons :
- tout d'abord, tu n'auras pas assez de toute ta vie pour réinventer la roue tout seul ;
- ensuite, ceux qui vont lire ton travail vont le trouver inintéressant, au simple motif que des esprits plus brillants sont déjà passés par là. A défaut d'accusation de plagiat, on te reprochera de ne pas t'intéresser à ce qui a déjà était fait sur le sujet. Dans les deux cas, ce sera une sévère critique de ton manque de culture mathématique et d'imagination créatrice.
Prends en connaissance pour trouver en quoi ta méthode (en fait, je ne sais pas sur quoi tu bosses* ...) est novatrice, originale ou mieux adaptée avec les instruments de calculs contemporains.

*je ne sais pas car j'ai bien compris que tu écris sur le site sans trop chercher à savoir si on te comprend ou pas, sans trop demander d'avis, ou ne pas suivre ceux qui ne te vont pas ... Je me demande pourquoi alors tu viens soumettre tes idées, si tu ne t'intéresses pas aux réponses ou remarques qu'elles suscitent.

Hors ligne

#24 27-12-2015 13:49:34

yoshi
Modo Ferox
Inscription : 20-11-2005
Messages : 17 404

Re : Mon "projet" semestre 1

Ave,

Il n'a jamais été question de plagiat...
Si les liens ne t'intéressaient pas, il fallait le dire, on aurait gagné du temps, ça ne m'aurait pas choqué.

Pour le reste, je rejoins freddy.

J'ai récrit ton prog.
J'ai trié stocké tous les résultats en triplets tels que a<b puis j'ai ajouté un tri afin que pour un a donné, les triplets soient rangés par ordre de b croissant, puis supprimé tous les multiples ne laissant que les "pères" de famille...


from time import time
from fractions import gcd
from operator import itemgetter

td=time()
L,L_purge=[(3,4,5)],[(3,4,5)]
for a in range(5,1001,5):  
    for n in range(1,a):
        if a%2==0:
            if (a*a)%(2*n)==0 and n%2==0:
                b=(a*a-n*n)//(2*n)
                c=b+n
                # je stocke les triplets, dans l'ordre a<b<c
                L.append((min(a,b),max(a,b),c))
                #print(" a=",a," b=",b," c=",c)
        else:
            if (a*a)%n==0 and (a*a)%(2*n)!=0:
                b=(a*a-n*n)//(2*n)
                c=b+n
                # je stocke les triplets, dans l'ordre a<b<c
                L.append((min(a,b),max(a,b),c))
                #print(" a=",a," b=",b," c=",c)

# Tri sur le 2e item en gardant l'ordre des 1ers items            
L=sorted(L,key=itemgetter(0,1))

## Je ne garde a,b,c que s'ils sont premiers entre eux
for a,b,c in L:
    if gcd(gcd(a,b),c)==1:
        L_purge.append((a,b,c))
        print("a = ",a," b =",b," c =",c)

tt=time()-td
print(tt)
 

J'initialise les listes avec le 1er triplet qui n'apparaît pas sinon.
J'ai pris ensuite tous les a de 5 à 1000 et de 5 en 5.
Il y a 2373 triplets au départ, et il n'en reste plus que 453 après avoir fait le ménage...

Au cas où : gcd = Greatest Common Divisor

@+

Hors ligne

#25 27-12-2015 22:17:42

Terces
Membre
Inscription : 16-07-2015
Messages : 466

Re : Mon "projet" semestre 1

Re,
Ok les gars :)
Yoshi ton algo est intéressent je trouves, je voulais démontrer un truc et j'avais du mal mais de toute façon c'était faux, j'ai pu le voir avec ton algorithme. Ca va me faire du boulot en plus ca^^, je pensais que les triplets pères avec a impairs étaient b= (a²-1)/2 mais je n'arrivais pas à montrer que si n divise a² alors n divise a sachant que n < a(rac(2)-1), mais si on prends a = 39, 39²/9 est entier mais 39/9 non et n < a(rac(2)-1).
Au fait, on peut améliorer la vitesse du programme en disant que n < a(rac(2)-1) < a. En fait je viens d'essayer et ca prend plus de temps finalement... sans doute a cause du temps de calcul mais bon, on peut tout simplement arrondir à 0.42 et la je crois que c'est plus rapide.

PS:
Si ca t'intéresse, voila le programme pour les tétraèdres même j'ai encore pas mal de taff à faire sur les triplets de Pythagore : désolé je t l'enverrais plus tard, le site n'aime pas trop mon utilisation des [] avec des i dedans, je le changerais plus tard... Voici le résultat pour a allant de 3 à 100 :


>>>
OA= 44 OB= 240 OC= 117    AB= 244 BC= 267 CA= 125
OA= 44 OB= 117 OC= 240    AB= 125 BC= 267 CA= 244
OA= 85 OB= 720 OC= 132    AB= 725 BC= 732 CA= 157
OA= 85 OB= 132 OC= 720    AB= 157 BC= 732 CA= 725
OA= 88 OB= 480 OC= 234    AB= 488 BC= 534 CA= 250
OA= 88 OB= 234 OC= 480    AB= 250 BC= 534 CA= 488
>>>

https://commons.wikimedia.org/wiki/File … orem_1.svg

PS: désolé pour ta remarque du a%2==1 plus performant que (a+1)%2==0, je ne l'avais pas vu et je m'en suis rendu compte avec la remarque de freddy, j'ai essayé et sur qulques test il m'a semble que c'était un petit peu plus rapide et bon c'est surtout plus "esthétique".





Re,
J'ai du mal avec ton programme, quand j'essaye de n'avoir que les a < 100 et sans l'intervalle de 5, ils sont affichés deux fois, j'ai fait alors ma propre version et j'aimerais bien comparer le temps de calcul des deux programmes :

from math import*
from fractions import gcd
for a in range(1,101):
    n=1                                                                     
    while n<a*0.42:
        b=int((a*a-n*n)/(2*n))                                     
        c=int(b+n)
        if a%2==0:                                                   
            if (a*a)%(2*n)==0 and n%2==0 and int((a*a-n*n)/(2*n))>a and gcd(a,b)==1 and gcd(a,c)==1 and gcd(b,c)==1:                                                                 
                b=int((a*a-n*n)/(2*n))                                         
                c=int(b+n)                                                     
                print(" a=",a," b=",b," c=",c)                             
        elif a%2==1:                                                       
            if (a*a)%n==0 and (a*a)%(2*n)!=0 and int((a*a-n*n)/(2*n))>a and gcd(a,b)==1 and gcd(a,c)==1 and gcd(b,c)==1:       
                b=int((a*a-n*n)/(2*n))                                         
                c=int(b+n)                                                     
                print(" a=",a," b=",b," c=",c)
        n+=1

Dernière modification par Terces (27-12-2015 23:17:07)

Hors ligne

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quatre-vingt cinq moins cinquante sept
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums