From c10fd0cbad4257af0018a75b93ed053ee2f134a3 Mon Sep 17 00:00:00 2001 From: couchot Date: Wed, 20 Mar 2013 14:22:34 +0100 Subject: [PATCH] ajout de sujet de partiels --- partiels/130311S2/main.tex | 4 +- partiels/130311S3_tp/main.tex | 129 ++++++++++++++++++++++++++++++++++ 2 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 partiels/130311S3_tp/main.tex diff --git a/partiels/130311S2/main.tex b/partiels/130311S2/main.tex index 6807033..7c35414 100644 --- a/partiels/130311S2/main.tex +++ b/partiels/130311S2/main.tex @@ -12,7 +12,7 @@ \usepackage{epsfig} \usepackage{calc} \usepackage{tabls} -\usepackage{slashbox} +%\usepackage{slashbox} \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'' - 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} diff --git a/partiels/130311S3_tp/main.tex b/partiels/130311S3_tp/main.tex new file mode 100644 index 0000000..0677de4 --- /dev/null +++ b/partiels/130311S3_tp/main.tex @@ -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} + -- 2.39.5