9個の箱に1~9までの重複しない9個のボールを入れて全通りを試すプログラム
Posted: 2013年4月06日(土) 10:48
A,B,・・・I までの9個の箱があり、1,2,・・・9までの9個のボールがあります。
箱A~箱Iまでの箱に1個ずつボールを入れる全通りのプログラムを作成したいです。
int balls[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int boxes[9] = {A, B, C, D, E, F, G, H, I};
for(p = 1; p <= 9; p++) {
for(q = 1; q <= 9; q++) {
・・・
for(x = 1; x <= 9; x++) {
Into_Box(balls[p]をboxes[1]に入れる, balls[q]をboxes[2]に入れる、 ・・・);
}
}
}
(配列は1から始まるとして考えています。)
これだと、全部の箱に1が入るパターンから全部の箱に9が入るパターン 9^9乗となってしまいます。
9!通りにするにはどうしたらいいのでしょうか?
箱A~箱Iまでの箱に1個ずつボールを入れる全通りのプログラムを作成したいです。
int balls[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int boxes[9] = {A, B, C, D, E, F, G, H, I};
for(p = 1; p <= 9; p++) {
for(q = 1; q <= 9; q++) {
・・・
for(x = 1; x <= 9; x++) {
Into_Box(balls[p]をboxes[1]に入れる, balls[q]をboxes[2]に入れる、 ・・・);
}
}
}
(配列は1から始まるとして考えています。)
これだと、全部の箱に1が入るパターンから全部の箱に9が入るパターン 9^9乗となってしまいます。
9!通りにするにはどうしたらいいのでしょうか?