LoginSignup
4
3

More than 3 years have passed since last update.

プログラミング問題「4クイーン方陣」

Last updated at Posted at 2019-10-10
5 7 11 13
101 103 107 109
191 193 197 199
821 823 827 829

上の4*4正方行列は、互いに行列が異なる、4つのマスのどの合計値も、1134となる。
例:
5+103+197+829=1134
101+7+827+199=1134

「互いに行列が異なる、4つのマスのどの合計値も、同一の値となる」計算が成立する4次正方行列を、本問では「4クイーン方陣」と呼ぶ。

  1. 16個の数値を引数にとり、4クイーン方陣であるかどうかを判定するメソッドisFourQueensSquare(int v1,int v2...v16):booleanを作成せよ。メソッドは、4クイーン方陣であればtrueを返し、4クイーン方陣でなければfalseを返すものとする。
  2. 4*4の配列を引数にとり、4クイーン方陣であるかどうかを判定するメソッドisFourQueensSquare(int v[][]):booleanを作成せよ。
  3. 互いに異なる16個の素数からなる4クイーン方陣を生成するメソッドcreateFourQueensSquare(int min):int[][]を作成せよ。ここで、minは、4クイーン方陣を構成する素数の最小値を指定する値である。(min <= 素数の最小値)

おまけ。
4. 互いに異なる16個の素数からなる4クイーン方陣は無限に存在するか。証明せよ。

本来は、子供向け算数クイズだったらしいのですが、あえて新人研修のプログラミング問題っぽくしてみました。個人的な興味で「16個の数が全て違う素数」という縛りを入れたら思いついたのが上の方陣です。4つ子素数で構成しました。これより16マスの合計値が小さい素数4クイーン方陣を考えるとかすると、面白いかもしれません。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3