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

#226 01-08-2014 12:04:02

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Toujours aucun triangle isocèle avec point M confondu avec le centre de gravité... Alors qu'il y en a pour les scalènes...

C'est donc qu'il ne doit pas y en avoir ? ! ? 

     Je suis perplexe...


@+

Hors ligne

#227 01-08-2014 12:07:59

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,
Oui et non.
J'avais testé tout fonctionnait..
Et puis comme d'hab, une modif de nom à la dernière minute...
Oh, ça marche encore et les résultats ne sont pas les bons : trop et pas assez).
Tu vas comprendre...
Il y a 2 fonctions l'une nommée
def ScalenesAigus(minp,maxp):
l'autre
def ScalenesSimples(minp,maxp):

Il faut simplement renommer ScalenesSimples en ScalenesAigus  et ce qui était ScalenesAigus en ScalenesSimples...
C'est dans les ScalenesAigus que je vire les triangles avec un angle obtus : c'est le boulot de la formule avec les carrés après le if cité..
Dans les autres, le centre de gravité, de par sa nature, est toujours à l'intérieur du triangle, donc le test est inutile...

Je vais appliquer la modif dans le code précédent.
J'ai cherché s'il existait une formule pour l'orthocentre : pas trouvé.
Je pense pouvoir en créer une (je viens de regarder 10 min, je vais la finaliser d'abord sur papier).
T'en as pas une dans ta manche des fois ?

Sinon, j'ai retesté, pas de lézard...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#228 01-08-2014 12:38:30

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Bin si, y avait un lézard...
Ton étonnement m'a surpris : j'ai donc repris la def des centre de gravité scalènes et transposé pour les tr isocèles.
J'ai relancé : AM, BM, CM sortaient identiques aux côtés !
Diable !
A y regarder de plus près, j'avais mal placé le /3 de tes formules.
J'ai corrigé, relancé : rien, nada !

J'ai fait la modif pour les Scalènes (copié/collé) : il y a toujours des résultats...

Périmètre minimum souhaité ?  300
Perimètre maximum souhaité ?  500




** Triangles Scalènes ayant un Centre de gravité à distances entières des sommets **

Périmètre :   300  *   99  114   87  ---    59   65   49
Périmètre :   324  *  113  137   74  ---    63   80   44
Périmètre :   330  *  105  141   84  ---    69   78   42
Périmètre :   378  *  135  144   99  ---    69   87   62
Périmètre :   390  *  132  135  123  ---    74   79   72
Périmètre :   400  *  146  166   88  ---    74  100   58
Périmètre :   416  *  131  158  127  ---    85   87   68
Périmètre :   432  *  144  177  111  ---    86  101   62
Périmètre :   440  *  140  188  112  ---    92  104   56
Périmètre :   448  *  154  178  116  ---    86  104   68
Périmètre :   456  *  144  183  129  ---    94  101   67
Périmètre :   468  *  159  171  138  ---    89  100   81
Périmètre :   486  *  175  178  133  ---    87  109   84
Périmètre :   490  *  193  214   83  ---    87  133   68
Périmètre :   490  *  164  205  121  ---    98  117   67
Périmètre :   490  *  160  193  137  ---    98  109   75

          +++ Temps de calcul avant affichage : 0 min 0.5 s +++

N-B
Ordre de sortie :
BC,AB,AC  et AM,BM,CM


Donc ta perplexité a une raison de fond maintenant...
Qu'est-ce peut bien cacher le triangle isocèle ?
A part ce que j'ai déjà dit, on impose deux contraintes supplémentaires :
- deux distances doivent être égales
- et de plus, les 2 distances aux extrémités de la base...

Je corrige sur le code publié...

Tu ferais mieux de le copier pour remplacer ce que tu as déjà : ainsi toi et moi on aura le même code et les mêmes nos de lignes via le dernier code publié...
Plus facile pour la communication

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#229 01-08-2014 13:02:01

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Ok oui, j'avais bien compris le sens des deux lignes en questions. J'ai vu aussi que tu a bien fait la correction dans le post #224.   ;)

___

Pour ce qui est de l'orthocentre il y a me semble-t'il la possibilité d'exploiter la relation d'Euler que tu as toi même évoquée:  Si H orthocentre, avec G le centre de gravité et O le centre du cercle circonscrit, l'on a:

OH = 3 OG          OG = 1/2 GH         OH = 3/2 GH          Par conséquent : connaissant G et O l'on peut déterminer H:


[  Dans la même idée il est possible de déterminer uniquement à partir de O, à quelle distance H se situe par rapport à ce point.

Il suffit d'utiliser:


     [tex]OH =\sqrt{9 R^2-(AB^2+BC^2+AC^2)}[/tex]        (R = le rayon du cercle circonscrit)


[EDIT]: Ceci ne serait en réalité valable que pour un premier test, car il ne serait possible ainsi que de vérifier si M est à la bonne distance de O, ce qui est déjà pas si mal certes, mais insuffisant...  ]


@+

Dernière modification par 0^0 (01-08-2014 13:29:41)

Hors ligne

#230 01-08-2014 13:07:55

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Raison de fond à identifier...

   (Je recopie les modifs comme suggéré...)

@+

Hors ligne

#231 01-08-2014 15:29:14

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,


Pour l'orthocentre il y a bien plus simple!!    :) :) :)


En effet, dans le cas où M est confondu avec l'orthocentre de ABC, les trois conditions suivantes sont forcément réunies et réciproquement:


     [tex]AC^2-BC^2 = AM^2-BM^2 [/tex]

     [tex]AB^2-AC^2 = BM^2-CM^2 [/tex]

     [tex]BC^2-AB^2 = CM^2-AM^2 [/tex]


_______

     [EDIT]:

[  Ceci découle de cela:

J'avais initialement écrit qu'il suffisait de vérifier au niveau des cotés AB, BC et AC si les pieds des hauteurs du triangle ABC sont confondus avec les pieds des hauteurs concernées des triangles ABM, BCM et ACM en utilisant les formules:


[tex]AD_1 = \frac{AB^2+AC^2-BC^2}{2AB}[/tex]       [tex]D_1[/tex] est le pied de la hauteur abaissée de C sur [AB]

[tex]AD_2 = \frac{AB^2+AM^2-BM^2}{2AB}[/tex]      [tex]D_2[/tex] est pied de la hauteur abaissée de H sur [AB]   


[tex]BE_1 = \frac{BC^2+AB^2-AC^2}{2BC}[/tex]         [tex]E_1[/tex] est le pied de la hauteur abaissée de A sur [BC]   

[tex]BE_2 = \frac{BC^2+BM^2-CM^2}{2BC}[/tex]      [tex]E_2[/tex] est le pied de la hauteur abaissée de M sur [BC]   


[tex]CF_1 = \frac{AC^2+BC^2-AB^2}{2AC}[/tex]         [tex]F_1[/tex] est le pied de la hauteur abaissée de B sur [AC]

[tex]CF_2 = \frac{AC^2+CM^2-AM^2}{2AC}[/tex]      [tex]F_2[/tex] est le  est le pied de la hauteur abaissée de M sur [AC]    ]


@+

Dernière modification par 0^0 (02-08-2014 01:19:25)

Hors ligne

#232 01-08-2014 16:06:29

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Ave,



Désolé, je vais être pénible avec les notations : j'ai été formatté conditionné durant les 38 années de ma vie professionnelle et maintenant quand quelqu'un utilise des notations fantaisistes, ça me gêne au plus haut point et me cause des difficultés de compréhension.
Déjà, en Géométrie les points sont désignés par des capitales d'imprimerie...

Ensuite, qu'est-ce que tu entends par :
par C avec h sur AB ?
Déjà je présume que
* h, ici c'est H
* [tex]H \in [AB][/tex]
* par C ?? = ?

Les segments sont écrits avec des crochets :[AB]
La droite dont on connaît deux points A et B s'écrit (AB)
La demi-droite d'origine A passant par B : [AB)
La longueur du segment [AB] est notée AB.

Avec H pied de la hauteur abaissée de C sur [AB] :
[tex]AH = \frac{AB^2+AC^2-BC^2}{2AB}[/tex]
mais alors le par C ???
Ah...
Tu veux peut-être dire qu'il s'agit de la hauteur issue de C ?

Si c'est bien cela, j'ai déjà trouvé ça comme conséquence du théorème d'Al Kashi et de fil en aiguille, je pense avoir tout ce qu'il me faut...
Il faut que j'essaie de simplifier mes formules qui dépendent les unes des autres parce que c'est malsain de chercher une valeur approchée à partir d'une valeur approchée elle-même obtenue à partir d'une valeur approchée...

Or tout ceci est simplifiable, évidemment!!

Bin, qu'est-ce que t'attend alors ? Yaka ! ^_^

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#233 01-08-2014 21:00:29

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Mille excuses pour n'être pas toujours dans les formes...

Je rectifierai dès que j'en aurais l'occasion...

yoshi a écrit :

Si c'est bien cela, j'ai déjà trouvé ça comme conséquence du théorème d'Al Kashi et de fil en aiguille, je pense avoir tout ce qu'il me faut...

C'est bien cela cher yoshi!   :)

Mais je ne l'ai pas déduit pour ma part du théorème d'Al Kashi, mais simplement de celui Pythagore.

yoshi a écrit :

Il faut que j'essaie de simplifier mes formules qui dépendent les unes des autres parce que c'est malsain de chercher une valeur approchée à partir d'une valeur approchée elle-même obtenue à partir d'une valeur approchée...

Pas de valeurs approchées si tu me suis bien...

yoshi a écrit :

Or tout ceci est simplifiable, évidemment!!

Bin, qu'est-ce que t'attend alors ? Yaka ! ^_^

C'est pourtant ce que j'ai présenté en début de post, je te le remets:

Pour l'orthocentre il y a bien plus simple!!    :) :) :)

En effet, dans le cas où M est confondu avec l'orthocentre de ABC, les trois conditions suivantes sont forcément réunies et réciproquement:


     [tex]AC^2-BC^2 = AM^2-BM^2 [/tex]

     [tex]AB^2-AC^2 = BM^2-CM^2 [/tex]

     [tex]BC^2-AB^2 = CM^2-AM^2 [/tex]


Voilà!! Il n'y donc a plus qu'à!!

   ;)

@+

Dernière modification par 0^0 (01-08-2014 21:01:23)

Hors ligne

#234 01-08-2014 22:23:29

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Alors ça,... ça m'avait échappé...
Tu mets des formules assez simples, puis en apparence cela ne te convenant pas, tu en écris d'autres plus complexes, et tu termines en disant : tout ça est simplifiable évidemment...
J'aurais dû comprendre que tu parlais des formules initiales ?
Bin non, je n'avais pas compris... Ce n'est pas comme ça que je pense, désolé !
Par simplification, moi j'entendais pouvoir écrire
AM² = f(AB²,AC²,BC²)
BM² = g(AB²,AC²,BC²)
CM² = h(AB²,AC²,BC²)
Si c'est si simple que cela, j'attends que tu me donne la leçon et que tu m'expliques comment exprimer donc
    AM² en fonction des seuls AB²,AC²,BC²
    BM² en fonction des seuls AB²,AC²,BC²
    CM² en fonction des seuls AB²,AC²,BC²

Voilà un système de 3 équations à 3 inconnues où si j'additionne les premiers membres, j'obtiens 0 et si j'additionne les 2e membres, j'obtiens 0 aussi et c'est là le problème
Jusqu'à présent, je n'ai pas réussi à en tirer AM² en fonction des seuls AB²,AC²,BC², il y a toujours BM² ou CM² de l'autre côté...

Je réessaierai, mais je doute fort d'y arriver, tu sais combien mes capacités mathématiques sont limitées, surtout le soir...
Ô rage, ô désespoir,
ô vieillesse ennemie,...
n'ai-je tant vécu que pour cette infamie
?

Cela dit, pour qu'un système de 3 équations à inconnues ait une solution unique, il faut que le déterminant dénominateur soit différent de 0 ...
Or ledit déterminant dans ce cas est celui-ci :
[tex]det=\begin {vmatrix}1 & -1 & 0\\0 & 1 & -1 \\ -1 & 0 & 1\end{vmatrix}=0[/tex]
Nota
Je pose AM² = x, BM² = y et CM² = z (*)
AM² - BM² c'est x - y
x - y + 0z --> soit -1  1  0 en 1ere ligne
J'espérais donc que quelqu'un pour qui ces choses-là sont si évidentes (sic) me mette sur la voie et passe par dessus le problème...
Dans le cas contraire, ces égalités, quoique très jolies, sont inutilisables.

Il me semble que tu n'as très bien compris  en quoi le strict respect des notations mathématiques facilite les échanges...
J'ai eu l'impression que ta réponse balayait mes objections d'un revers de main rigolard...
Dommage..

Je reprendrai donc demain la mise au propre de mes calculs théoriques qui permettent d'obtenir directement, AM,CM,BM, mais je suis pessimiste quant aux chances d'arriver à des valeurs entières, non pas qu'il n'y en ait pas, mais ces calculs contiendront probablement trop de valeurs approchées pour ça.
J'espère me tromper.

O^O a écrit :
yoshi a écrit :

    Il faut que j'essaie de simplifier mes formules qui dépendent les unes des autres parce que c'est malsain de chercher une valeur approchée à partir d'une valeur approchée elle-même obtenue à partir d'une valeur approchée...

Pas de valeurs approchées si tu me suis bien..

Bin, non justement, je ne te suis pas...
Je ne vois pas de formules exploitables, ainsi que je viens de te le dire, mais tu vas te faire un plaisir de me prouver le contraire ! Trop fort, O^O ! ^_^

@+

[EDIT]
(*)
Si tu préfères, je note en plus a =AC², b = BC², c = AB²
Ton système devient :
[tex]\begin{cases}x - y &= a -b \\y - z &= c - a\\z - x & = b - c\end{cases}[/tex]
je tire x de la 1ere équation :[tex] x = a-b+y[/tex] que je reporte dans la 3e :
[tex]z-(a-b+y) = b - c[/tex] qui donne [tex]z - y = b - c + a - b[/tex] soit [tex]z - y = a - c[/tex] et enfin [tex]y - z = c - a[/tex]

Mon système est devenu :
[tex]\begin{cases}y - z &= c - a\\y - z & = c - a \end{cases}[/tex]
Tout ce que je peux faire c'est exprimer y (ou z) en fonction de z (ou y) et c, a...
Je peux essayer d'exprimer y en fonction de x ou y en fonction de z ou x en fonction de z ou... et reporter l'expression de  x, y ou z obtenue dans une autre équation, j'obtiendrai toujours le même type de système de 2 équations identiques avec l'impossibilité d'isoler x, y ou z seul sans qu'une autre inconnue soit présente.
Ce système est dit indéterminé.


Arx Tarpeia Capitoli proxima...

Hors ligne

#235 02-08-2014 01:41:17

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re salut,

yoshi a écrit :

Alors ça,... ça m'avait échappé...
Tu mets des formules assez simples, puis en apparence cela ne te convenant pas..., tu en écris d'autres plus complexes, et tu termines en disant : tout ça est simplifiable évidemment...

Heu.. J'avais initialement commencé mon post par ce que l'on peut lire à la fin, j'ai ensuite vu que c'était réductible à ce que j'ai finalement choisi de mettre au début, en laissant la partie plus complexe à la fin, pour que l'on comprenne comment j'y étais arrivé... lol

yoshi a écrit :

J'aurais dû comprendre que tu parlais des formules initiales ?
Bin non, je n'avais pas compris... Ce n'est pas comme ça que je pense, désolé !

C'est peut-être qu'il n'y a pas qu'une seule manière de penser?!  (humour)

Peut-être aussi que je pense à l'envers... Certes...

Je méditerai là dessus...

   Mea culpa.

____


Par rapport à ce que tu exposes ensuite, c'est très savant, très intéressant, mais je ne pensais pas que le problème se situait au niveau de la résolution d'équations comme celles que tu exposes. Il me semblait qu'il était seulement question de trouver un moyen simple de vérifier les cas où M est confondu avec l'orthocentre. Pour cette fin, j'imaginais que mes égalités rempliraient leur objectif...

Je n'avais donc pas compris que ton idée était d'exprimer AM², BM² et CM² en fonction des seuls AB², BC² et AC², puisque dans mon esprit l'on partait de valeurs connues qui étaient non seulement AB, BC et AC mais également AM, BM et CM  et qu'en définitive il n'était que question que de vérifications.

Après tes explications et réactions, je vois bien à présent que la problématique à laquelle tu t'attaques est beaucoup plus complexe que celle sur laquelle je croyais que tu m'invitais à réfléchir, et qu'elle va de paire - je n'en doute pas un instant - avec un objectif qui dépasse mes capacités cognitives...


Dis moi si j'ai bien compris: tu cherches une formule permettant de calculer directement AM, BM et CM seulement pour les cas où M est l'orthocentre du triangle ABC, à partir donc de ses cotés.

   Est-ce bien cela?


yoshi a écrit :

Il me semble que tu n'as très bien compris  en quoi le strict respect des notations mathématiques facilite les échanges...
J'ai eu l'impression que ta réponse balayait mes objections d'un revers de main dilatoire..
Dommage..

Non non ce n'est pas le cas, je t'assure, c'est juste que le langage mathématique en général ne m'est pas très familier, c'est tout. Je rappelle aussi que je n'ai pas de formation académique dans cette matière, que je n'y ai pas touché depuis le lycée... Et que ça fait bien loin maintenant!

_____


En te lisant et te relisant, je comprends maintenant ce que tu disais au sujet des valeurs approchées...


Je viens de lire ton EDIT c'est très clair, oui.

_____

J'ai aussi rectifié mes notations fantaisistes du post #232       ;)


@+

Hors ligne

#236 02-08-2014 08:13:05

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Bonjour,

Ce matin, j'ai les idées plus claires...

Dis moi si j'ai bien compris: tu cherches une formule permettant de calculer directement AM, BM et CM seulement pour les cas où M est l'orthocentre du triangle ABC, à partir donc de ses cotés.

Pas vraiment... J'aurais aimé trouver une formule permettant de calculer les distances de l'orthocentre aux sommets du triangle à partir des côtés comme celle fournies pour le Centre de gravité.

Donc, comme j'ai les idées plus claires, j'apporte une précision sur tes formules initiales...
Si je peux obtenir pour AM² (ou BM² ou CM²) une valeur entière alors je trouverais les 2 autres et tes formules m'auront fait gagner du temps (je n'ai pas vérifié, je le ferai, mais ça doit être exact)...
Mais il faut au préalable avoir calculé AM (par ex).
Je peux calculer AM (avec M orthocentre), j'ai ma formule. Mais elle contient des valeurs approchées obtenues préalablement avec sin, cos, tan, et racine carrée...
Alors, comme je me méfie, parce que j'ai tendance à faire compliqué au départ (en Term, personne ne pouvait me pomper dessus, mes solutions étaient (relativement) souvent "tordues" et c'eût donc été se dénoncer...) donc, j'essaie de simplifier ce que j'ai...
Parce que si dans AM, j'ai 3 étages de valeurs approchées, il y a peu de chances pour je trouve AM entier, même s'il l'est.

Pour me changer les idées, je pense aussi au cercle inscrit...

@+

[EDIT]
J'ai peut-être bien une piste à explorer...
En effet, sorties dans l'ordre :
Périmètre,BC, AB, AC  et MA (M orthocentre):

504 168 180 156 --- 99
510 187 200 123 --- 84
520 164 200 156 --- 123
528 204 220 104 --- 85
570 195 204 171 --- 104
624 234 240 150 --- 88
630 225 252 153 --- 120
648 240 252 156 --- 100
648 225 264 159 --- 140
660 225 231 204 --- 120
672 224 240 208 --- 132
684 225 247 212 --- 140

Je poursuis.

[EDIT2]
Et voilà :

504 168 180 156 --- 99 117 75
510 187 200 123 --- 84 164 45
520 164 200 156 --- 123 133 45
528 204 220 104 --- 85 195 21
570 195 204 171 --- 104 140 85
624 234 240 150 --- 88 200 70
630 225 252 153 --- 120 204 39
648 240 252 156 --- 100 208 64
648 225 264 159 --- 140 212 23
660 225 231 204 --- 120 153 108
672 224 240 208 --- 132 156 100
684 225 247 212 --- 140 159 96

Gagné !

Soit un triangle ABC d'orthocentre M, [AH] hauteur issue de A et H le pied sur [BC], [BK] hauteur issue de B et K son pied sur [AC].
BC=a, AC=b, AB=c.
Mieux vaut faire un dessin (à main levée) pour suivre.
1. J'ai besoin de BH. [tex]BH= c\times \cos\hat B[/tex]
    [tex]b^2=a^2+c^2-2ac\times\cos\hat B[/tex]  d'où [tex]\cos\hat B =\frac{a^2+c^2-b^2}{2ac}[/tex]  à partir du th. d'Al Kashi
    Et [tex]BH = c\times \cos\hat B = c\times \frac{a^2+c^2-b^2}{2ac}= \frac{a^2+c^2-b^2}{2a}[/tex]
2. Pourquoi BH ?
    Parce que [tex]BM = \frac{BH}{\cos \widehat{MBC}}[/tex] dans le triangle BMH rectangle en H
    Or, le triangle BCK étant rectangle en K, les angles [tex]\widehat{MBC}[/tex] et [tex]\hat C[/tex] sont complémentaires.
    Donc [tex]\cos\widehat{MBC}=\sin\hat C[/tex].
    Et [tex]\sin\hat C = \frac{2s}{ab}[/tex]

3.  D'où [tex]BM=\dfrac{\frac{a^2+c^2-b^2}{2a}}{\frac{2s}{ab}}=\frac{a^2+c^2-b^2}{2a}\times \frac{ab}{2s}=\frac{b(a^2+c^2-b^2)}{4s}[/tex]
   
    Avec [tex]4s=\sqrt{p(p-2a)(p-2b)(p-2c)}[/tex]
    Après, il a suffit d'adapter les formules à AM et CM...

Et j'ai utilisé la même hiérarchie de calculs que pour le centre de gravité :
   calcul AM
   si entier
       calcul BM
       si entier
           calcul CM
           si entier
                Affichage

Et si j'utilise indifféremment une minuscule pour une longueur et pour un point, les formules accrochent l’œil et demandent à se concentrer au lieu d'être directement compréhensibles...;-)

Dernière modification par yoshi (02-08-2014 11:14:04)


Arx Tarpeia Capitoli proxima...

Hors ligne

#237 02-08-2014 13:11:46

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Salut,

Tout me paraît correct, mais une chose me titille: à vue de nez il ne semble y avoir dans ta liste que des acutangles, ceci me dit qu'il y a peut-être un souci.

[EDIT]: je la laisse juste pour le comique!   ;)


@+

Dernière modification par 0^0 (02-08-2014 13:45:02)

Hors ligne

#238 02-08-2014 13:16:15

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Tout me paraît correct, mais une chose me titille: à vue de nez il ne semble y avoir dans ta liste que des acutangles, ceci ne me dit qu'il y a peut-être un souci.

Où est ta mémoire ?
1. On recherche des points intérieurs au triangle !
2. Si un triangle possède un angle obtus, l'orthocentre sera à l'extérieur du triangle
3. La dernière fois que je l'ai précisé c'était ici, post#210 :
   

Si l'un de ces triangles possède un angle obtus, le centre du cercle circonscrit et l'orthocentre sont extérieurs au triangle, je dois donc éliminer tous les triangles qui ont un angle obtus.
Le centre du cercle inscrit et le Centre de gravité, eux, angle obtus ou pas, sont toujours intérieurs au triangle..

.
A moins que tu n'aies changé d'avis et que les points extérieurs t'intéressent...

Pour le cercle inscrit de centre M avec I intersection de la bissectrice de [tex]\hat A[/tex] avec [BC] !
[tex]AI^2 = bc\left(1-\left(\frac{a}{b+c}\right)^2\right)[/tex]
[tex]BI = \frac{ac}{b+c}[/tex]
Et comme la bissectrice de [tex]\hat B[/tex] coupe [AI]en M :
[tex]\frac{MA}{MI}= \frac {c}{BI}[/tex]
Et donc, je peux trouver AM connaissant BI et AB (=c)...

Je n'ai pas mieux...
Mais, je vais faire une pause.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#239 02-08-2014 13:41:46

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Lol oui, Grand Dieu!!

Oups!! ...

   (Je n'ai pas changé d'avis non...)

___

Pour la bissectrice: c'est très bien comme tu fais, très élégant!


@+

Hors ligne

#240 02-08-2014 13:51:23

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Salut,

Dans ce cas :

#!/usr/bin/python
# -*- coding: UTF-8 -*-

from math import sqrt,asin,pi
from time import clock

def MinMax():
    print ("            +++ Choix des périmètres mini et maxi +++\n")
    while 1:
        mini=input("Périmètre minimum souhaité ?  ")
        try:
            minp=int(mini)
            break
        except ValueError:
            print ("Entrée incorrecte. Veuillez recommencer S.V.P..\n\n")            
    while 1:
        maxi=input("Perimètre maximum souhaité ?  ")
        try:
            maxp=int(maxi)+1
            if maxp<=minp:
                print ("Erreur,le maximum doit être supérieur au mini. Veuillez recommencer S.V.P..\n\n")
            else:
                break
        except ValueError:
            print ("Entrée incorrecte. Veuillez recommencer S.V.P..\n\n")
    print("\n\n")
    return minp,maxp

def Genere_IsoC(minp,maxp):
    Trg=[]
    for p in range(minp,maxp):
        for b in range(1,maxp):
            a=p-b
            if a>b and a%2==0 and asin(b/a)<pi/4:
                Trg.append((p,b,a//2,a//2))
    return Trg

def Genere_IsoAutre(minp,maxp):
    Trg=[]
    for p in range(minp,maxp):
        for b in range(1,maxp):
            a=p-b
            if a>b and a%2==0:
                Trg.append((p,b,a//2,a//2))
    return Trg

def circonscrit(minp,maxp):
    Trg=Genere_IsoC(minp,maxp)
    candidats=[]
    print ("\n    ** Triangles isocèles ayant un rayon du cercle circonscrit entier **\n\n")
    for p,b,a,a1 in Trg:
        R=a**2/sqrt(4*a**2-b**2)
        if float(int(R))==R:
            h=sqrt(a**2-b**2/4)
            l=h-R
            d=sqrt((b//2)**2+l**2)
            if d==R:
                print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a,"  rayon :","%4i" % int(R))
    return

def inscrit(minp,maxp):
    Trg=Genere_IsoAutre(minp,maxp)
    print ("\n    ** Triangles isocèles et centre du cercle inscrit **\n\n")
    for p,b,a,a1 in Trg:
        SI=sqrt(a**2-b**2/4)
        fin=int(SI)+1
        for MI in range(1,fin):
            MS = SI-MI  
            if 2*a*MI==b*MS:
                PM=sqrt(MI**2+b**2/4)
                if float(int(PM))==PM:
                    print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a," --- ","%4i" %MS,"%4i" %int(PM),"%4i" %int(PM),"  Rayon :","%4i" %int(MI))
    return

def gravite(minp,maxp):
    Trg=Genere_IsoAutre(minp,maxp)
    print ("\n    ** Triangles isocèles et centre de gravité **\n")
    for p,b,a,a1 in Trg:
        SI=sqrt(a**2-b**2/4)
        if float(int(SI))==SI and SI%3==0:
            MI=SI//3  # M est le centre de gravité du triangle
            PM=sqrt(MI**2+b**2/4)
            if float(int(PM))==PM: #si la longueur PM est un entier, alors M convient
                print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a," --- ",int(SI-MI),int(PM),int(PM))
    return  

def orthocentre(minp,maxp):
    Trg=Genere_IsoC(minp,maxp)
    # S,P,R,I : noms génériques du sommet principal et des 2 autres sommets, et du milieu de [PR]
    # Placement d'un repère orthonormé de centre P et tel que [PR] vest sur l'axe des abscisses
    print ("\n     ** Triangles isocèles et orthocentre **\n")
    for p,b,a,a1 in Trg:
        SI=sqrt(a**2-b**2/4)
        if float(int(SI))==SI:
            SI=int(SI)
            for MI in range(1,SI):
                x,y=b/2,MI           #coordonnées du vecteur PM
                x1,y1=-b/2,SI        #coordonnées du vecteur RS
                if x*x1+y*y1==0:     # condition d'orthogonalité de 2 vecteurs
                    SM,PM=SI-MI,sqrt(MI**2+b**2/4)          
                    print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a," --- ","%4i" %SM,"%4i" %int(PM),"%4i" %int(PM)," *** MI  =","%4i" %MI,"<> SI  =","%4i" %SI)
    return

def ScalenesSimples(minp,maxp):
    Trg=[]
    # Triangles à cotés entiers classés par pérmètres croissants  
    for p in range(minp,maxp): # p est le périmètre
        for b in range(1,maxp): # b sera limité bien avant maxp
            a=(p-b)//2 # division euclidienne
            if a<b:
                break # b est trop grand, passer à la valeur suivante de b
            c=p-b-a
            while 1: # boucle pour tous les triangles tels que b<=a<=c
                if c>=b+a: # le triangle n'existe pas
                    break # donc sortie de la boucle while...
                if not (a==b or a==c or b==c):
                    Trg.append((p,a,c,b))
                a-=1 #triangle suivant de même périmètre
                c+=1
                if a<b:
                    break    
    return Trg

def ScalenesAigus(minp,maxp):
    Trg=[]
    # Triangles à cotés entiers classés par pérmètres croissants  
    for p in range(minp,maxp): # p est le périmètre
        for b in range(1,maxp): # b sera limité bien avant maxp
            a=(p-b)//2 # division euclidienne
            if a<b:
                break # b est trop grand, passer à la valeur suivante de b
            c=p-b-a
            while 1: # boucle pour tous les triangles tels que b<=a<=c
                if c>=b+a: # le triangle n'existe pas
                    break # donc sortie de la boucle while...
                if not (a==b or a==c or b==c):
                    a2,b2,c2=a**2,b**2,c**2
                    if  a2+b2-c2>0 and a2+c2-b2>0 and b2+c2-a2>0:
                        Trg.append((p,a,c,b))
                a-=1 #triangle suivant de même périmètre
                c+=1
                if a<b:
                    break    
    return Trg

def circonscrit_scalène(minp,maxp):
    tp_d=clock()
    Trg=ScalenesAigus(minp,maxp)
    dur=round(clock()-tp_d,1)
    print ("\n    ** Triangles Scalènes ayant un rayon du cercle circonscrit entier **\n")
    for p,a,c,b in Trg:
        s4=sqrt(p*(p-2*a)*(p-2*b)*(p-2*c))
        R = (a*b*c)/s4
        if float(int(R))==R:
            print ("Périmètre :","%5i" %p," * ","%4i" %a,"%4i" %b,"%4i" %c,"  rayon :","%4i" % int(R))    
    print ("\n       +++ Temps de calcul avant affichage :",int(dur)//60,"min",dur%60,"s +++\n")
    return

def gravite_scalene(minp, maxp):
    tp_d=clock()
    Trg=ScalenesSimples(minp,maxp)
    dur=round(clock()-tp_d,1)
    print ("\n** Triangles Scalènes ayant un Centre de gravité à distances entières des sommets **\n")
    for p,a,c,b in Trg:
        a2,b2,c2=a**2,b**2,c**2
        AM=sqrt(2*(c2+b2)-a2)/3        
        if float(int(AM))==AM:            
            BM=sqrt(2*(c2+a2)-b2)/3
            if float(int(BM))==BM:            
                CM=sqrt(2*(b2+a2)-c2)/3
                if float(int(BM))==BM:          
                    print("Périmètre :","%5i" % p," *", "%4i" % a,"%4i" % c,"%4i" % b," --- ","%4i" % int(AM),"%4i" % int(BM), "%4i" % int(CM))
    print ("\n          +++ Temps de calcul avant affichage :",int(dur)//60,"min",dur%60,"s +++\n")
    return    

def orthocentre_scalenes(minp,maxp):
    tp_d=clock()
    Trg=ScalenesAigus(minp,maxp)
    dur=round(clock()-tp_d,1)
    print ("\n** Triangles Scalènes ayant leur orthocentre à distances entières des sommets **\n")
    for p,a,c,b in Trg:  
        s4=sqrt(p*(p-2*a)*(p-2*b)*(p-2*c))
        a2,b2,c2=a**2,b**2,c**2
        AM=a*(b2+c2-a2)/s4
        if float(int(AM))==AM:
            BM=b*(a2+c2-b2)/s4
            if float(int(BM))==BM:
                CM=c*(a2+b2-c2)/s4
                if float(int(CM))==CM:                        
                    print("Périmètre :","%5i" % p," *", "%4i" % a,"%4i" % c,"%4i" % b," --- ","%4i" % int(AM),"%4i" % int(BM), "%4i" % int(CM))
    print ("\n          +++ Temps de calcul avant affichage :",int(dur)//60,"min",dur%60,"s +++\n")
    return

   

# Menu Pricipal
# Dictionnaire de noms de fonctions                          
Dic_Fonc={"1":circonscrit,"2":inscrit,"3":gravite,"4":orthocentre,"5":circonscrit_scalène,"6":gravite_scalene,\
          "7":orthocentre_scalenes}
                           
##########
stoppe=0
while not stoppe:
    Trg,Dico,nb,nombre=[],{},0,0
    print ("                 **************************")
    print ("                 *                        *")
    print ("                 *       Triangles        *")
    print ("                 *   Points particuliers  *")
    print ("                 *        v. 2.3          *")
    print ("                 *                        *")
    print ("                 **************************")
    print ()
    print ()
    print ("             Voulez-vous lister les triangles :")
    print ()
    print ("     1. Isocèles où M est le centre du cercle circonscrit")
    print ("     2. Isocèles où M est le centre du cercle inscrit")    
    print ("     3. Isocèles où M est le centre de gravité")
    print ("     4. Isocèles où M est l'orthocentre")
    print ("     5. Scalènes où M est le centre du cercle circonscrit")
    print ("     6. Scalènes où M est le centre de gravité")    
    print ("     7. Scalènes où M est l'othocentre")
    print ()
    print ("            0. Quitter le programme")
    print ()
    print ("                    **  Votre choix : ** ",end="")
    while 1:
        chx=input()
        if chx=="0":
            stoppe=1            
        elif chx in "1 2 3 4 5 6 7" :
            print ("\n")
            minp,maxp=MinMax()
            Dic_Fonc[chx](minp,maxp)          
        else:
            print ("Réponses attendues : 0,1,2,3,4,5,6n. Veuillez recommencer s'il vous plaît...")
            print ("\n")
            print ("\n")
        break
    print ("\n")
    print ("\n")
print("    A la prochaine !")

La recherche avec l'orthocentre a été intégrée...

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#241 02-08-2014 14:01:30

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Cest nickel!!


@+

Hors ligne

#242 03-08-2014 14:21:32

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Salut,

Centre du cercle inscrit : résultat maigrichons..

770 250 289 231 --- 153 170 120
1134 375 507 252 --- 208 325 100
1540 500 578 462 --- 306 340 240

Voilà ce que j'ai fait.
J'ai trouvé une formule équivalente avec moins de calculs.
Soit ABC le triangle.
Je pose I  l'intersection de la bissectrice de [tex]\hat A[/tex] avec [BC], M, l'orthocentre, BC=a, AB=c,A C=b, p=a+b+c...
J'ai donc trouvé (sur la toile) :
[tex] AI^2=\frac{bcp(p-2a)}{(b+c)^2}[/tex]
Calcul de BI :
[tex]\frac{BI}{IC}= \frac c b[/tex]  d'où [tex]IC = \frac b c BI[/tex] et [tex] BI+IC = BI + \frac{b}{c}\times BI =BI\left(1+\frac{b}{c}\right)= BI\frac{b+c}{c}[/tex]
Or BI + IC = BC =a donc:
[tex]BI\frac{b+c}{c} =a[/tex]  et enfin [tex]BI = \frac{ac}{b+c}[/tex]

Je recommence pour AM, MI, AI
[tex]\frac{MA}{MI}= \frac{c}{BI}= \dfrac{c}{\frac{ac}{b+c}}=\frac{b+c}{a}[/tex]  d'où [tex]MI = \frac{a}{b+c}MA[/tex]
Alors
[tex] MA+MI =MA + \frac{a}{b+c}MA=MA\left(1+\frac{a}{b+c}\right)=MA\left(\frac{a+b+c}{b+c}\right)=MA\times \frac{p}{b+c}[/tex]
J'ai donc maintenant :
[tex]MA\left(\frac{a+b+c}{b+c}\right) =AI[/tex]  et donc [tex]MA = AI\times\frac{b+c}{p}[/tex]
J'élève au carré :
[tex]MA^2 = AI^2\times\frac{(b+c)^2}{p^2}=\frac{bcp(p-2a)}{(b+c)^2}\times \frac{(b+c)^2}{p^2}=\frac{bc(p-2a)}{p}[/tex]

Et enfin :  [tex]MA = \sqrt{\frac{bc(p-2a)}{p}}[/tex]

qui est une formule acceptable avec un minimum de calculs....

Ton avis ?

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#243 03-08-2014 16:42:38

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Bonjour,

Je n'ai pas trouvé mieux...

J'ai aussi trouvé sur le net la formule utilisant le périmètre mais je n'ai pas su aussi bien l'exploiter.


Pour tout triangle ABC, si M est le point de concours de ses bissectrices nous avons donc:


[tex]AM = \sqrt{\frac{bc(p-2a)}{p}}[/tex]            [tex]BM = \sqrt{\frac{ac(p-2b)}{p}}[/tex]            et            [tex]CM = \sqrt{\frac{ab(p-2c)}{p}}[/tex]


Très bien!

___


En décortiquant un peu ton programme et particulièrement le module relatif aux triangles ABC scalènes pour lesquels M est confondu avec leur orthocentre, j'ai aussi noté avec intérêt ce qui suit:


Pour tout triangle ABC, si M est son orthocentre nous avons:


[tex]AM = \frac{a\times(b^2+c^2-a^2)}{4\times Aire_{ABC}}[/tex]            [tex]BM = \frac{b\times(a^2+c^2-b^2)}{4\times Aire_{ABC}}[/tex]            et            [tex]CM = \frac{c\times(a^2+b^2-c^2)}{4\times Aire_{ABC}}[/tex]


Comment es-tu parvenu à ce résultat?


@+

Hors ligne

#244 03-08-2014 18:32:57

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

J'arrive...
Bon, comment je suis arrivé là ?
Je crois avoir détaillé cela dans le post#237 :
Je t'offre le dessin :
140803110703337882.jpg

Soit un triangle ABC d'orthocentre M, [AH] hauteur issue de A et H le pied sur [BC], [BK] hauteur issue de B et K son pied sur [AC].
BC=a, AC=b, AB=c.
Mieux vaut faire un dessin (à main levée) pour suivre.
1. J'ai besoin de BH. [tex]BH= c\times \cos\hat B[/tex]
    [tex]b^2=a^2+c^2-2ac\times\cos\hat B[/tex]  d'où [tex]\cos\hat B =\frac{a^2+c^2-b^2}{2ac}[/tex]  à partir du th. d'Al Kashi
    Et [tex]BH = c\times \cos\hat B = c\times \frac{a^2+c^2-b^2}{2ac}= \frac{a^2+c^2-b^2}{2a}[/tex]
2. Pourquoi BH ?
    Parce que [tex]BM = \frac{BH}{\cos \widehat{MBC}}[/tex] dans le triangle BMH rectangle en H
    Or, le triangle BCK étant rectangle en K, les angles [tex]\widehat{MBC}[/tex] et [tex]\hat C[/tex] sont complémentaires.
    Donc [tex]\cos\widehat{MBC}=\sin\hat C[/tex].
    Et [tex]\sin\hat C = \frac{2s}{ab}[/tex]

3.  D'où [tex]BM=\dfrac{\frac{a^2+c^2-b^2}{2a}}{\frac{2s}{ab}}=\frac{a^2+c^2-b^2}{2a}\times \frac{ab}{2s}=\frac{b(a^2+c^2-b^2)}{4s}[/tex]
   
    Avec [tex]4s=\sqrt{p(p-2a)(p-2b)(p-2c)}[/tex]
    Après, il a suffit d'adapter les formules à AM et CM...

Quelque chose ne te convient pas ? ou qui n'est pas suffisant (ou clair) ?

Nouveau code (avec cercle inscrit) :
items 5,6,7,8 rangés dans le même ordre que les items 1,2,3,4...


#!/usr/bin/python
# -*- coding: UTF-8 -*-

from math import sqrt,asin,pi
from time import clock

def MinMax():
    print ("            +++ Choix des périmètres mini et maxi +++\n")
    while 1:
        mini=input("Périmètre minimum souhaité ?  ")
        try:
            minp=int(mini)
            break
        except ValueError:
            print ("Entrée incorrecte. Veuillez recommencer S.V.P..\n\n")            
    while 1:
        maxi=input("Perimètre maximum souhaité ?  ")
        try:
            maxp=int(maxi)+1
            if maxp<=minp:
                print ("Erreur,le maximum doit être supérieur au mini. Veuillez recommencer S.V.P..\n\n")
            else:
                break
        except ValueError:
            print ("Entrée incorrecte. Veuillez recommencer S.V.P..\n\n")
    print("\n\n")
    return minp,maxp

def Genere_IsoC(minp,maxp):
    Trg=[]
    for p in range(minp,maxp):
        for b in range(1,maxp):
            a=p-b
            if a>b and a%2==0 and asin(b/a)<pi/4:
                Trg.append((p,b,a//2,a//2))
    return Trg

def Genere_IsoAutre(minp,maxp):
    Trg=[]
    for p in range(minp,maxp):
        for b in range(1,maxp):
            a=p-b
            if a>b and a%2==0:
                Trg.append((p,b,a//2,a//2))
    return Trg

def circonscrit(minp,maxp):
    Trg=Genere_IsoC(minp,maxp)
    candidats=[]
    print ("\n    ** Triangles isocèles ayant un rayon du cercle circonscrit entier **\n\n")
    for p,b,a,a1 in Trg:
        R=a**2/sqrt(4*a**2-b**2)
        if float(int(R))==R:
            h=sqrt(a**2-b**2/4)
            l=h-R
            d=sqrt((b//2)**2+l**2)
            if d==R:
                print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a,"  rayon :","%4i" % int(R))
    return

def inscrit(minp,maxp):
    Trg=Genere_IsoAutre(minp,maxp)
    print ("\n    ** Triangles isocèles et centre du cercle inscrit **\n\n")
    for p,b,a,a1 in Trg:
        SI=sqrt(a**2-b**2/4)
        fin=int(SI)+1
        for MI in range(1,fin):
            MS = SI-MI  
            if 2*a*MI==b*MS:
                PM=sqrt(MI**2+b**2/4)
                if float(int(PM))==PM:
                    print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a," --- ","%4i" %MS,"%4i" %int(PM),"%4i" %int(PM),"  Rayon :","%4i" %int(MI))
    return

def gravite(minp,maxp):
    Trg=Genere_IsoAutre(minp,maxp)
    print ("\n    ** Triangles isocèles et centre de gravité **\n")
    for p,b,a,a1 in Trg:
        SI=sqrt(a**2-b**2/4)
        if float(int(SI))==SI and SI%3==0:
            MI=SI//3  # M est le centre de gravité du triangle
            PM=sqrt(MI**2+b**2/4)
            if float(int(PM))==PM: #si la longueur PM est un entier, alors M convient
                print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a," --- ",int(SI-MI),int(PM),int(PM))
    return  

def orthocentre(minp,maxp):
    Trg=Genere_IsoC(minp,maxp)
    # S,P,R,I : noms génériques du sommet principal et des 2 autres sommets, et du milieu de [PR]
    # Placement d'un repère orthonormé de centre P et tel que [PR] vest sur l'axe des abscisses
    print ("\n     ** Triangles isocèles et orthocentre **\n")
    for p,b,a,a1 in Trg:
        SI=sqrt(a**2-b**2/4)
        if float(int(SI))==SI:
            SI=int(SI)
            for MI in range(1,SI):
                x,y=b/2,MI           #coordonnées du vecteur PM
                x1,y1=-b/2,SI        #coordonnées du vecteur RS
                if x*x1+y*y1==0:     # condition d'orthogonalité de 2 vecteurs
                    SM,PM=SI-MI,sqrt(MI**2+b**2/4)          
                    print ("Périmètre :","%5i" %p," * ","%4i" %b,"%4i" %a,"%4i" %a," --- ","%4i" %SM,"%4i" %int(PM),"%4i" %int(PM)," *** MI  =","%4i" %MI,"<> SI  =","%4i" %SI)
    return

def ScalenesSimples(minp,maxp):
    Trg=[]
    # Triangles à cotés entiers classés par pérmètres croissants  
    for p in range(minp,maxp): # p est le périmètre
        for b in range(1,maxp): # b sera limité bien avant maxp
            a=(p-b)//2 # division euclidienne
            if a<b:
                break # b est trop grand, passer à la valeur suivante de b
            c=p-b-a
            while 1: # boucle pour tous les triangles tels que b<=a<=c
                if c>=b+a: # le triangle n'existe pas
                    break # donc sortie de la boucle while...
                if not (a==b or a==c or b==c):
                    Trg.append((p,a,c,b))
                a-=1 #triangle suivant de même périmètre
                c+=1
                if a<b:
                    break    
    return Trg

def ScalenesAigus(minp,maxp):
    Trg=[]
    # Triangles à cotés entiers classés par pérmètres croissants  
    for p in range(minp,maxp): # p est le périmètre
        for b in range(1,maxp): # b sera limité bien avant maxp
            a=(p-b)//2 # division euclidienne
            if a<b:
                break # b est trop grand, passer à la valeur suivante de b
            c=p-b-a
            while 1: # boucle pour tous les triangles tels que b<=a<=c
                if c>=b+a: # le triangle n'existe pas
                    break # donc sortie de la boucle while...
                if not (a==b or a==c or b==c):
                    a2,b2,c2=a**2,b**2,c**2
                    if  a2+b2-c2>0 and a2+c2-b2>0 and b2+c2-a2>0:
                        Trg.append((p,a,c,b))
                a-=1 #triangle suivant de même périmètre
                c+=1
                if a<b:
                    break    
    return Trg

def circonscrit_scalène(minp,maxp):
    tp_d=clock()
    Trg=ScalenesAigus(minp,maxp)
    dur=round(clock()-tp_d,1)
    print ("\n    ** Triangles Scalènes ayant un rayon du cercle circonscrit entier **\n")
    for p,a,c,b in Trg:
        s4=sqrt(p*(p-2*a)*(p-2*b)*(p-2*c))
        R = (a*b*c)/s4
        if float(int(R))==R:
            print("Périmètre :","%5i" % p," *", "%4i" % a,"%4i" % c,"%4i" % b," --- ","  rayon :",R)  
    print ("\n       +++ Temps de calcul avant traitement :",int(dur)//60,"min",dur%60,"s +++\n")
    return

def gravite_scalene(minp, maxp):
    tp_d=clock()
    Trg=ScalenesSimples(minp,maxp)
    dur=round(clock()-tp_d,1)
    print ("\n** Triangles Scalènes ayant un Centre de gravité à distances entières des sommets **\n")
    for p,a,c,b in Trg:
        a2,b2,c2=a**2,b**2,c**2
        AM=sqrt(2*(c2+b2)-a2)/3        
        if float(int(AM))==AM:            
            BM=sqrt(2*(c2+a2)-b2)/3
            if float(int(BM))==BM:            
                CM=sqrt(2*(b2+a2)-c2)/3
                if float(int(BM))==BM:          
                    print("Périmètre :","%5i" % p," *", "%4i" % a,"%4i" % c,"%4i" % b," --- ","%4i" % int(AM),"%4i" % int(BM), "%4i" % int(CM))
    print ("\n          +++ Temps de calcul avant traitement :",int(dur)//60,"min",dur%60,"s +++\n")
    return    

def orthocentre_scalenes(minp,maxp):
    tp_d=clock()
    Trg=ScalenesAigus(minp,maxp)
    dur=round(clock()-tp_d,1)
    print ("\n** Triangles Scalènes ayant leur orthocentre à distances entières des sommets **\n")
    for p,a,c,b in Trg:  
        s4=sqrt(p*(p-2*a)*(p-2*b)*(p-2*c))
        a2,b2,c2=a**2,b**2,c**2
        AM=a*(b2+c2-a2)/s4
        if float(int(AM))==AM:
            BM=b*(a2+c2-b2)/s4
            if float(int(BM))==BM:
                CM=c*(a2+b2-c2)/s4
                if float(int(CM))==CM:                        
                    print("Périmètre :","%5i" % p," *", "%4i" % a,"%4i" % c,"%4i" % b," --- ","%4i" % int(AM),"%4i" % int(BM), "%4i" % int(CM))
    print ("\n          +++ Temps de calcul avant traitement :",int(dur)//60,"min",dur%60,"s +++\n")
    return

def inscrit_scalenes(minp,maxp):
    tp_d=clock()
    Trg=ScalenesSimples(minp,maxp)
    dur=round(clock()-tp_d,1)
    print ("\n** Triangles Scalènes ayant leur centre du cercle inscrit à distances entières des sommets **\n")
    for p,a,c,b in Trg:
        bc,p1=b*c,p/2  
        MA=sqrt(bc*(p-2*a)/p)
        if float(int(MA))==MA:
            ac=a*c
            MB=sqrt(ac*(p-2*b)/p)
            if float(int(MB))==MB:
                ab=a*b
                MC=sqrt(ab*(p-2*c)/p)
                if float(int(MC))==MC:
                    s2=sqrt(p*(p-2*a)*(p-2*b)*(p-2*c))/2
                    r=s2/p
                    print("Périmètre :","%5i" % p," *", "%4i" % a,"%4i" % c,"%4i" % b," --- ","%4i" % int(MA),"%4i" % int(MB), "%4i" % int(MC),"  rayon :",r)
    print ("\n          +++ Temps de calcul avant traitement :",int(dur)//60,"min",dur%60,"s +++\n")
    return
       

# Menu Pricipal
# Dictionnaire de noms de fonctions                          
Dic_Fonc={"1":circonscrit,"2":inscrit,"3":gravite,"4":orthocentre,"5":circonscrit_scalène,"6":inscrit_scalenes,"7":gravite_scalene,\
          "8":orthocentre_scalenes}
                           
##########
stoppe=0
while not stoppe:
    Trg,Dico,nb,nombre=[],{},0,0
    print ("                 **************************")
    print ("                 *                        *")
    print ("                 *       Triangles        *")
    print ("                 *   Points particuliers  *")
    print ("                 *        v. 2.4          *")
    print ("                 *                        *")
    print ("                 **************************")
    print ()
    print ()
    print ("             Voulez-vous lister les triangles :")
    print ()
    print ("     1. Isocèles où M est le centre du cercle circonscrit")
    print ("     2. Isocèles où M est le centre du cercle inscrit")    
    print ("     3. Isocèles où M est le centre de gravité")
    print ("     4. Isocèles où M est l'orthocentre")
    print ("     5. Scalènes où M est le centre du cercle circonscrit")
    print ("     6. Scalènes où M est le centre du cercle inscrit")        
    print ("     7. Scalènes où M est le centre de gravité")  
    print ("     8. Scalènes où M est l'othocentre")
    print ()
    print ("            0. Quitter le programme")
    print ()
    print ("                    **  Votre choix : ** ",end="")
    while 1:
        chx=input()
        if chx=="0":
            stoppe=1            
        elif chx in "1 2 3 4 5 6 7 8" :
            print ("\n")
            minp,maxp=MinMax()
            Dic_Fonc[chx](minp,maxp)          
        else:
            print ("Réponses attendues : 0,1,2,3,4,5,6,7,8. Veuillez recommencer s'il vous plaît...")
            print ("\n")
            print ("\n")
        break
    print ("\n")
    print ("\n")
print("    A la prochaine !")

Ordre de sortie cercle inscrit : BC,AB,AC et MA,MB,MC.

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#245 03-08-2014 22:57:09

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Bonsoir,

yoshi a écrit :

Je crois avoir détaillé cela dans le post#237...

En effet! En te relisant, je vois tout y était déjà parfaitement explicité...

Mon attention a dû être captivée par l'un ou l'autre aspect de ta démonstration me faisant oublier la conclusion!!

Comme quoi, il est bon de bien prendre le temps de lire et mais aussi de relire, ce que pour ma défense je fais pourtant la plupart du temps.


Je charge la version complète!

     :)


@+

Hors ligne

#246 04-08-2014 14:38:48

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Salut,

J'ai aussi trouvé sur le net la formule utilisant le périmètre mais je n'ai pas su aussi bien l'exploiter.

Question de chance, d'habitude du calcul littéral et d'opiniâtreté...
Je n'avais aucune certitude en commençant sinon que j'avais la ferme intention d'éviter les empilements de valeurs approchées, d'où le travail avec les carrés pour voir comment simplifier tout ça, avant le passage obligé à la racine carrée...

Cela dit, reste quand même un petit goût d'inachevé (que je ne perds pas vue) : pas de point M centre de gravité à distances entières dans les triangles isocèles purs, pourtant je suis sûr à 99,9 % de ce que j'ai fait, de plus testé avec 2 méthodes différentes....

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#247 04-08-2014 20:30:22

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Salut,

Oui, c'est troublant cette absence de résultats pour les triangles isocèles! Je n'ai pas d'explication et n'ai pas vu d'anomalie. S'il n'y en a vraiment pas ce peut être un fait à creuser...

Pour le triangle équilatéral ça se comprend, ce point étant à distance [tex]AG = coté \times \frac {\sqrt{3}}{3}[/tex], puisque nous travaillons avec des cotés entiers, AG ne pourra jamais prendre une valeur entière.

Mais pour le triangle isocèle, voyons ce que cela peut signifier:

Soit b la base du triangle isocèle, a et a les cotés égaux, c et c les distances des sommets de la base à M le centre de gravité et enfin d la distance du sommet principal à M.

Si je n'ai pas fait d'erreur, le problème se résume donc à trouver des cas où a, b, c et d ont des valeurs entières avec

[tex]c = \frac{\sqrt {2b^2+a^2}}{3}[/tex]

    et 

[tex]d = \frac{\sqrt {4a^2-b^2}}{3}[/tex]


Autrement dit:


[tex]2b^2+a^2[/tex]     et     [tex]4a^2-b^2[/tex]    doivent être des multiples de 9


[  EDIT: Attention bullshit!!  ]


@+

Dernière modification par 0^0 (04-08-2014 23:25:26)

Hors ligne

#248 04-08-2014 21:12:09

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Ce qui ne m'avance guère...


@+

Hors ligne

#249 04-08-2014 21:15:24

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

Re : Triangles ayant un point intérieur à distance entière des sommets

Re,

Je réfléchirai demain...
Mais une remarque, tu oublies une condition : 2a >b sinon le triangle n'existe pas.

Moyennant quoi, il n'existe aucun couple (a,b) vérifiant ces conditions, a et b étant pris de 3 à 2000 (testé).

@+


Arx Tarpeia Capitoli proxima...

Hors ligne

#250 04-08-2014 21:28:35

0^0
Membre
Inscription : 24-06-2014
Messages : 325

Re : Triangles ayant un point intérieur à distance entière des sommets

Quel casse tête ce truc!

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)?
trente cinq plus quatre-vingt seize
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