Inscription / Connexion Nouveau Sujet
Niveau autre
Partager :

programmer et faire de l'algorithmique... en LaTeX

Posté par
Nicolas_75 Correcteur
01-04-13 à 10:56

Bonjour,

Je me suis essayé à faire de la programmation en LaTeX, grâce aux packages ifthen (pour booléens, if...then et while...do), calc (pour la soustraction) et lgc (pour récupérer des nombres tirés au hasard).

Le code n'est pas très lisible, mais c'est rigolo.
On arrive aux mêmes fonctionnalités qu'Algobox.

Je suis parti de cet exercice de probabilité : https://www.ilemaths.net/sujet-probleme-ouvert-549166.html
Dans le topic, j'avais proposé un code en Java (exécutable en ligne) pour simuler l'expérience.

J'ai tenté de le convertir en LaTeX. Cela donne :

programmer et faire de l\'algorithmique... en LaTeX

Posté par
Nicolas_75 Correcteur
re : programmer et faire de l'algorithmique... en LaTeX 01-04-13 à 10:57

Le code en version texte :

Citation :
\documentclass[12pt]{article}

\usepackage{ifthen}
\usepackage{calc}
\usepackage[first=1, last=3, counter=nombreAuHasard]{lcg}

\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[frenchb]{babel}

\setlength\parindent{0pt}
\begin{document}

\newcounter{nbExperiences}
\newcounter{nbPersonnesAyantDejaGagneUnLot}
\newcounter{personneNumero}
\newcounter{billetNumero}
\newcounter{nbPersonnesNayantGagneAucunLot}
\newboolean{dejaUnBilletAvecTete}
\newboolean{dejaUnBilletAvecCorps}
\newboolean{dejaUnBilletAvecMembresInf}

\setcounter{nbExperiences}{1}
\whiledo{\thenbExperiences < 11}{
\setcounter{nbPersonnesAyantDejaGagneUnLot}{0} % sera incremente a chaque fois que qqun gagne un lot
\setcounter{personneNumero}{1}
\whiledo{\thepersonneNumero < 1001}{
\setcounter{billetNumero}{1} % sera incremente a chaque billet examine (jusqu'à 10)
\setboolean{dejaUnBilletAvecTete}{false}
\setboolean{dejaUnBilletAvecCorps}{false}
\setboolean{dejaUnBilletAvecMembresInf}{false}
\whiledo{ \( \thebilletNumero < 11 \) \AND \( \NOT \( \boolean{dejaUnBilletAvecTete} \AND \boolean{dejaUnBilletAvecCorps} \AND \boolean{dejaUnBilletAvecMembresInf} \) \) }{
\rand % met un nombre au hasard (1, 2 ou 3) dans nombreAuHasard
\ifthenelse{\thenombreAuHasard = 1}{
\setboolean{dejaUnBilletAvecTete}{true}
}{
\ifthenelse{\thenombreAuHasard = 2}{
\setboolean{dejaUnBilletAvecCorps}{true}
}{
\setboolean{dejaUnBilletAvecMembresInf}{true}
}
}
\addtocounter{billetNumero}{1}
}
\ifthenelse{\boolean{dejaUnBilletAvecTete} \AND \boolean{dejaUnBilletAvecCorps} \AND \boolean{dejaUnBilletAvecMembresInf}}{
\addtocounter{nbPersonnesAyantDejaGagneUnLot}{1}
}{}
\addtocounter{personneNumero}{1}
}
\setcounter{nbPersonnesNayantGagneAucunLot}{1000 - \value{nbPersonnesAyantDejaGagneUnLot}}
Nombre de personnes ayant gagne un lot : \thenbPersonnesNayantGagneAucunLot\\
\addtocounter{nbExperiences}{1}
}

\end{document}

Posté par
Nicolas_75 Correcteur
re : programmer et faire de l'algorithmique... en LaTeX 01-04-13 à 10:59

Le code LaTeX ci-dessus peut être compilé en ligne.

Pour cela, il suffit de le copier/coller dans la fenêtre de cette page : http://tex.mendelu.cz/en/

Puis cliquer sur le bouton "PDF" en bas.

Après quelques secondes de réflexion, le document PDF généré apparaît :

programmer et faire de l\'algorithmique... en LaTeX

Posté par
Mariette Correcteur
re : programmer et faire de l'algorithmique... en LaTeX 03-04-13 à 08:12

bonjour,

oh faut que je creuse ça, ça me plait beaucoup !

Posté par
infophile
re : programmer et faire de l'algorithmique... en LaTeX 07-04-13 à 15:12

Bonjour les amis comment allez-vous depuis le temps?

Une question : ça sert à quoi ?

Non je veux dire moi je me sers de la programmation LaTeX pour optimiser la mise en page ou faire des graphiques compliqués avec TikZ, mais pour vraiment programmer et simuler ça s'y prête plutôt mal au niveau de la syntaxe, rien que déclarer une variable et l'incrémenter n'est pas extrêmement pratique. Non ?

La petite grandit bien Nicolas?

Posté par
Nicolas_75 Correcteur
re : programmer et faire de l'algorithmique... en LaTeX 07-04-13 à 17:25

Pas de malentendu : en programmation "pure", je pense que cela ne sert strictement à rien.
D'ailleurs, pour cet exercice, j'avais initialement utilisé Java.
Le but était juste de s'amuser. Oui, je sais, j'ai des façons un peu particulières de m'amuser.

Merci de poser la question. Ma fille a maintenant 5 ans et demi, et se porte comme un charme. Elle a annoncé récemment qu'elle était "forte en mathématiques". Pourvu que cela dure !

Posté par
infophile
re : programmer et faire de l'algorithmique... en LaTeX 07-04-13 à 17:28

Je préfère ne pas savoir comment tu t'amuses avec ta fille



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !