Алгоритм реализации игры БИНГО ⇐ JAVA
Алгоритм реализации игры БИНГО
Для тех, кто не знаком с игрой БИНГО, в нее играют следующим образом
1)Вы получаете карту БИНГО, в которой случайно напечатана матрица чисел NXN. Числа уникальны. Максимальное напечатанное число может быть больше, чем N^2. например если у вас матрица 5x5, то максимальное число также может составлять 75. Но диапазон чисел заранее определен, скажем, от 1 до M.
2)Человек произносит числа случайным образом в диапазоне от 1 до M.
3)Если номер есть на вашей карте, вы его зачеркиваете.
4)Процесс пересечения чисел повторяется. Когда вы пересекли полную строку, полный столбец или две диагонали, вы получаете свое первое бинго. Игра все еще продолжается, поскольку общее количество возможных БИНГО составляет N+N+2 для N строк, N столбцов и 2 диагоналей.
Теперь я хочу создать для него алгоритм. Пользователь будет вводить случайные числа, а алгоритм услышит их и перечеркнет свои числа в матрице (уже предоставленной). Как только он получит БИНГО, он объявит об этом. Что такое наилучший возможный подход
Я попробовал это как сохранение двумерной матрицы для карты
Когда объявляется число, я ищу его за время O(NxN). Когда я его нахожу, я присваиваю ему значение 0.
После того, как значение равно 0, я проверяю, есть ли теперь все нули в соответствующей строке и столбце. Если оно было на диагонали, я также ищу диагональ. Это занимает время O(3N).
Есть ли лучший подход?
Для тех, кто не знаком с игрой БИНГО, в нее играют следующим образом
1)Вы получаете карту БИНГО, в которой случайно напечатана матрица чисел NXN. Числа уникальны. Максимальное напечатанное число может быть больше, чем N^2. например если у вас матрица 5x5, то максимальное число также может составлять 75. Но диапазон чисел заранее определен, скажем, от 1 до M.
2)Человек произносит числа случайным образом в диапазоне от 1 до M.
3)Если номер есть на вашей карте, вы его зачеркиваете.
4)Процесс пересечения чисел повторяется. Когда вы пересекли полную строку, полный столбец или две диагонали, вы получаете свое первое бинго. Игра все еще продолжается, поскольку общее количество возможных БИНГО составляет N+N+2 для N строк, N столбцов и 2 диагоналей.
Теперь я хочу создать для него алгоритм. Пользователь будет вводить случайные числа, а алгоритм услышит их и перечеркнет свои числа в матрице (уже предоставленной). Как только он получит БИНГО, он объявит об этом. Что такое наилучший возможный подход
Я попробовал это как сохранение двумерной матрицы для карты
Когда объявляется число, я ищу его за время O(NxN). Когда я его нахожу, я присваиваю ему значение 0.
После того, как значение равно 0, я проверяю, есть ли теперь все нули в соответствующей строке и столбце. Если оно было на диагонали, я также ищу диагональ. Это занимает время O(3N).
Есть ли лучший подход?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение