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

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

05.05.2019, 19:47. Показов 5059. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru