Les Snippets

Connexion

Triangle de pascal

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 07/04/2006 08:25:39 et initié par PetoleTeam [Liste]
Date de mise à jour : 07/04/2006 08:37:32
Vue : 16606
Catégorie(s) : Maths
Langages dispo pour ce code :
- Javascript
- PHP 3, PHP 4, PHP 5
- ObjectiveCaml
- C++
- ObjectiveCaml
- Scripts fu
- Tcl



Langage : Javascript
Date ajout : 07/04/2006
Posté par PetoleTeam [Liste]
DateMAJ : 07/04/2006
<HTML>
<TITLE>Triangle de Pascal...</TITLE>
<HEAD>
<STYLE TYPE="text/css">
TD {
  color:#000000;font-size:15px;
  font-family:Verdana;
  text-align:center;
  background-color:#c0c0f0;
  width:40px
  }
</STYLE>
<SCRIPT LANGUAGE="JavaScript">
//----------------------------------
// Entée  : niv_ hauteur du triangle
// Sortie : Tableau des valeurs
//----------------------------------
function TrianglePascal( niv_){
  var i, k;
  var T_Result = new Array();
  
  //-- Création tableau multidimensionnel
  for( i =0; i< niv_; i++){
    T_Result[i] = new Array();
    T_Result[i][0]= 1; // 1st colonne à 1
  }
  //-- Calcul des Valeurs
  for( i=1; i< niv_; i++){
    for( k =1; k < i; k++){
      T_Result[i][k] = T_Result[i-1][k-1] + T_Result[i-1][k];
    }
    //-- Dernière colonne à 1
    T_Result[i][k] = 1;
  }
  return( T_Result);
}
//-----------------------------
// Entrée : Tableau des valeurs
// Sortie : Affichage Ecran
//-----------------------------
function ShowTriangle( tab_){
  var i, k;
  var Niv  = tab_.length;
  var Html = 'Triangle de Pascal &agrave; ' +Niv +' niveaux...';
  //-- Affichage des Valeurs
  Html += '<TABLE BORDER=0 CELLSPACING =4>';
  for( i in tab_){
    Html += '<TR>';
    for( k in tab_[i]){
      Html += '<TD>' +tab_[i][k] +'</TD>';
    }
    Html += '</TR>';
  }
  Html += '</TABLE>That\'s All Folks !';
  document.write( Html);
}
//=============================
//=============================
var T_Pascal = new Array();
T_Pascal = TrianglePascal( 10);
ShowTriangle( T_Pascal);
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
Langage : PHP 3 , PHP 4 , PHP 5
Date ajout : 04/05/2006
Posté par Arglanir [Liste]
<?php
//renvoie la ligne suivante d'une ligne d'un triangle de Pascal
function ligne_suivante($ligne_precedente){
    $ligne_suivante = array();
    $ligne_suivante[] = 1;
    foreach($ligne_precedente as $i => $val){
       $ligne_suivante[] = $val+
        (isset($ligne_precedente[$i+1])?$ligne_precedente[$i+1]:0);
    }
    return $ligne_suivante;
}
//crée un triangle de Pascal
function cree_triangle_pascal($hauteur){
    $triangle = array();
    $ligne_courante = array(1);
    $triangle[] = $ligne_courante;
    for($i = 0; $i < $hauteur ; $i++){
       $ligne_courante = ligne_suivante($ligne_courante);
       $triangle[] = $ligne_courante;
    }
    return $triangle;
}
//cette fonction affiche le triangle
function affiche_triangle_pascal($hauteur){
    $triangle = cree_triangle_pascal($hauteur);
    echo "<table border=0 cellspacing=4>\n";
    foreach($triangle as $ligne){
       echo "<tr>";
       foreach($ligne as $valeur){
          echo "<td style='text-align:center'>".$valeur."</td>";
       }
       echo "</tr>\n";
    }
    echo "</table>";
}
//exemple d'utilisation
affiche_triangle_pascal(15);
?>
Langage : ObjectiveCaml
Date ajout : 04/06/2007
Posté par Cacophrene [Liste]
(* Affichage du triangle de Pascal sur la sortie standard. *)
let afficher triangle =
      let rec loop max ligne = function
            | i when i = max -> Printf.printf "%i\n" ligne.(i)
            | i -> Printf.printf "%i " ligne.(i) ;
                  loop max ligne (i + 1)
      in Array.iter (fun ligne -> loop (Array.length ligne - 1) ligne 0) triangle
(* Calcul des termes du triangle de Pascal. Exemple d'utilisation : afficher (triangle 10) *)
let pascal n =
      let triangle = Array.init n (fun i -> Array.make (i + 1) 1) in
      for i = 2 to n - 1 do
            for j = 1 to Array.length triangle.(i) - 2 do
                  triangle.(i).(j) <- triangle.(i - 1).(j - 1) + triangle.(i - 1).(j)
            done
      done ;
      triangle
Remarque :
Cette fonction calcule toutes les lignes du triangle de Pascal jusqu'à n. Version impérative qui exploite la relation (i, j) = (i - 1, j - 1) + (i - 1, j).
Langage : C++
Date ajout : 06/06/2007
Posté par coucou747 [Liste]

template <class T, int N, int P>
class Math2{
    public :
        static T pascal(){
            return Math2<T, N-1, P-1>::pascal()+Math2<T, N, P-1>::pascal();
        }
};
template <class T, int N>
class Math2<T, N, 0>{
    public :
        static T pascal(){
            return 0;
        }
};
template <class T, int N>
class Math2<T, 0, N>{
    public :
        static T pascal(){
            return 0;
        }
};
template <class T>
class Math2<T, 1, 1>{
    public :
        static T pascal(){
            return 1;
        }
};
Remarque :
utilisation :
i=Math2::pascal();
std::cout << "pascal(3, 5) = "<< i << "\n";
Langage : ObjectiveCaml
Date ajout : 15/02/2008
Posté par coucou747 [Liste]
(*Obtiens la ligne suivante*)
let pascal liste=
    let rec f acc =function
    | [] -> acc
    | hd::[] -> hd::acc
    | hd::hd2::lt -> (f  ((hd2+hd)::acc) (hd2::lt))
    in (f [0] liste);;
(*obtiens la ieme ligne*)
let rec iemeLigne n=
    let rec f acc = function
        | 0 -> acc
        | n -> f (pascal acc) (n-1)
    in f [0;1;0] n;;

Remarque :
code foncitonnel, en tail rec, sur des listes.
Langage : Scripts fu
Date ajout : 25/10/2008
Posté par coucou747 [Liste]

(define (triangle-pascal-line-iter li)
  (if (null? (cdr li)) (list 1)
      (cons (+ (car li) (cadr li) ) (triangle-pascal-line-iter (cdr li)))))
(define (triangle-pascal-line li) (cons 0 (triangle-pascal-line-iter li)))
(define (triangle-pascal-iter n acc line)
  (if (= 0 n) acc (let ((line2 (triangle-pascal-line line))) (triangle-pascal-iter (- n 1) (cons line2 acc) line2))))
(define (triangle-pascal n)
  (triangle-pascal-iter n (list) (list 0 1)))
Remarque :
pour 5, ca renvoie :
((0 1 5 10 10 5 1) (0 1 4 6 4 1) (0 1 3 3 1) (0 1 2 1) (0 1 1))

(la fonction les liste a l'envers, pour pouvoir etre tail-rec)
Langage : Tcl
Date ajout : 29/07/2009
Posté par gersoo [Liste]
proc Pascal n {
 if {$n < 1} return
 lappend rows [set row [list 1]]  
 set i 1
 while {[incr i] <= $n} {
  set l $row
  set row [list 1]
  for {set j 1} {$j < [llength $l]} {incr j} {
     lappend row [expr {[lindex $l [expr {$j - 1}]] + [lindex $l $j]}]
  }
  lappend rows [lappend row 1]
 }
 return $rows
}
 
puts [join [Pascal 5] \n]

Snippets en rapport avec : Triangle, Pascal, Maths



Codes sources en rapport avec : Triangle, Pascal, Maths

{C / C++ / C++.NET} TRIANGLE DE PASCAL ET DEVELLOPEMENT DE POLYNOME
Alors voilà il y a une semaine je me suis mis a chercher une source c++ toutes faites me permettant ...

{Visual Basic, VB6, VB.NET, VB 2005} SAISIE DES 3 COTÉS D'UN TRIANGLE ET VOUS SAVEZ S'IL EST RECTANGLE OU PAS.
Voila c'est ma deuxième source sur les triangles, (oui, j'aime bien ca ^^) mais elles est un peu amé...

{Visual Basic, VB6, VB.NET, VB 2005} DIT SI UN TRIANGLE EST RECTANGLE OU PAS
Voila c'est mon tout premier code source (ca se fete non ?)^^ Je n'ai que 15 ans et je suis super d...

{PHP} GÉNÉRER N LIGNES DU TRIANGLE DE PASCAL ( UTILE POUR DÉVELOPPEMENT POLYNOMIAL )
Bon voilà j'ai développé cette application pour m'occuper. Ce script génère sous la forme d'un tabl...

{C / C++ / C++.NET} TRIANGLE DE PASCAL RÉCURSIF
Fonction récursive permettant de calculer et afficher les éléments du triangle de pascal....

{JAVA / J2EE} TRIANGLE DE PASCAL
classe qui créé un triangle de pascal elle n est pas complettée ce n est qu un squelette :p mais...

{C / C++ / C++.NET} [DEV-C++] CALCUL DE LA RACINE CARRÉE D'UN RÉEL
Cette source permet de calculer une racine carrée par la méthode de Newton avec une approximation pa...

{C / C++ / C++.NET} MULTIPLICATIONS: PETIT EXERCICE DE MATHS
Ce programme très simple vous demande de trouver le produit d'une multiplication au hasard, compte l...

{Delphi} CONJECTURE DU CARRÉ DES FACTEURS
Je vous propose un petit programme permettant de vérifier la conjecture du carré des facteurs. - ...

{JAVA / J2EE} ALGORITHME GENETIQUE PROBLEME DU VOYAGEUR DE COMMERCE
Je présente ici mon dernier projet. Réalisé dans le cadre de mes TPE de 1ère, ce programme permet de...