Retourne le tableau des combinaisons de taille donn�e de l'ensemble des �l�ments d'un tableau
#include <Array.au3>
_ArrayCombinations ( Const ByRef $aArray, $iSet [, $sDelimiter = ""] )
$aArray | Le tableau � utiliser |
$iSet | Taille des combinaisons d'�l�ments |
$sDelimiter | [optionnel] S�parateur � utiliser dans les cha�nes de r�sultats, "" par d�faut pour aucun s�parateur |
Succ�s: | Retourne un tableau de combinaisons Le premier �l�ment ($array[0]) contient le nombre de cha�nes retourn�es. Les �l�ments restant ($array[1], $array[2], etc...) contiennent les diff�rentes combinaisons. |
�chec: | D�finit @error <> 0. |
@error: | 1 - $aArray n'est pas un tableau 2 - $aArray n'est pas un tableau 1D |
Le tableau d'entr�e doit �tre de base 0, c.a.d. qu'il ne doit pas y avoir le nombre d'�l�ments en position [0]. Bas� sur l'algorithme de Kenneth H. Rosen.
Note du traducteur:
Une combinaison de n �l�ments pris p � p (p compris entre 0 et n), ne tient pas compte de l'ordre des �l�ments et ne contient pas de r�p�tition du m�me �l�ment. Par exemple, les combinaisons des �l�ments a,b,c,d pris 2 � 2 sont:
{a,b}, {a,c}, {a,d}, {b,c}, {b,d}, {c,d}.
Leur nombre est: C(n,p) = n/p * (n-1)/(p-1) * ... * (n-p+1)/1.
Dans un jeu de cartes, une main est une combinaison, un tirage simultan� de plusieurs boules dans une urne, aussi, le tierc� dans le d�sordre aussi.
; D�clare un tableau 1D, et cr�e un tableau montrant les combinaisons possibles #include <Array.au3> Local $aArray[5] = [1, 2, 3, 4, 5] For $i = 1 To UBound($aArray) Local $aArrayCombo = _ArrayCombinations($aArray, $i, ",") _ArrayDisplay($aArrayCombo, "iSet = " & String($i)) Next