0

ビンゴゲームを知らない人のために、次のように遊びます

1) ランダムに印刷された数字の NXN マトリックスがあるビンゴ カードを取得します。たとえば、5x5 マトリックスがある場合、最大数も 75 にすることができます。しかし、数の範囲は 1 から M とあらかじめ決められています。

2) 人が 1 から M までの数字をランダムに発声します。

3) 番号がカードに記載されている場合は、その番号をクロスします。

4)数字を交差させるプロセスが繰り返されます.行全体または列全体、または2つの対角線を横切った場合、最初のビンゴを獲得できます行、N 列、および 2 つの対角線。

今、私はそれのためのアルゴリズムを作成したいと思います.ユーザーは乱数を入力し、アルゴリズムはそれらを聞き、マトリックス内のその数を交差させます(すでに提供されています).ビンゴを取得するとすぐにそれを宣言します.可能な限り最良のアプローチは何ですか


カードの2次元行列を維持してみました

数字が発表されたらO(N×N)時間で検索し、見つかったら0にする。

0 にした後、対応する行と列がすべてゼロになっているかどうかを検索します。対角線上にある場合は、対角線も検索します。O(3N) 時間かかります。

より良いアプローチはありますか?

4

3 に答える 3