UDF > Array >


_ArrayPermute

Retourne le tableau contenant les permutations de tous les éléments d'un tableau 1D

#include <Array.au3>
_ArrayPermute ( ByRef $aArray [, $sDelimiter = ""] )

Paramètres

$aArray Le tableau dont les éléments sont à permuter.
$sDelimiter [optionnel] Séparateur à utiliser dans les chaînes résultats, par défaut est "" pour aucun séparateur.

Valeur de retour

Succès: Retourne le tableau des permutations.
La position [0] contient le nombre de chaînes retournées.
Les autres éléments du tableau contiennent les permutations sous forme de chaînes.
Échec: Définit @error <> 0.
@error: 1 - L'entrée doit être un tableau
2 - $aArray n'est pas un tableau 1D

Remarques

Le tableau d'entrée doit être de base 0, c'est à dire qu'il ne doit pas y avoir le nombre d'éléments en position [0].
Utilise l'algorithme de Alexander Bogomolny ( http://www.bearcave.com/random_hacks/permute.html).

Si le tableau d'entrée a n éléments tous différents, le nombre de permutations de ces n éléments est:
    n! = n x (n-1) x (n-2) x ... x 3 x 2 x 1
Si les éléments du tableau d'entrée ne sont pas tous différents, on obtient des doublons dans le tableau des permutations.

En relation

_ArrayCombinations

Exemple

; Déclare un tableau 1D, retourne le tableau des permutations

#include <Array.au3>

Local $aArray[4] = [1, 2, 3, 4]
Local $aNewArray = _ArrayPermute($aArray, ",") ; Utilisation des paramètres par défaut
_ArrayDisplay($aNewArray, "Tableau des permutations")