Bonjour
Suite à l'article de Denis Hulo sur les arrangements, en cherchant autre chose, j'ai trouvé ceci (https://stackoverflow.com/questions/...in-javascript]).
Les explications fournies à propos du code ci-dessous ne m'ont pas éclairé
En traçant le programme avec au départ input= [5,3,7,1], il appelle successivement permute avec les valeurs du paramètre [5,3,7,1], [3,7,1], [7,1], [1], [] puis [7] et c'est là que tout devient incompréhensible pour moi, pourquoi [7] ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 var permArr = [], usedChars = []; function permute(input) { var i, ch; for (i = 0; i < input.length; i++) { ch = input.splice(i, 1)[0]; usedChars.push(ch); if (input.length == 0) { permArr.push(usedChars.slice()); } permute(input); input.splice(i, 0, ch); usedChars.pop(); } return permArr };
Quelqu'un aurait-il une explication sur ce qui se passe dans ce programme ?
Peut-on faire la même chose avec un autre langage, Pascal par exemple ?
Merci.
Partager