Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3397

Re: En testant les valeurs 5,1,1 obtenu est CONSTRUCTIBLE au lieu dPAS CONSTRUC

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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