Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310

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

05.05.2019, 19:47. Показов 5113. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано шахматное поле n×n. На поле расположено m коней. Определить, какое количество клеток не заняты и не находятся под боем.
Мне показался такой код наиболее оптимальным:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
m = int(input('количество коней: '))
n = int(input('размер поля: '))
xs = [x for x in range(n)]
ys = [x for x in range(n)]
for i in range(m):
    x = int(input(f'координата x{i}: '))
    y = int(input(f'координата y{i}: '))
    if x in xs:
        xs.remove(x+2)
        xs.remove(x-2)
        xs.remove(x+1)
        xs.remove(x-1)
    if y in ys:
        xs.remove(y+2)
        xs.remove(y-2)
        xs.remove(y+1)
        xs.remove(y-1)
print(len(xs) + len(ys))
Но программе нет:

Помогите, пожалуйста, исправить. Заранее большое спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.05.2019, 19:47
Ответы с готовыми решениями:

Определить, какое количество клеток шахматного поля не заняты и не находятся под боем
Дано шахматное поле n×n. На поле расположено m ладей. Определить, какое количество клеток не заняты и не находятся под боем. Мое решение...

Определить, какое количество клеток шахматного поля не заняты и не находятся под боем
Дано шахматное поле n×n. На поле расположено m коней. Определить, какое количество клеток не заняты и не находятся под боем. Пример...

Определить, сколько клеток находится под боем шахматного коня
Прошу прощения за тему, теперь не могу исправить. http://acm.timus.ru/problem.aspx?space=1&num=1197 Задание на тимусе. Условие...

11
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.05.2019, 20:49
Лучший ответ Сообщение было отмечено catauggie как решение

Решение

catauggie, страшный костылище, но работает
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
def foo(f, h, v):
    nn = range(len(f))
    if h - 2 in nn and v + 1 in nn:
        f[h - 2][v + 1] = 1
    if h - 2 in nn and v - 1 in nn:
        f[h - 2][v - 1] = 1
    if h - 1 in nn and v - 2 in nn:
        f[h - 1][v - 2] = 1
    if h + 1 in nn and v - 2 in nn:
        f[h + 1][v - 2] = 1
    if h + 2 in nn and v - 1 in nn:
        f[h + 2][v - 1] = 1
    if h + 2 in nn and v + 1 in nn:
        f[h + 2][v + 1] = 1
    if h - 1 in nn and v + 2 in nn:
        f[h - 1][v + 2] = 1
    if h + 1 in nn and v + 2 in nn:
        f[h + 1][v + 2] = 1
 
 
n = int(input('Field size: '))
m = int(input('Horses amount: '))
field = [[0] * n for i in range(n)]
for i in range(m):
    x = int(input(f'x{i}: '))
    y = int(input(f'y{i}: '))
    field[x][y] = 1
    foo(field, x, y)
 
print(n * n - sum([sum(row) for row in field]))
1
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
05.05.2019, 20:59  [ТС]
Вопрос:
Цитата Сообщение от iSmokeJC Посмотреть сообщение
def foo(f, h, v): nn = range(len(f))
- это функция, которая при всяком расположении коня высчитывает к-во клеток под боем? Что обозначают переменные h, v, f?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.05.2019, 21:04
catauggie, эта функция проверяет, "помещаются" ли ходы данного коня в поле, и если да, пишут в эту клетку единицу.
h - горизонталь(х - координата), v - вертикаль(у - координата), f - field - собственно массив, поле

Потом в самом конце считаем сколько единиц в массиве (занятых клеток или под ударом), вычитаем из общего числа клеток, получаем количество свободных...
1
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
05.05.2019, 21:05  [ТС]
а nn это длина поля?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.05.2019, 21:12
Ну да, длина/ширина... Квадрат ведь

Добавлено через 4 минуты
Цитата Сообщение от catauggie Посмотреть сообщение
Что обозначают переменные
Я еще не совсем в курсе, как в питоне обстоят дела с областью видимости, поэтому переобозвал на всякий случай
1
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
05.05.2019, 21:14  [ТС]
а foo -что-то вроде любого названия функции?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
05.05.2019, 21:15
Да, стандартные ничего не значащие имена - foo, bar, baz.
0
24 / 5 / 0
Регистрация: 20.09.2018
Сообщений: 310
05.05.2019, 21:22  [ТС]
Спасибо за ответ
1
43 / 35 / 10
Регистрация: 16.03.2018
Сообщений: 353
06.05.2019, 16:01
Цитата Сообщение от iSmokeJC Посмотреть сообщение
страшный костылище, но работает
В чем проблема ?
Миниатюры
Определить, какое количество клеток шахматного поля не заняты и не находятся под боем коней  
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
06.05.2019, 17:11
Цитата Сообщение от Gasratov Посмотреть сообщение
В чем проблема ?
В версии питона. f-строки появились в Python 3.6
Замени

Python
1
2
x = int(input(f'x{i}: '))
y = int(input(f'y{i}: '))
на
Python
1
2
x = int(input('x{i}: '.format(i=i)))
y = int(input('y{i}: '.format(i=i)))
1
 Аватар для Vigi
641 / 481 / 179
Регистрация: 28.05.2012
Сообщений: 1,419
06.05.2019, 18:21
можно просто:
Python
1
2
x = int(input('x{}: '.format(i)))
y = int(input('y{}: '.format(i)))
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.05.2019, 18:21
Помогаю со студенческими работами здесь

Сколько клеток находится под боем шахматного коня
есть задача. http://acm.timus.ru/problem.aspx?space=1&num=1197 написал решение: #include <iostream> using namespace std; int...

Определить количество пустых полей доски, которые находятся под боем
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся...

Определить количество пустых полей доски, которые находятся под боем
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся...

Определить количество пустых полей шахматной доски, которые находятся под боем
На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски, которые находятся...

Математика: определить количество пустых полей доски, которые находятся под боем
Нужна помощь! На шахматной доске 8х8 расположены три фигуры: ферзь, ладья и конь. Требуется определить количество пустых полей доски,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru