Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > fr.comp.lang.python > #3397
| From | Dominique <zzz@aol.com.invalid> |
|---|---|
| Newsgroups | fr.comp.lang.python |
| Subject | Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC |
| Date | 2020-12-02 19:17 +0100 |
| Organization | Aioe.org NNTP Server |
| Message-ID | <rq8lng$90n$1@gioia.aioe.org> (permalink) |
| References | <CoqdnTE5mZ1Z3FvCnZ2dnUU798zNnZ2d@giganews.com> <rq76ug$m28$1@gioia.aioe.org> <87mtywr7dr.fsf@izac.org> <mn.121a7e4c409632ae.79899@free.fr> |
Le 02/12/2020 à 08:58, Pierre Maurette a écrit :
>> C'est un peu tordu car il faut savoir que l'on attend une entrée de la
>> forme « [a, b, c] » (ou n'importe quel objet qui implémente
>> « __getitem__() » pour être plus précis)
>>
>>> print(ma_fonction(t))
>>
>>> print(ma_fonction([2, 1, 1]))
>> PAS CONSTRUCTIBLE <= faux
>>
>> Un triangle est plat si la somme des longueurs de deux côtés est égale
>> à la longueur du troisième côté ; par exemple :
>>
>> A B C A C A BC
>> +---+---+ ou +-------+ ou +-----++
>> B
>>
>> Ma version :
>>
>> def triangle(a, b, c):
>> for cote in (a, b, c):
>> opposes = a + b + c - cote
>> if opposes < cote: return 'PAS CONSTRUCTIBLE'
>> if opposes == cote: return 'CONSTRUCTIBLE PLAT'
>> return 'CONSTRUCTIBLE'
>
> A partir de ce point, on peut faire un peu d'analyse géométrique. Le but
> est de ne pas itérer. Dire "il existe un coté plus long que la somme des
> deux autres" est équivalent à dire "le coté le plus long est plus long
> que la somme des deux autres". Ça donne howIsTriangle1. On peut très
> facilement trier, ça donne howIsTriangle2.
>
> <code>
>
> JEU2TEST = ((1,1,5), (1,2,1), (1,1,1))
>
> def howIsTriangle1(sidelengths):
> maxi, somme = max(sidelengths) << 1 , sum(sidelengths)
> return (maxi <= somme, maxi > somme, maxi == somme)
>
> def howIsTriangle2(sidelengths):
> maxi, somme = sorted(sidelengths, reverse=True)[0],
> sum(sorted(sidelengths, reverse=True)[1:])
> return (maxi <= somme, maxi > somme, maxi == somme)
>
> for sidelengths in JEU2TEST:
> for f in (howIsTriangle1, howIsTriangle2):
> (isCONSTRUCTIBLE, isINCONSTRUCTIBLE, isPLAT) = f(sidelengths)
> print ('Cotés: %d, %d, %d\n Le triangle est :\n CONSTRUCTIBLE:
> %s\n INCONSTRUCTIBLE: %s\n PLAT: %s' %
> (sidelengths + (['Non', 'Oui'][isCONSTRUCTIBLE],
> ['Non', 'Oui'][isINCONSTRUCTIBLE],
> ['Non', 'Oui'][isPLAT])))
>
> </code>
Trop compliqué pour moi, au niveau où j'en suis en Python :-)
--
Dominique
Courriel : dominique point sextant ate orange en France
Esto quod es
Back to fr.comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar
En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC domxav17 <nospam_domxav17@gmail.com.invalid> - 2020-12-01 07:14 -0600
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC domxav17 <nospam_domxav17@gmail.com.invalid> - 2020-12-01 07:48 -0600
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC Pierre Maurette <maurette.pierre@free.fr> - 2020-12-01 16:47 +0100
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC Dominique <zzz@aol.com.invalid> - 2020-12-02 06:01 +0100
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC Dominique <zzz@aol.com.invalid> - 2020-12-02 05:58 +0100
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2020-12-02 08:31 +0100
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC Pierre Maurette <maurette.pierre@free.fr> - 2020-12-02 08:58 +0100
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC Dominique <zzz@aol.com.invalid> - 2020-12-02 19:17 +0100
Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC Dominique <zzz@aol.com.invalid> - 2020-12-02 19:19 +0100
csiph-web