У меня проблема с комбинациями.Найти все комбинации 6 номер JAVA
мне нужно увеличивать номер последнего из 6 числа, и если последнее число 50 предпоследнего приращения на 1.
У меня есть этот код, найти все перестановки. Но мне нужны комбинации.
Мне нужно, если уже программа сгенерирует 1 2 3 4 5 6 никогда не генерирует комбинацию этого числа, так что 1 2 3 4 5 6 это то же самое, что и 6 5 4 3 2 1 и 6 1 2 3 4 5 ...
hladaj[N-2]++;
while(((hladaj[N-3]==hladaj[N-2])||(hladaj[N-2]==hladaj[N-4])||(hladaj[N-2]==hladaj[N-5])||(hladaj[N-2]==hladaj[N-6])||(hladaj[N-2]==hladaj[N-7]))){
hladaj[N-2]++;
}
if (hladaj[N-2]>MAXC) {
hladaj[N-2]=hladaj[N-2]-MAXC;
hladaj[N-3]++;
while(((hladaj[N-3]==hladaj[N-2])||(hladaj[N-2]==hladaj[N-4])||(hladaj[N-2]==hladaj[N-5])||(hladaj[N-2]==hladaj[N-6])||(hladaj[N-2]==hladaj[N-7]))){
hladaj[N-2]++;
}
while(((hladaj[N-3]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-4])||(hladaj[N-3]==hladaj[N-5])||(hladaj[N-3]==hladaj[N-6])||(hladaj[N-3]==hladaj[N-7]))){
hladaj[N-3]++;
}
if (hladaj[N-3]>MAXC) {
hladaj[N-3]=hladaj[N-3]-MAXC;
hladaj[N-4]++;
while(((hladaj[N-3]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-4])||(hladaj[N-3]==hladaj[N-5])||(hladaj[N-3]==hladaj[N-6])||(hladaj[N-3]==hladaj[N-7]))){
hladaj[N-3]++;
}
while(((hladaj[N-4]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-4])||(hladaj[N-4]==hladaj[N-5])||(hladaj[N-4]==hladaj[N-6])||(hladaj[N-4]==hladaj[N-7]))){
hladaj[N-4]++;
}
if (hladaj[N-4]>MAXC) {
hladaj[N-4]=hladaj[N-4]-MAXC;
hladaj[N-5]++;
while(((hladaj[N-4]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-4])||(hladaj[N-4]==hladaj[N-5])||(hladaj[N-4]==hladaj[N-6])||(hladaj[N-4]==hladaj[N-7]))){
hladaj[N-4]++;
}
while(((hladaj[N-5]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-5])||(hladaj[N-4]==hladaj[N-5])||(hladaj[N-5]==hladaj[N-6])||(hladaj[N-5]==hladaj[N-7]))){
hladaj[N-5]++;
}
if (hladaj[N-5]>MAXC) {
hladaj[N-5]=hladaj[N-5]-MAXC;
hladaj[N-6]++;
while(((hladaj[N-5]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-5])||(hladaj[N-4]==hladaj[N-5])||(hladaj[N-5]==hladaj[N-6])||(hladaj[N-5]==hladaj[N-7]))){
hladaj[N-5]++;
}
while(((hladaj[N-6]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-6])||(hladaj[N-4]==hladaj[N-6])||(hladaj[N-5]==hladaj[N-6])||(hladaj[N-6]==hladaj[N-7]))){
hladaj[N-6]++;
}
if (hladaj[N-6]>MAXC) {
hladaj[N-6]=hladaj[N-6]-MAXC;
hladaj[N-7]++;
while(((hladaj[N-6]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-6])||(hladaj[N-4]==hladaj[N-6])||(hladaj[N-5]==hladaj[N-6])||(hladaj[N-6]==hladaj[N-7]))){
hladaj[N-6]++;
}
while(((hladaj[N-7]==hladaj[N-2])||(hladaj[N-3]==hladaj[N-7])||(hladaj[N-4]==hladaj[N-7])||(hladaj[N-5]==hladaj[N-7])||(hladaj[N-6]==hladaj[N-7]))){
hladaj[N-7]++;
}
if (hladaj[N-7]>MAXC) {
hladaj[N-7]=MAXC;
return true;
}
}
}
}
}
Этот код генерируют 1 2 3 4 5 6, 6 5 4 3 2 1 Если мне нужно генерировать одну из комбинаций эти комбинации не генерируют снова.
Пожалуйста, у вас есть какие-то идеи изменить свой код или ...
(мне нужно все сгенерированного числа [6] обработано, но теперь я тратить время, потому что я работаю в 120 раз с одинаковыми номерами.)
СООБЩЕНИЕ