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


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

Re: Matrices

From Pierre Maurette <maurette.pierre@free.fr>
Newsgroups fr.comp.lang.python
Subject Re: Matrices
Date 2019-03-07 08:11 +0100
Organization A noiseless patient Spider
Message-ID <mn.39eb7e334252aefd.79899@free.fr> (permalink)
References <_tadnd2-S9NWph3BnZ2dnUU798zNnZ2d@giganews.com>

Show all headers | View raw


Ju32700 :
> Bonjour,
>  j'aurais besoin d'aide pour mon programme en Python s'il vous plait :
>
> ##def lignecomplete(M): # M est une matrice carrée d'ordre n 
> ##    # Si une des lignes est complète, le programme renvoie "Vrai"
> ##    # Sinon, il renvoie "Faux"
>
> Il faut que l'une des lignes soit uniquement rempli de 1 pour renvoyer "True"
>
> Si je fais 
>>> lignecomplete([[1,1,1],[1,1,1]]) 
>  True
>
> Sinon 
>>> lignecomplete([[1,1,0],[1,0,1]]) 
> False

J'imagine qu'il s'agit d'un exercice dans le cadre d'une formation.
L'énoncé devrait être être plus précis, ou plus explicite. Tel quel, il 
semble qu'on doive renvoyer une chaîne, alors qu'un booléen est 
d'évidence plus logique (LOL). Faut-il lire "Une des lignes au moins" 
ou "Exactement une des lignes" ?
L'énoncé parle de "matrice carrée d'ordre n", les matrices de vos 
exemples ne sont pas carrées.
 A moins que je râte quelque chose, l'exercice n'est pas si facile que 
ça.
Vous pouvez décortiquer ce code pour rédiger votre proposition:

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

def checkSquareMatrice(M, n):
    return [len(x) == n for x in M] == n * [True]

def ligneCompleteStrict(M, n):
    return (len([x for x in M if x == n * [1]]) == 1)

def ligneCompleteAuMoins(M, n):
    return (len([x for x in M if x == n * [1]]) > 0)

for M in [  [[0,1,1],[1,1,0],[1,0]],
            [[0,1,1],[1,1,0],[1,0,1]],
            [[1,1,1],[1,1,0],[1,0,1]],
            [[1,1,1],[1,1,1],[1,0,1]] ]:
    lM = len(M)
    if (checkSquareMatrice(M, lM)):
        print ('Matrice: %s, taille: %s' % (M, lM))
        print ('Un seul: %s' % ligneCompleteStrict(M, lM))
        print ('Au moins un: %s\n' % ligneCompleteAuMoins(M, lM))
    else:
        print ('Matrice: %s, NOT A "MATRICE"\n' % M)

-- 
Pierre Maurette

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Matrices Ju32700 <nospam_julien.barre75@orange.fr.invalid> - 2019-03-06 15:29 -0600
  Re: Matrices Benoit Izac <use.reply.to@INVALID.ADDRESS> - 2019-03-07 07:01 +0100
  Re: Matrices Pierre Maurette <maurette.pierre@free.fr> - 2019-03-07 08:11 +0100
  Re: Matrices ast <none@gmail.com> - 2019-03-07 09:45 +0100

csiph-web