nathan boileau 3 years ago
commit b48475ab42

@ -1,17 +1,32 @@
import random as r
def hanoi(nb_disks,start, middle, end): def hanoi(nb_disks,start, middle, end):
l=[] l=[]
hanoi_rec(l,nb_disks,start, middle, end) hanoi_rec(l,nb_disks,start, middle, end)
return l return l
def hanoiVerif(nb_disks,start, middle, end):
l=[]
hanoi_rec(l,nb_disks,start, middle, end)
return l
def hanoi_rec(l,nb_disks, start, middle, end): def hanoi_rec(l,nb_disks, start, middle, end):
if nb_disks == 1: if(nb_disks == 1):
return l.append([start,end]) return l.append([start,end])
else: else:
hanoi_rec(l,nb_disks - 1, start, end, middle) hanoi_rec(l,nb_disks - 1, start, end, middle)
l.append([start,end]) l.append([start,end])
hanoi_rec(l,nb_disks - 1, middle, start, end) hanoi_rec(l,nb_disks - 1, middle, start, end)
print(hanoi(4,"A","B","C")) def testhanoi(x):
if(hanoi(3,"A","B","C")!=[['A','C'],['A','B'],['C','B'],['A','C'],['B','A'],['B','C'],['A','C']]):
return False
for i in range(x):
j=r.randint(1,4)
if(hanoi(j,"Z","E","R")!=hanoiVerif(j,"Z","E","R")):
return False
return True
print(testhanoi(5))

@ -0,0 +1,37 @@
//~ Function that test the user code
async function submit(){
var test = editor.getValue()+`\n
import random as r
def hanoi_rec(l,nb_disks, start, middle, end):
if(nb_disks == 1):
return l.append([start,end])
else:
hanoi_rec(l,nb_disks - 1, start, end, middle)
l.append([start,end])
hanoi_rec(l,nb_disks - 1, middle, start, end)
def hanoiVerif(nb_disks,start, middle, end):
l=[]
hanoi_rec(l,nb_disks,start, middle, end)
return l
def testhanoi(x):
if(hanoi(3,"A","B","C")!=[['A','C'],['A','B'],['C','B'],['A','C'],['B','A'],['B','C'],['A','C']]):
return False
for i in range(x):
j=r.randint(1,4)
if(hanoi(j,"Z","E","R")!=hanoiVerif(j,"Z","E","R")):
return False
return True
print(testhanoi(5))
`;
exec("print ('True')", "code");
exec(test, "solution");
result.innerHTML = "Test en cours...";
await new Promise(r => setTimeout(r, 1500));
check();
}

@ -0,0 +1,38 @@
//~ Function that test the user code
async function submit(){
var test = editor.getValue()+`\n
import random as r
def estTriangleDePascal(n):
if(n==0):
return []
if(n==1):
return [[1]]
triangle=[[1],[1, 1]]
columns=n
for line in range(2,n):
triangle.append([1])
for column in range(1, line):
triangle[line].append(triangle[line - 1][column - 1] + triangle[line - 1][column])
triangle[line].append(1)
return triangle
def testTriangleDePascal(n):
listTest=[0,1]
for i in range(0,n):
listTest.append(r.randint(5,140))
for i in listTest:
if(TriangleDePascal(i)!=estTriangleDePascal(i)):
return False
return True
print(testTriangleDePascal(5))
`;
exec("print ('True')", "code");
exec(test, "solution");
result.innerHTML = "Test en cours...";
await new Promise(r => setTimeout(r, 1500));
check();
}

@ -16,9 +16,9 @@ def DecryptVerif(text, key):
return result return result
def testDecrypte(x): def testDecrypte(x):
if(Decrypt("Hello world",2)!="Jgnnq yqtnf"): if(Decrypt("Jgnnq yqtnf",2)!="Hello world"):
return False return False
if(Decrypt("Scripted",9)!="Blarycnm"): if(Decrypt("Blarycnm",9)!="Scripted"):
return False return False
for i in range(x): for i in range(x):
l="" l=""

@ -32,19 +32,16 @@
<h2>Consigne</h2><br> <h2>Consigne</h2><br>
<p class="enonce"> <p class="enonce">
Écrire une fonction Decrypt qui prend en argument un essage crypté et une clé et qui retourne le message decrypté avec le code César.(les espace ne seront pas encodé.) Écrire une fonction Decrypt qui prend en argument un essage crypté et une clé et qui retourne le message decrypté avec le code César.(les espace ne seront pas encodé.)
</p><br><br> </p><br>
<h2>Rappel</h2><br> <h2>Rappel</h2><br>
<p class="rappel">Le code César (ou chiffre de César ) est un chiffrement par substitution, <p class="rappel">Le code César (ou chiffre de César ) est un chiffrement par substitution, où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l'alphabet. Par exemple A avec une clé 2 devient C.
<br>où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l'alphabet . </p><br>
<br>Par exemple A avec une clé 2 devient C.
</p><br><br>
<h2>Exemple</h2><br> <h2>Exemple</h2><br>
<p>Entrée :&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;Sortie :</p> <p>Entrée :&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;Sortie :</p>
<p>[cyber,3]&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;fbehu</p><br><br> <p>'fbehu',3&emsp;&emsp;&emsp;&emsp;&emsp;&nbsp; cyber</p><br>
<h2>Aide</h2><br> <h2>Aide</h2><br>
<p> <p>
La fonction ord(char) de python permet de retourner lUnicode(standard dencodage de caractères) d'un caractère. La fonction ord(char) de python permet de retourner lUnicode (standard dencodage de caractères) d'un caractère. Par exemple, ord('a') retourné '97' et ord('b) retourne 98.
<br>Par exemple, ord('a') retourné '97' et ord('b) retourne 98.
</p> </p>
</div> </div>
<div class='ace' id='editor'>def Decrypt(text, key): <div class='ace' id='editor'>def Decrypt(text, key):
@ -84,7 +81,7 @@
</a> </a>
</div> </div>
<div id="bottom"> <div id="bottom">
<a href="../Home.html" class="btn" id="fleche"> <a href="./TrianglePascal.html" class="btn" id="fleche">
<span class="noAnimation">Next</span> <span class="noAnimation">Next</span>
</a> </a>
</div> </div>

@ -31,21 +31,19 @@
</div> </div>
<h2>Consigne</h2><br> <h2>Consigne</h2><br>
<p class="enonce"> <p class="enonce">
Écrire une fonction Encrypt qui prend en argument un message et une clé et qui retourne Écrire une fonction Encrypt qui prend en argument un message et une clé et qui retourne le message crypté avec le code César.(les espace ne seront pas encodé.)
le message crypté avec le code César.(les espace ne seront pas encodé.)
</p><br><br> </p><br><br>
<h2>Rappel</h2><br> <h2>Rappel</h2><br>
<p class="rappel">Le code César (ou chiffre de César ) est un chiffrement par substitution, <p class="rappel">Le code César (ou chiffre de César ) est un chiffrement par substitution,
<br>où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l'alphabet . <br>où chaque lettre est remplacée par une autre lettre se situant un peu plus loin dans l'alphabet .
<br>Par exemple A avec une clé 2 devient C. <br>Par exemple A avec une clé 2 devient C.
</p><br><br> </p><br><br>
<h2><b>Exemple</b></h2><br> <h2>Exemple</h2><br>
<p><b>Entrée :</b>&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;<b>Sortie :</b></p> <p>Entrée :&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;Sortie :</p>
<p>[fbehu,3]&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;cyber</p><br><br> <p>[fbehu,3]&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;&emsp;cyber</p><br><br>
<h2>Aide</h2><br> <h2>Aide</h2><br>
<p> <p>
La fonction ord(char) de python permet de retourner lUnicode(standard dencodage de caractères) d'un caractère. La fonction ord(char) de python permet de retourner lUnicode (standard dencodage de caractères) d'un caractère. Par exemple, ord('a') retourné '97' et ord('b) retourne 98.
<br>Par exemple, ord('a') retourné '97' et ord('b) retourne 98.
</p> </p>
</div> </div>
<div class='ace' id='editor'>def Encrypt(text, key): <div class='ace' id='editor'>def Encrypt(text, key):

@ -35,6 +35,9 @@
</br>La valeur peut aller de 3 à 18 . </br>La valeur peut aller de 3 à 18 .
</br>Les solutions doivent être uniques.(1,2,3) et (3,2,1) sont la même solution. </br>Les solutions doivent être uniques.(1,2,3) et (3,2,1) sont la même solution.
</p><br><br> </p><br><br>
<h2>Exemple</h2><br>
<p>Entrée : 7</p>
<p>Sortie : [[1,1,5],[1,2,4],[1,3,3],[2,2,3]]</p><br>
<h2>Aide</h2><br> <h2>Aide</h2><br>
<p>On cherche à savoir si la somme de 3 dés (trois variables allant de 1 à 6) est égale à une valeur donné.</p> <p>On cherche à savoir si la somme de 3 dés (trois variables allant de 1 à 6) est égale à une valeur donné.</p>
<p>Pour cela on peut utiliser la structure suivante on d1 ( le premier dé) va varier de 1 à 6.</p>. <p>Pour cela on peut utiliser la structure suivante on d1 ( le premier dé) va varier de 1 à 6.</p>.

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Palindrome</title>
<link rel="stylesheet" href="../../CSS/Enigme.css"/>
<link rel="stylesheet" href="../../CSS/Home.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<style>
html{
background-image: url(../../../assets/img/BackgroundPalindrome.jpg);
}
</style>
</head>
<body>
<div class="enigme">
<div class="titre_pre">
<div class="retour">
<a class="material-icons" id="home" href="../Home.html" style="font-size:36px;color:white;">home</a>
</div>
<div class="sign">
<h1>
<span class="fast-flicker">T</span>
<span>our </span>
<span class="flicker">&nbsp;H</span>
<span>anoi</span>
</h1>
</div><br>
</div>
<h2>Consigne</h2><br>
<p class="enonce">
Faire une fonction permettant de résoudre le problème des tours dhanoi peu importe le nombre d'entrées dans la fonction.
</p><br>
<h2>Rappel</h2><br>
<p class="rappel">Le problème des tours de hanoi est le suivant, on souhaite déplacer un certain nombre de disque de taille différente et ils sont et doivent restés empilés de telle sorte quaucun disque dune certaine taille n soit placé en dessous dun disque de taille plus grande en sachant quil ny a que 3 piles.
</p><br>
<h2>Exemple</h2><br>
<p>Entrée :3,"A","B","C"</p>
<p>Sortie : [['A','C'],['A','B'],['C','B'],['A','C'],['B','A'],['B','C'],['A','C']]</p>
<h2>Aide</h2><br>
<p>Une fonction récursive est une fonction qui fait appelle à elle même</p>
</div>
<div class='ace' id='editor'>def hanoi(nb_disks,start, middle, end):
l=[]
hanoi_rec(l,nb_disks,start, middle, end)
return l
def hanoi_rec(l,nb_disks, start, middle, end):
if nb_disks == 1:
return l.append([start,end])
else:
hanoi_rec(l,nb_disks - 1, start, end, middle)
l.append([start,end])
hanoi_rec(l,nb_disks - 1, middle, start, end)</div>
<div class='compiler_class'>
<textarea id='console' readonly rows="30" cols="100"></textarea>
<div class="buttons">
<div>
<a onclick="run_init()" class="btn">
<span class="noAnimation">Run</span>
</a>
<a href="#m1-o" onclick="submit()" class="btn">
<span class="noAnimation">Submit</span>
</a>
</div>
</div>
</div>
<div class="modal-container" id="m1-o" style="--m-background: transparent;">
<div class="modal">
<div id="containerResult">
<h1 id="result"></h1>
</div>
<div class="buttons">
<div id="top">
<a href="#" class="btn">
<span class="noAnimation">x</span>
</a>
</div>
<div id="bottom">
<a href="../Home.html" class="btn" id="fleche">
<span class="noAnimation">Next</span>
</a>
</div>
</div>
</div>
</div>
<script src="https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="https://raw.githack.com/pythonpad/brython-runner/master/lib/brython-runner.bundle.js" type="text/javascript" charset="utf-8"></script>
<script src="../../JS/base.js"></script>
<script src="../../JS/Hanoi.js"></script>
</body>
</html>

@ -0,0 +1,102 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Palindrome</title>
<link rel="stylesheet" href="../../CSS/Enigme.css"/>
<link rel="stylesheet" href="../../CSS/Home.css">
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<style>
html{
background-image: url(../../../assets/img/BackgroundPalindrome.jpg);
}
</style>
</head>
<body>
<div class="enigme">
<div class="titre_pre">
<div class="retour">
<a class="material-icons" id="home" href="../Home.html" style="font-size:36px;color:white;">home</a>
</div>
<div class="sign">
<h1>
<span class="fast-flicker">T</span>
<span>ria</span>
<span class="flicker">n</span>
<span>gle</span>
</h1>
</div><br>
</div>
<h2>Consigne</h2><br>
<p class="enonce">
Faire une fonction triangle_pascal permettant dafficher le triangle de Pascal jusqu'à un certain nombre n de lignes. Bien sùr n sera passé en argument à la fonction.
</p><br>
<h2>Exemple</h2><br>
<p>Entrée : 4</p>
<p>Sortie : [[1],[1,1],[1,2,1],[1,3,3,1]]</p><br>
<h2>Aide</h2><br>
<p>Le triangle arithmétique de Pascal est le triangle dont la ligne d'indice n (n = 0, 1, 2...) donne les coefficients binomiaux (n) pour p = 0, 1, 2..., n.
(p)
La construction de ce triangle de Pascal est simple,
on part de 1 à la première ligne, par convention c'est la ligne zéro (n = 0)
Pour avoir un terme de la ligne suivante, on prend le terme juste au-dessus, et on lui additionne celui qui est juste avant, (0 si il n'y a rien).
Mathématiquement, on applique la formule :
(n+1) = (n) + ( n )
( p ) (p) (p-1)
</p>
</div>
<div class='ace' id='editor'>def TriangleDePascal(n):
if(n==0):
return []
if(n==1):
return [[1]]
triangle=[[1],[1, 1]]
columns=n
for line in range(2,n):
triangle.append([1])
for column in range(1, line):
triangle[line].append(triangle[line - 1][column - 1] + triangle[line - 1][column])
triangle[line].append(1)
return triangle
</div>
<div class='compiler_class'>
<textarea id='console' readonly rows="30" cols="100"></textarea>
<div class="buttons">
<div>
<a onclick="run_init()" class="btn">
<span class="noAnimation">Run</span>
</a>
<a href="#m1-o" onclick="submit()" class="btn">
<span class="noAnimation">Submit</span>
</a>
</div>
</div>
</div>
<div class="modal-container" id="m1-o" style="--m-background: transparent;">
<div class="modal">
<div id="containerResult">
<h1 id="result"></h1>
</div>
<div class="buttons">
<div id="top">
<a href="#" class="btn">
<span class="noAnimation">x</span>
</a>
</div>
<div id="bottom">
<a href="./Hanoi.html" class="btn" id="fleche">
<span class="noAnimation">Next</span>
</a>
</div>
</div>
</div>
</div>
<script src="https://ajaxorg.github.io/ace-builds/src-noconflict/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="https://raw.githack.com/pythonpad/brython-runner/master/lib/brython-runner.bundle.js" type="text/javascript" charset="utf-8"></script>
<script src="../../JS/base.js"></script>
<script src="../../JS/TrianglePascal.js"></script>
</body>
</html>
Loading…
Cancel
Save