Générer combinaisons en c++

J'ai été la recherche d'un code source pour la génération de combinaison à l'aide de c++. J'ai trouvé des codes pour cela, mais ce qui est bon pour seulement certains nombre de données prédéfinis. Quelqu'un peut-il me donner quelques conseils, ou peut-être une idée pour générer de la combinaison. Par exemple, supposons que l'ensemble S = { 1, 2, 3, ...., n} et on choisir r= 2 hors de lui. L'entrée serait n et r.Dans ce cas, le programme va générer des tableaux de longueur deux, comme 5 2 sorties, 1 2, 1 3, etc.. j'ai eu de la difficulté dans la construction de l'algorithme. Il m'a fallu un mois de réflexion à ce sujet.

  • Je ne comprends pas vraiment ce que vous voulez. Compte tenu de l'ensemble S et l'entrée 2, voulez-vous de toutes les combinaisons de 2 et de chaque élément de S dans un tableau de longueur du tableau 2?
  • Vous avez besoin d'être plus précis, ce genre de combinaisons que vous souhaitez. Par exemple, avec S = {1, 2} et r=2, voulez-vous {1,2} et {2,1}, ou {1,1} et {2,2}, ou même juste {1,2}?
  • Je pense qu'il veut ceci: en.wikipedia.org/wiki/Combination. {1,2} {2,1} sont les mêmes, et {1,1} et {2,2} ne sont pas possibles.
  • Pour lisible algorithmes, vous pouvez regarder dans la documentation Python: docs.python.org/library/itertools.html
  • Le répondre c'est une recherche google à l'écart
  • il y a un élaborer la réponse ici stackoverflow.com/questions/127704/...
  • Si je comprends bien, vous êtes à la recherche d'une sorte d'algorithme générique, non? Avec r=2, vous ne disposez que de deux boucles imbriquées, mais avec r=3, vous avez de trois, de sorte que serait grosso modo un algorithme différent, et vous êtes à la recherche d'un algorithme unique qui gère tous les cas, jusqu'à r=count. Droit? Est que votre question?
  • Oui, @MrLister. Je suis à la recherche d'un seul algorithme en C++ où la sortie lorsque nous entrons n le nombre d'éléments de l'ensemble et r la longueur du tableau.
  • Je ne suis pas préoccupé par la permutation, de toute façon, c'est ce que je voulais savoir: si nous entrons n= 5; c'est 1 ,2, 3 ,4 5. et r = 1, nous avons obtenu la sortie 1,2,3,4,5. mais si r=5, on a 1 2 3 4 5. changer les entrées n= 5 r= 2, nous avons : 1 2 , 1 3, 1 4, 1 5 , 2 3 , etc... où l'on peut vérifier à l'aide de la formule de combinaison..
  • Je ne pense pas que l'on a accepté la réponse est un choix.