\documentclass{article} \usepackage{pst-tree} \makeatletter \newcount\@Bernoudepth \newcount\@Bernoumaxdepth \newcommand\Bernoutree[8][treemode=R,nodesep=1ex,levelsep=12ex]{% % #2 = profondeur de l'arbre % #3 = nom de l'évènement réussite % #4 = nom de l'évènement échec % #5 = proba de l'événement réussite % #6 = placement de #5 % #7 = proba de l'évènement échec % #8 = placement de #7 \begingroup % initialise paramètres \psset{treemode=R,nodesep=1ex,levelsep=12ex}% \psset{#1}% \@Bernoumaxdepth #2\relax \def\@Reussite{#3}% \def\@Echec{#4}% \def\@probareussite{#5}% \def\@Argreussite{#6}% % Si pas de spécification de placement, % on place au centre \ifx\empty\@Argreussite \def\@Argreussite{0.5}% \fi \def\@probaechec{#7}% \def\@Argechec{#8} \ifx\empty\@Argechec \def\@Argechec{0.5}% \fi % Premier appel (racine vide, niveau 1) \pstree{\TR{}}{\@Bernoutree{1}} \endgroup } \newcommand\@Bernoutree[1]{% % #1 = profondeur récursive % initialise profondeur en cours \@Bernoudepth #1\relax \ifnum\@Bernoudepth=\@Bernoumaxdepth % si la profondeur max est atteinte % on place les deux noeuds terminaux \TR{\@Reussite}\taput[tpos=\@Argreussite]{\@probareussite} \TR{\@Echec}\tbput[tpos=\@Argechec]{\@probaechec} % et c'est tout \else % sinon on construit récursivement % les deux sous-arbres de niveau supérieur \advance\@Bernoudepth \@ne \pstree{\TR{\@Reussite}\taput[tpos=\@Argreussite] {\@probareussite}}{\@Bernoutree{\the\@Bernoudepth}} \pstree{\TR{\@Echec}\tbput[tpos=\@Argechec] {\@probaechec}}{\@Bernoutree{\the\@Bernoudepth}} \fi } \makeatother \pagestyle{empty} \begin{document} \Bernoutree{3}{$A$}{$\bar{A}$}{$p$}{0.4}{$1-p$}{0.2} \Bernoutree[levelsep=18ex,treenodesize=0pt]{4}{$R$}{$E$}{$p$}{}{$q$}{} \end{document}