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 17-12-2023 20:36:06

pentium mix
Membre
Inscription : 27-10-2020
Messages : 161

generate a pascal triangle well

bonsoir tout le monde, je souhaite générer le triangle de pascal tel qu'il est dans les livres mais ne sais comment faire pour ne plus afficher les 0 et puis je ne veux pas aussi travailler avec des listes

mon programme


import numpy as np
def TriangleDePascal(n):
    T=np.eye(n, dtype=int) ## matrice identité
    for i in range(n):
        T[i,0]=1        # remplir la première colonne
    for i in range(2,n):
        for j in range (1,i):
            T[i,j]=T[i-1,j-1]+T[i-1,j]
    for elt in T:
          print(*elt, sep="   ")

Dernière modification par pentium mix (17-12-2023 20:42:59)

Hors ligne

#2 17-12-2023 21:27:31

Fred
Administrateur
Inscription : 26-09-2005
Messages : 7 348

Re : generate a pascal triangle well

Bonsoir,

  Je n'ai pas compris si tu voulais ou si tu ne voulais pas utiliser de liste, mais en tout cas, en partant d'un tableau, sauf à changer la façon d'afficher à la fin, tu auras toujours des zéros. Voici une solution qui fonctionne avec des listes.


def TriangleDePascal(n):
    T=[]
    for i in range(n):
        T.append([1])
    for i in range(2,n):
        for j in range (1,i-1):
            T[i].append(T[i-1][j-1]+T[i-1][j])
        T[i].append(1)
    for i in range(n):
        print(*T[i],'   ')
 

Hors ligne

#3 18-12-2023 04:47:23

pentium mix
Membre
Inscription : 27-10-2020
Messages : 161

Re : generate a pascal triangle well

Bonjour
Merci beaucoup
Voici une idée qui m'est venu en tète actuellement: utiliser des dataframes,

 import numpy as np
import pandas as pd
def TriangleDePascal(n):
    T=np.eye(n, dtype=int)
    for i in range(n):
        T[i,0]=1
    for i in range(2,n):
        for j in range (1,i):
            T[i,j]=T[i-1,j-1]+T[i-1,j]
    return T
     
           
n=int(input("n="))
df = pd.DataFrame(T)
df[df == 0] = "" # remplace toutes les valeurs 0 par du vide
print(df)
Fred a écrit :

Bonsoir,

  Je n'ai pas compris si tu voulais ou si tu ne voulais pas utiliser de liste, mais en tout cas, en partant d'un tableau, sauf à changer la façon d'afficher à la fin, tu auras toujours des zéros. Voici une solution qui fonctionne avec des listes.


def TriangleDePascal(n):
    T=[]
    for i in range(n):
        T.append([1])
    for i in range(2,n):
        for j in range (1,i-1):
            T[i].append(T[i-1][j-1]+T[i-1][j])
        T[i].append(1)
    for i in range(n):
        print(*T[i],'   ')
 

Dernière modification par pentium mix (18-12-2023 05:25:24)

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 neuf plus
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