]> AND Private Git Repository - cours-maths-dis.git/commitdiff
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
ajout de sujet de partiels
authorcouchot <couchot@couchot-Latitude-E6320.(none)>
Wed, 20 Mar 2013 13:22:34 +0000 (14:22 +0100)
committercouchot <couchot@couchot-Latitude-E6320.(none)>
Wed, 20 Mar 2013 13:22:34 +0000 (14:22 +0100)
partiels/130311S2/main.tex
partiels/130311S3_tp/main.tex [new file with mode: 0644]

index 68070334d3c40b1264f57a0c2570da7bbce015ef..7c35414aa4fb130f402d65ac69275a34f94cc033 100644 (file)
@@ -12,7 +12,7 @@
 \usepackage{epsfig}
 \usepackage{calc}
 \usepackage{tabls}
 \usepackage{epsfig}
 \usepackage{calc}
 \usepackage{tabls}
-\usepackage{slashbox}
+%\usepackage{slashbox}
 \usepackage{times}
 \usepackage{multicol}
 \usepackage{tabularx}
 \usepackage{times}
 \usepackage{multicol}
 \usepackage{tabularx}
@@ -138,7 +138,7 @@ en  logique propositionnelle.
 \item  \og Si le système fonctionne normalement, le noyau est en état de marche.\fg{}
 
 \item \og  Le fait que le système ne soit pas en mode ``multi-user''
 \item  \og Si le système fonctionne normalement, le noyau est en état de marche.\fg{}
 
 \item \og  Le fait que le système ne soit pas en mode ``multi-user''
-  est une condition suffisante pour être en mode "interruption".\fg{}
+  est une condition suffisante pour être en mode ``interruption'.\fg{}
 \item \og Le système est en mode ``multi-user'' seulement s'il fonctionne normalement.\fg{}
 \item \og  Soit le noyau est en état de marche, soit le système est en mode ``interruption''.\fg{}
 \end{enumerate}
 \item \og Le système est en mode ``multi-user'' seulement s'il fonctionne normalement.\fg{}
 \item \og  Soit le noyau est en état de marche, soit le système est en mode ``interruption''.\fg{}
 \end{enumerate}
diff --git a/partiels/130311S3_tp/main.tex b/partiels/130311S3_tp/main.tex
new file mode 100644 (file)
index 0000000..0677de4
--- /dev/null
@@ -0,0 +1,129 @@
+\documentclass[11pt,a4paper,french]{article}
+\usepackage[francais]{babel}
+\usepackage[utf8]{inputenc}
+\usepackage{a4}
+\usepackage{amsmath}
+\usepackage{amsfonts}
+\usepackage{amssymb}
+\usepackage{framed}
+\usepackage{dsfont}
+\usepackage[amsmath,thmmarks,thref,framed]{ntheorem}
+\usepackage[dvips]{graphics}
+\usepackage{epsfig}
+\usepackage{calc}
+\usepackage{tabls}
+%\usepackage{slashbox}
+\usepackage{times}
+\usepackage{multicol}
+\usepackage{skak,chessboard}
+\usepackage{textcomp}
+\usepackage{pst-all}
+\usepackage[a4paper]{geometry}
+
+\geometry{hmargin=1cm, tmargin=1cm,bmargin=1.5cm}
+\title{Département d'informatique, partiel de Mathématiques discrètes.\\  
+Semestre 3, mars 2013, durée 30 min, J.-F. Couchot.}
+
+\date{}
+
+\begin{document}
+\maketitle
+\vspace{-5em}
+\begin{tabular}{ll}
+Nom:& ........................................\\
+Prénom:& ........................................\\
+\end{tabular}
+
+Seuls les codes développés en TP sont autorisés.
+Vos réponses seront données directement ci-dessous en python.
+
+
+\section*{Échange de cavaliers au jeu d'échec}
+
+Sur un échiquier 3x3, les deux cavaliers noirs sont placés sur les cases a1 et c1, les deux cavaliers blancs occupant les cases a3 et c3, comme représenté 
+ci-dessous.
+\begin{center}  
+  \def\mylist{Na3,Nc3,na1,nc1}
+  \setchessboard{
+  maxfield=c3,
+  setpieces=\mylist
+}
+\chessboard
+\end{center}
+
+L'objectif est de déterminer les mouvements qui autoriseront les
+cavaliers blancs à prendre les places des cavaliers noirs, et vice versa.
+
+Pour rappel, un cavalier se déplace en ``L'': par exemple le cavalier noir, 
+en a1, peut se rendre soit en c2, soit en b3.
+Comme il y a neuf cases sur le plateau, l'état du 
+jeu est mémorisé à l'aide d'un 9-uplet  
+$$
+(x_0,x_1,x_2,x_3,x_4,x_5,x_6,x_7,x_8)
+$$ 
+où 
+$x_0$ mémorise ce qu'il y a sur la case a1, 
+$x_1$ mémorise ce qu'il y a sur la case a2, \ldots, 
+$x_8$ mémorise ce qu'il y a sur la case c3. 
+Un case $x_i$ est soit vide, soit avec un cavalier noir, soit avec un 
+cavalier blanc. On mémorise ceci en affectant à $x_i$ 
+soit la valeur 'v' (pour vide), 
+soit la valeur 'n' (pour cavalier noir) ou  
+soit la valeur 'b' (pour cavalier blanc). 
+
+
+
+\begin{enumerate}
+\item Donner le 9-uplet \verb+initial+ 
+  qui représente l'état initial du jeu selon ce codage.
+  Donner le 9-uplet \verb+final+ 
+  qui représente l'état final du jeu selon ce codage.
+
+\vspace{2cm}
+\item Donner le code de la fonction \verb+nbre(u,c)+ qui reçoit en paramètres 
+  un $n$-uplet \verb+u+ et un caractère \verb+c+ et qui retourne le nombre
+  d'occurrences de ce caractère dans \verb+u+. Par exemple 
+  \verb+nbre(initial,'b')+ vaut 2 et  \verb+nbre(initial,'v')+ vaut 5.
+\vspace{3cm}
+\item Si l'on construisait tous les plateaux de jeu 3x3 sans tenir compte 
+  du nombre de cavaliers, combien en aurait-on? Justifier.
+ \vspace{3cm}
+\item Donner le code qui initialise la liste de plateaux, 
+  nommée \verb+plateaux+, 
+  avec tous les plateaux possibles, mais en tenant compte du fait qu'il 
+  y a toujours deux cavaliers noirs et deux cavaliers blancs sur chaque 
+  plateau.   
+ \vspace{5cm}
+\item Commenter le code suivant (à sa droite) 
+  en détaillant la nature des paramètres, 
+  ce qui est retourné, et pourquoi cette valeur?  
+\begin{scriptsize}
+\begin{verbatim}
+def deplacement(co,ce):
+      r=[[5,7],
+         [6,8],
+         [3,7],
+         [2,8],
+         [],
+         [0,6],
+         [1,5],
+         [0,2],
+         [1,3]]
+      return ce in r[co]
+\end{verbatim}
+\end{scriptsize}
+\item Donner le code de la fonction  \verb+deplacement_ok(p1,p2)+
+  qui retourne vrai si l'on peut passer du plateau 
+\verb+p1+ au plateau \verb+p2+.
+\vspace{6cm}
+
+\item Donner le code manquant 
+  qui permet de résoudre le problème en utilisant 
+  \verb+networkx+.
+
+\end{enumerate}
+
+\end{document}
+