UDF > Array >


_ArrayShuffle

Permute aléatoirement les lignes d'un tableau 1D ou 2D. Dans un tableau 2D, peut limiter la permutation à une colonne spécifique

#include <Array.au3>
_ArrayShuffle ( ByRef $aArray [, $iStart_Row = 0 [, $iEnd_Row = 0 [, $iCol = -1]]] )

Paramètres

$aArray Tableau à traiter
$iStart_Row [optionnel] Index de la ligne où commencer le mélange - par défaut la première
$iEnd_Row [optionnel] Index de la ligne où arrêter le mélange - par défaut la dernière
$iCol [optionnel] Index de la colonne à mélanger (2D uniquement)

Valeur de retour

Succès: Retourne 1.
Échec: Retourne -1 et définit @error <> 0.
@error: 1 - $aArray n'est pas un tableau
2 - $aArray n'est pas un tableau 1D ou 2D
3 - $iStart ou $iEnd en dehors des limites du tableau
4 - $iStart supérieur à $iEnd
5 - $iColumn en dehors des limites du tableau

Remarque

La fonction utilise l'algorithme de permutation aléatoire Fisher-Yates.

Exemple

#include <Array.au3>

Local $aArray_Base[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
_ArrayDisplay($aArray_Base, "1D - Initial", Default, 8)

Local $aArray = $aArray_Base
_ArrayShuffle($aArray)
_ArrayDisplay($aArray, "1D - Mélangé", Default, 8)

$aArray = $aArray_Base
_ArrayShuffle($aArray, 3, 8)
_ArrayDisplay($aArray, "1D - Mélangé - 3-8 ", Default, 8)

Local $aArray_Base[10][10]
For $i = 0 To 9
    For $j = 0 To 9
        $aArray_Base[$i][$j] = $i
    Next
Next
_ArrayDisplay($aArray_Base, "2D - Initial", Default, 8)

$aArray = $aArray_Base
_ArrayShuffle($aArray)
_ArrayDisplay($aArray, "2D - Mélangé - Toutes les lignes", Default, 8)

$aArray = $aArray_Base
_ArrayShuffle($aArray, 3, 8, 2)
_ArrayDisplay($aArray, "2D - Mélangé - Col 2, 3-8", Default, 8)