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é
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
};
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] ?
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.