openct-tasks/bebras/2016/2016-JP-01-potions/index.html

303 lines
16 KiB
HTML

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>2016-JP-01</title>
<link class="module" rel="stylesheet" href="../../../_common/modules/pemFioi/taskStyles-0.1.css" id="http://www.france-ioi.org/modules/pemFioi/taskStyles-0.1.css">
<script class="module" type="text/javascript" src="../../../_common/modules/ext/jquery/1.7/jquery.min.js" id="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/ext/jquery-ui/jquery.ui.touch-punch.min.js" id="jquery.ui.touch-punch.min.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/ext/raphael/2.2.1/raphael.min.js" id="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.2.1/raphael.min.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/ext/json/json2.min.js" id="https://github.com/douglascrockford/JSON-js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/beav-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/beav-1.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/drag_lib-2.0.js" id="http://www.france-ioi.org/modules/pemFioi/drag_lib.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/beaver-task-2.0.js" id="http://www.france-ioi.org/modules/pemFioi/beaver-task-2.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/simulation-2.0.js" id="http://www.france-ioi.org/modules/pemFioi/simulation-2.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/raphaelFactory-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/raphaelFactory-1.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/delayFactory-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/delayFactory-1.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/simulationFactory-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/simulationFactory-1.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/grid-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/grid-1.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/randomGenerator-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/randomGenerator-1.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/raphaelButton-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/raphaelButton-1.0.js"></script>
<script class="module" type="text/javascript" src="../../../_common/modules/pemFioi/graph-1.0.js" id="http://www.france-ioi.org/modules/pemFioi/graph-1.0.js"></script>
<script class="remove" type="text/javascript" src="../../../_common/modules/integrationAPI.01/installationAPI.01/pemFioi/installation.js" id="http://www.france-ioi.org/modules/integrationAPI.01/installationAPI.01/pemFioi/installation.js"></script>
<script class="remove" type="text/javascript" src="../../../_common/modules/ext/jschannel/jschannel.js"></script>
<script class="proxy module" type="text/javascript" src="../../../_common/modules/integrationAPI.01/official/platform-pr.js" id="http://www.france-ioi.org/modules/integrationAPI.01/official/platform-pr.js"></script>
<script class="stdButtonsAndMessages module" type="text/javascript" src="../../../_common/modules/integrationAPI.01/installationAPI.01/pemFioi/buttonsAndMessages.js" id="http://www.france-ioi.org/modules/integrationAPI.01/installationAPI.01/pemFioi/buttonsAndMessages.js"></script>
<script class="remove" type="text/javascript" src="../../../_common/modules/integrationAPI.01/official/miniPlatform.js" id="http://www.france-ioi.org/modules/integrationAPI.01/official/miniPlatform.js"></script>
<script>
var stringsLanguage = 'fr';
</script>
<script class="remove" type="text/javascript">
var json = {
"id": "http://castor-informatique.fr/tasks/2016/2016-JP-01-potions/",
"language": "fr",
"version": "fr.01",
"authors": "Miyu Hayakawa, Japan; Hiroki Manabe, manaty2005@mh.scn-net.ne.jp, Japan; Arthur Charguéraud; Mathias Hiron; Nir Lavee, France-ioi",
"translators": [],
"license": "CC BY-SA 3.0",
"taskPathPrefix": "",
"modulesPathPrefix": "",
"browserSupport": [],
"fullFeedback": true,
"acceptedAnswers": [],
"usesRandomSeed": false
};
</script>
<script type="text/javascript">
var taskStrings = {
names: {
curlyWhiskers: "Moustaches frisées",
whiteEyes: "Yeux blancs",
bigTeeth: "Grandes dents",
bigEars: "Grandes oreilles",
blackTeeth: "Dents noires",
whiteNose: "Nez blanc",
blackEars: "Oreilles noires",
whiteSkin: "Peau blanche"
},
success: "Bravo, vous avez réussi !",
wrong: "Votre réponse comporte des erreurs. Essayez autrement.",
wrongHard: function(correct, total) {
return "Vous avez correctement identifié " + correct + " des " + total + " potions. Essayez maintenant d'en identifier un plus grand nombre. Cliquez sur le bouton pour mélanger les potions et tout recommencer.";
},
wrongLogic: "Vous avez placé le castor encadré en rouge, alors que vous ne pouvez pas être certain que c'est forcément cette potion qu'il a bue.",
drinkButton: function(beavers) {
return "Faire boire\nles Castors";
},
reshuffleButton: "Mélanger les potions\net recommencer",
noDrink: "Tête d'un\ncastor qui\nne boit pas.",
emptyExperiment: "Donnez au moins une potion à chaque Castor.",
answerTooEarly: "Faites d'abord boire les castors.",
cupsTooLate: "Avant de pouvoir changer les potions, cliquez sur le bouton pour les mélanger et recommencer."
};
</script>
<script type="text/javascript" src="task.js"></script>
<style>
#anim_container {
}
#anim {
display: inline-block;
}
#drinkingInstruction {
margin-left: 170px;
}
#experimentCups {
}
.usageInstructions {
}
#feedback {
height: 1em;
margin-top: 0.3em;
margin-bottom: 0.3em;
text-align: center;
font-weight: bold;
color: #CC8844;
}
#validation {
margin-top: 1em;
text-align: center;
}
#validation input {
padding: 2px 10px 2px 10px;
}
#solution li {
padding-bottom: 0.5em;
}
#solInfo {
border-collapse: collapse;
}
#solInfo td {
border: 1px solid black;
padding: 4px;
text-align: center;
}
</style>
</head>
<body>
<div id="task">
<h1>Potions magiques</h1>
<div id="tabsContainer"></div>
<div id="taskContent">
<p id="difficultyWarning" class="hard"></p>
<p>
Les castors ont trouvé <span class="totalCups">X</span> potions magiques.
Chaque potion modifie un aspect des castors qui la boivent.
</p>
<p id="drinkingInstruction" class="easy medium">Trois castors ont bu <span class="experimentCups">X</span> potions chacun. Ils ont changé comme ceci :
</p>
<p class="hard">
Faites boire des potions à trois castors pour pouvoir déduire quelle potion correspond à chaque lettre.
</p>
<p class="hard">
Glissez au-dessus de chaque castor ce que vous souhaitez lui faire boire.
</p>
<p class="hard">
<strong>Attention :</strong> une fois que les castors ont bu, si vous réessayez, les potions seront mélangées.
</p>
<div id="anim_container">
<div id="anim1"></div>
<div id="feedback"></div>
<div class="usageInstructions">
<p>
Les castors ci-dessous ont bu une potion chacun.
Glissez chaque castor sous la potion qu'il a bue.
</p>
<p class="hard">
<strong>Attention :</strong> si vous n'êtes pas sûr de vous, ne remplissez pas au hasard, mais laissez des cases vides.
</p>
</div>
<div id="anim2"></div>
</div>
<div id="validation"><input type="button" value="Valider" id="execute" /></div>
<img id="bigEars_image" src="bigEars.png" style="display:none">
<img id="bigTeeth_image" src="bigTeeth.png" style="display:none">
<img id="blackEars_image" src="blackEars.png" style="display:none">
<img id="blackTeeth_image" src="blackTeeth.png" style="display:none">
<img id="curlyWhiskers_image" src="curlyWhiskers.png" style="display:none">
<img id="whiteEyes_image" src="whiteEyes.png" style="display:none">
<img id="whiteNose_image" src="whiteNose.png" style="display:none">
<img id="whiteSkin_image" src="whiteSkin.png" style="display:none">
<img src="icon.png" style="display:none">
</div>
</div><!-- task -->
<div id="solution">
<h2>Solution</h2>
<style>
.solutionInstanceMismatch {
font-style: italic;
}
</style>
<p class="solutionInstanceMismatch">Remarque : les données de la correction ne correspondent pas forcément à celles de votre sujet.</p>
<div class="easy">
<ul>
<li>La potion B a été bue par les castors 1 et 2. Leur point commun est d'avoir les moustaches frisées : c'est donc l'effet de la potion B.</li>
<li>La potion C a été bue par les castors 2 et 3. Leur point commun est d'avoir des grandes oreilles : c'est donc l'effet de la potion C.</li>
<li>La potion A n'a été bue que par le castor 1. C'est le seul castor avoir des grandes dents : c'est donc l'effet de la potion A.</li>
<li>La potion D n'a été bue que par le castor 3. C'est le seul castor avoir les dents noires : c'est donc l'effet de la potion D.</li>
</ul>
<p><img src="sol_easy.png"></p>
</div>
<div class="medium">
<ul>
<li>La potion A a été bue par les castors 1 et 2. Leur point commun est d'avoir des grandes dents : c'est donc l'effet de la potion A.</li>
<li>De même, on déduit que la potion D bue par les castors 2 et 3 donne les grandes oreilles.</li>
<li>De même, on déduit que la potion C bue par les castors 1 et 3 donne les dents noires.</li>
<li>La potion B n'a été bue que par le castor 1. C'est le seul castor avoir les moustaches frisées : c'est donc l'effet de la potion B.</li>
<li>De même, on déduit que la potion E bue uniquement par le castor 2 donne les oreilles noires.</li>
<li>De même, on déduit que la potion F bue uniquement par le castor 3 donne la peau blanche.</li>
</ul>
<p><img src="sol_medium.png"></p>
</div>
<div class="hard">
<p>Pour distinguer les effets des potions, on va les distribuer aux castors de sorte que :</p>
<ul>
<li>Certaines potions ne sont bues que par un seul castor. </li>
<li>Certaines potions sont bues par exactement deux castors.</li>
<li>Une potion sera bue par les trois castors.</li>
<li>Une potion ne sera bue par aucun castor.</li>
</ul>
<p>Commençons par distribuer les potions bues par un seul castor et choisissons les potions A, B et C&nbsp;:</p>
<p><img src="sol_hard_1.png"></p>
<p>Distribuons ensuite des potions bues par deux castors : la potion D pour les castors 1 et 2, la potion E pour les castors 2 et 3, et la potion F pour les castors 1 et 3.</p>
<p><img src="sol_hard_2.png"></p>
<p>Distribuons ensuite la potion G à tous les castors. La potion H n'est distribuée à personne.
Faisons alors boire les castors.</p>
<p><img src="sol_hard_3.png"></p>
<p>Pour identifier les effets, le plus rapide est de commencer par les effets en commun à plusieurs castors.</p>
<ul>
<li>Les trois castors ont en commun des grandes dents : c'est donc l'effet de la potion G. </li>
<li>Les castors 1 et 2 ont en commun les grandes oreilles : c'est donc l'effet de la potion D.</li>
<li>Les castors 2 et 3 ont en commun la peau blanche : c'est donc l'effet de la potion E.</li>
<li>Les castors 1 et 3 ont en commun les oreilles noires : c'est donc l'effet de la potion F.</li>
<li>Le castor 1 est le seul à avoir les dents noires : c'est donc l'effet de la potion A.</li>
<li>Le castor 2 est le seul à avoir les moustaches frisées : c'est donc l'effet de la potion B.</li>
<li>Le castor 3 est le seul à avoir le nez blanc : c'est donc l'effet de la potion C.</li>
<li>L'effet des yeux blancs n'a été vu sur aucun castor : c'est donc l'effet de la potion H.</li>
</ul>
<p><img src="sol_hard_4.png"></p>
</div>
<h2>C'est de l'informatique !</h2>
<p>Dans la version difficile de ce sujet, on propose de répartir des potions sur 3 castors, de sorte à pouvoir identifier chaque potion. Pour construire une solution, on peut procéder en remplissant un tableau : chaque ligne correspond à une potion, chaque colonne correspond à un castor, et dans chaque case à l'intérieur du tableau, on note 1 si le castor de la colonne boit la potion sur la ligne, et 0 pour indiquer le contraire.
</p>
<p>L'objectif est d'être capable d'identifier les potions, ce qui revient à dire que toutes les lignes du tableau doivent être différentes. Une possibilité est de remplir les lignes comme montré ci-dessous.</p>
<p><table id="solInfo">
<tr>
<td></td>
<td>Castor n°1</td>
<td>Castor n°2</td>
<td>Castor n°3</td>
</tr>
<tr>
<td>Potion A</td>
<td>0</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Potion B</td>
<td>0</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>Potion C</td>
<td>0</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>Potion D</td>
<td>0</td>
<td>1</td>
<td>1</td>
</tr>
<tr>
<td>Potion E</td>
<td>1</td>
<td>0</td>
<td>0</td>
</tr>
<tr>
<td>Potion F</td>
<td>1</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td>Potion G</td>
<td>1</td>
<td>1</td>
<td>0</td>
</tr>
<tr>
<td>Potion H</td>
<td>1</td>
<td>1</td>
<td>1</td>
</tr>
</table></p>
<p>Bien sûr, on aurait pu mettre les lignes dans un ordre différent. Mais toutes les solutions correspondent forcément à un certain mélange de ces lignes.</p>
<p>Les lignes du tableau ci-dessus correspondent à la <strong>numérotation binaire</strong> : c'est ainsi que les ordinateurs représentent les nombres.</p>
</div> <!-- task-solution -->
</body>
</html>