salut,
T'as presque raison, en fait on sen tape de l'ordre donc si tu as
as de coeur, as de pique, as de trefle,
c'est la meme chose que
as de pique, as de trefle, as de coeur,
...
etc.
Donc en fait, t'as 6 permutations qui donnent la même chose.
Du coup, tu as 52*51*50/6 mains possibles.
(ca equivaut a dire Combinaison de 3 parmi 52)
Ca te donne 22100 possibilités.
Pour le logiciel, je sais pas si ca vaut le coup de chercher, ca se fait en 2-2.
voici un code bidon qu'il faut compiler, jtaurais bien filé lexe, mais chui sous linux...et ca tournerait pas sous windows

.
Choppe toi un IDE et copie colle le code...bref, a toi de suer un petit peu!
- Code: Tout sélectionner
#include
#include
using namespace std;
int main(){
vector vCC;
vCC.push_back("coeur");
vCC.push_back("pique");
vCC.push_back("carreau");
vCC.push_back("trefle");
vector vNC;
vNC.push_back("deux");
vNC.push_back("trois");
vNC.push_back("quatre");
vNC.push_back("cinq");
vNC.push_back("six");
vNC.push_back("sept");
vNC.push_back("huit");
vNC.push_back("neuf");
vNC.push_back("dix");
vNC.push_back("valet");
vNC.push_back("dame");
vNC.push_back("roi");
vNC.push_back("as");
unsigned int vNC_size = vNC.size();
unsigned int vCC_size = vCC.size();
vector vConstruit;
for(unsigned int i =0; i < vNC_size;i++){
for(unsigned int j = 0; j < vCC_size;j++){
vConstruit.push_back(vNC[i]+" de "+vCC[j]);
}
}
unsigned int vConstruit_size = vConstruit.size();
unsigned int z = 0;
for(unsigned int i=0;i<vConstruit_size-2;i++){
for(unsigned int j=i+1;j<vConstruit_size-1;j++){
for(unsigned int k=j+1;k<vConstruit_size;k++){
cout<<"("<<vConstruit[i]<<","<<vConstruit[j]<<","<<vConstruit[k]<<")"<<endl;
z++;
}
}
}
cout<<"nbCombo="<<z<<endl;
}
edit: gratté entre temps lol