PDA

Visualizza la versione completa : [C] Combinazioni senza ripetizioni


teamPT
03-02-2012, 22:10
Salve a tutti, da moto tempo programmo in linguaggio simile a C per trading e mi sono imbattuto in un problema molto difficile che non so da dove cominciare per risolverlo, prova a spiegarmi meglio:
ho una variabile intera K3 che mi varia da 1 a 7 ed entra nel ciclo if secondo le righe riportate sotto


if(K3==1 ||K3==2 || K3== 5 ||K3== 6 ) OK_1;
if(K3==1 ||K3==3 || K3==5 || K3== 7) OK_2;
if(K3==1 ||K3==4 || K3==6 || K3== 7) OK_3;
questo serve per ottenere la combinazione di OK_1,OK_2, OK_3 senza ripetizioni

Ora riporto un esempio di 5 gruppi e otter, secondo le nuove combinazioni, K5 variabile da 1 a 29 che serviranno per lo svolgimento del programma

if (K5==1||K5==6||K5==7||K5==8||K5==9|| K5==16||K5==17||K5==18|| K5==22||K5==23|| K5==25||K5==26||K5==27|| K5==28|| K5==29)

if (K5==2||K5==6|| K5==10||K5==11||K5==12|| K5==16||K5==17||K5==18||K5==19||K5==20|| K5==22||K5==23||K5==24||K5==25||K5==26|| K5==29)

if (K5==3|| K5==7|| K5==10|| K5==13||K5==14|| K5==16|| K5==19||K5==20||K5==21||K5==22||K5==23||K5==24||K5 ==25|| K5==27|| K5==28)

if (K5==4|| K5==8|| K5==11|| K5==13|| K5==15|| K5==17|| K5==19|| K5==21||K5==22|| K5==24||K5==25||K5==26||K5==27||K5==27||K5==28|| K5==29)

if (K5==5|| K5==9|| K5==12|| K5==14||K5==15|| K5==18|| K5==20||K5==21|| K5==23||K5==24||K5==25||K5==26||K5==27|| K5==28|| K5==29)

Come posso ottenere un sistema automatico per Kn che mi gestisca gli n gruppi (es. da OK_1 a OK_10,... 20,... 30..)?
if(Kn==?) OK_n
quindi mi restituisce il numero tot di kn in funzione di OK_n e confronti secondo un ciclo for se presente la combinazione nei vari if :
if(for(i=0; i <Kn; i++)) :jam: :dh: :dh:

Grazie in anticipo per le risposte

Loading