- ベストアンサー
タテヨコで数字の被らない二次元配列
23541 32415 14352 45123 51234 のように、タテヨコで数字の被らないN×Nの二次元配列を作成するためには、 どのようなアルゴリズムを考えればよいでしょうか? またこのような配列の名称はありますか? どなたかお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「ラテン方陣」または「ラテン方格」でググってください。
その他の回答 (2)
- bakayarou_
- ベストアンサー率23% (32/136)
回答No.3
それって数独?
質問者
お礼
数独にも発展させてみたいですが、今のところ別のパズルゲームを作成しようとしています。
- ymmasayan
- ベストアンサー率30% (2593/8599)
回答No.1
名前は知りませんが。 単に縦横被らないだけでいいなら、1文字づつずらせばいいです。 23541→35412→54123→41235→12354 逆方向でもいいですね。 余談ですが「8クイーン」と言うのが有ります。 チェスの盤を使って8個のクイーンを8×8の上で 縦横斜めに被らないように並べると言う遊び(パズル)です。 これを解くアルゴリズムを考えるのも結構面白いですよ。
質問者
お礼
ymmasayanさん 回答ありがとうございます! 色々な配列を作りたいので、もっとパターンが欲しいです。 8クイーン 面白そうです。 つまり全てのクイーンは他のクイーンを取れないということですね。 最終的に、全てのクイーンがそれぞれどこに動いても関係が崩れる、ようになるかが気になりますね。
お礼
どんなラテン方格も行、または列を交換することで標準形にすることができる。 ということは、 適当なラテン方格を作り、ランダムに行や列を交換していけば全てのパターンを作れるという事ですよね?