-4
私は組み合わせに問題があります。すべての組み合わせを検索6 number JAVA
は私が6番号から最後の番号をインクリメントし、最後の番号が1
50最後から二番目の増分がある場合、私はすべての順列を見つけ、このコードを持っている必要があります。しかし、私は組み合わせが欲しい。
すでにプログラムが生成されている場合は必要です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回動作するため、今、私は時間を無駄にする。)
ありがとう