Parfois, je veux faire un test exact en examinant toutes les combinaisons possibles des données pour construire une distribution empirique par rapport à laquelle je peux tester mes différences observées entre les moyennes. Pour trouver les combinaisons possibles, j'utilise généralement la fonction combn. La fonction Choose peut me montrer le nombre de combinaisons possibles. Il est très facile que le nombre de combinaisons devienne si grand qu'il n'est pas possible de stocker le résultat de la fonction combn, par exemple, combn (28,14) nécessite un vecteur de 2,1 Go. J'ai donc essayé d'écrire un objet qui passait par la même logique que la fonction combn afin de fournir les valeurs d'une "pile" imaginaire une à la fois. Cependant, cette méthode (comme je l'ai instanciée) est facilement 50 fois plus lente que combn à des tailles de combinaison raisonnables,
Existe-t-il un meilleur algorithme pour faire ce genre de chose que l'algorithme utilisé dans combn? Plus précisément, existe-t-il un moyen de générer et de tirer la Nème combinaison possible sans calculer par toutes les combinaisons précédentes?