1. Главная
  2. Библиотека
  3. Программирование
  4. В программе инициализируется двумерное игровое поле раз...
Разбор задачи

В программе инициализируется двумерное игровое поле размером N x N (N - натуральное число читается из входного потока), представленное в виде вложенного списка: = [[0] * N for i in range(N)] Требуется расставить на поле P случайным образом M = 10 единиц

  • Предмет: Программирование
  • Автор: Кэмп
  • #Основы алгоритмизации и программирования
  • #Структуры и алгоритмы обработки данных
В программе инициализируется двумерное игровое поле размером N x N (N - натуральное число читается из входного потока), представленное в виде вложенного списка: = [[0] * N for i in range(N)] Требуется расставить на поле P случайным образом M = 10 единиц

Условие:

В программе инициализируется двумерное игровое поле размером N x N (N - натуральное число читается из входного потока), представленное в виде вложенного списка:
\nP = [[0] * N for i in range(N)]
Требуется расставить на поле P случайным образом M = 10 единиц (целочисленных) так, чтобы они не соприкасались друг с другом (то есть, вокруг каждой единицы должны быть нули, либо граница поля).

Поле на экран выводить не нужно (вообще ничего не нужно выводить), только сформировать.

Решение:

Здравствуйте! Я готов помочь вам разобраться с этой задачей по размещению объектов на поле с условием не соприкосновения.

Это задача на комбинаторику и случайный выбор с ограничениями. Поскольку нам нужно разместить M=10M=10 единиц так, чтобы они не соприкасались, нам нужно убедиться, что после размещения единицы в ячейке (r,c)(r, c), все соседние ячейки (включая диагональные) остаются нулями.

Поскольку нам не нужно гарантировать, что размещение всегда возможно (хотя для N=10N=10 и M=10M=10 это вполне реально), мы будем использовать метод случайного выбора с проверкой условий.

1. Дано

  • Разм...

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какое условие должно быть выполнено для ячейки (r, c), чтобы в неё можно было безопасно поместить единицу, согласно логике решения задачи?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Выбери предмет