Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/268: Рейтинг темы: голосов - 268, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 29.10.2019
Сообщений: 12

Шашку - в дамки

02.12.2019, 19:29. Показов 55262. Ответов 15

Студворк — интернет-сервис помощи студентам
Напишите, пожалуйста, решение задачи на языке пайтон
Данные вводятся с клавиатуры или из файла input.txt, выводятся на экран или в файл output.txt. Первые тесты не всегда совпадают с примерами из условия.
На шахматной доске (8x8) стоит одна белая шашка. Сколькими способами она может пройти в дамки?

(Белая шашка ходит по диагонали. на одну клетку вверх-вправо или вверх-влево. Шашка проходит в дамки, если попадает на верхнюю горизонталь.)

Входные данные
Вводятся два числа от 1 до 8: номер номер столбца (считая слева) и строки (считая снизу), где изначально стоит шашка.

Выходные данные
Вывести одно число - количество путей в дамки.

Примеры

входные данные
3 7
выходные данные
2
входные данные
1 8
выходные данные
1
входные данные
3 6
выходные данные
4
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.12.2019, 19:29
Ответы с готовыми решениями:

Шашку — в дамки
Шашку — в дамки На шахматной доске (8×8) стоит одна белая шашка. Сколькими способами она может пройти в дамки? (Белая шашка ходит по...

Шашку в дамки
Шашку - в дамки. На шахматной доске (8×8) стоит одна белая шашка. Сколькими способами она может пройти в дамки? (Белая шашка...

Шашку — в дамки
Шашку — в дамки На шахматной доске (8×8) стоит одна белая шашка. Сколькими способами она может пройти в дамки? (Белая шашка ходит по...

15
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
03.12.2019, 10:57
Натали5, Если я все правильно понял. Протестировал, вроде нормально. С файлом сами сделаете,там не сложно
Python
1
2
3
4
5
6
7
8
9
10
11
12
def Ssposob(x,y,N):
    if y==8:
        return N
    if x==1:
        return Ssposob(2, y+1, N)
    if x==8:
        Ssposob(7, y+1, N)
    return Ssposob(x+1, y+1, N) + Ssposob(x-1, y+1, N)
print("Введите x и y")
x=int(input("x"))
y=int(input("y"))
print(Ssposob(x,y,1))
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
03.12.2019, 13:02
Цитата Сообщение от Mindfure Посмотреть сообщение
Протестировал, вроде нормально
(1, 1): ответ 35 правильно.
(8, 1): ответ 128 ?
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
03.12.2019, 13:58
eaa,
(8, 1): ответ 128 ?
Да
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
03.12.2019, 14:05
Mindfure, а чем отличается (1, 1) от (8, 1) ? это симметричные позиции. И ответы должны быть одинаковые.
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
03.12.2019, 14:15
eaa, Да, действительно

Добавлено через 21 секунду
Исправленный вариант
Python
1
2
3
4
5
6
7
8
9
10
11
12
def Ssposob(x,y,N):
    if y==8:
        return N
    if x==1:
        return Ssposob(2, y+1, N)
    if x==8:
        return Ssposob(7, y+1, N)
    return (Ssposob(x+1, y+1, N) + Ssposob(x-1, y+1, N))
print("Введите x и y")
x=int(input("x"))
y=int(input("y"))
print(Ssposob(x,y,1))
2
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
03.12.2019, 14:23
Mindfure, (8,8) как нужно сходить чтобы в дамки пройти?
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
03.12.2019, 14:45
eaa, Предлагаете вверх-вниз ходить?

Добавлено через 3 минуты
eaa,На этой позиции она уже в дамке
0
0 / 0 / 0
Регистрация: 29.10.2019
Сообщений: 12
03.12.2019, 18:41  [ТС]
Всем спасибо за решения!

Добавлено через 25 минут
Всем спасибо за решения!
Подскажите, пожалуйста, что показывает в функции число N?
При y = 8 шашка в дамках, поэтому мы возвращаем значение N=1?
Объясните, пожалуйста, эти шаги:
def Ssposob(x,y,N):
if y==8:
return N
if x==1:
return Ssposob(2, y+1, N)
if x==8:
return Ssposob(7, y+1, N)
return (Ssposob(x+1, y+1, N) + Ssposob(x-1, y+1, N))

x,y=map(int,input().split())
print(Ssposob(x,y,1))

Добавлено через 3 минуты
Ssposob (x + 1, y + 1, N) + Ssposob (x-1, y + 1, N)
Если (вправо и вверх) и (влево и вверх), то это считает шаги 1 + 1
0
18 / 13 / 5
Регистрация: 25.09.2016
Сообщений: 324
03.12.2019, 18:46
Первый if когда стоим в дамке
Следующие 2 по бокам
И движемся рекурсивно влево вправо пока не дойдём до 8.А вообще отладкам в помощь
1
1 / 1 / 0
Регистрация: 29.06.2020
Сообщений: 19
21.07.2020, 23:18
А без рекурсии можно?
0
0 / 0 / 0
Регистрация: 30.08.2020
Сообщений: 1
30.08.2020, 20:44

Вот рекурсивное - сам сделал:
Python
1
2
3
4
5
6
7
8
9
10
11
import sys
sys.setrecursionlimit(10000000)
def damki(p1,p2):
  if(p2==8):
    return 1
  else:
    if(p1==1): return damki(2,p2-1)
    elif(p1==8): return damki(7,p2-1)
    else: return damki(p1-1,p2-1)+damki(p1+1,p2-1)
n1,n2=map(int,input().split())
print(damki(n1,n2))
Но вот только RecursionMaximumError
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8665 / 4502 / 1670
Регистрация: 01.02.2015
Сообщений: 13,931
Записей в блоге: 13
30.08.2020, 21:25
Я так понимаю, что это реализация обхода в глубину (DFS).
В строке 9 вы почему-то опускаете шашку вниз, к горизонтали номер 1, хотя по смыслу строки 4 нужно поднимать шашку вверх.

Добавлено через 1 минуту
Да и в строках 7 и 8 та же ошибка.
0
Эксперт Python
8851 / 4502 / 1864
Регистрация: 27.03.2020
Сообщений: 7,317
30.08.2020, 21:44
р2-1 ошибка - строки увеличиваются - р2+1
0
5520 / 2873 / 571
Регистрация: 07.11.2019
Сообщений: 4,767
31.08.2020, 06:09
С точки зрения обчных шашек разница между (1,1) и (8, 1) есть и существенная. На первой позиции шашка может находиться, на второй нет, т.к. это белая клетка.
0
4 / 4 / 0
Регистрация: 06.05.2021
Сообщений: 8
01.12.2021, 02:26
решение втупую:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
m,n = map(int,input().split())
n-=1
m-=1
arr=[[0]*8 for i in range(8)]
arr[n][m] = 1;
for j in range(n + 1,8):
    for i in range(((n+m+j)%2),8,2):
        if (-1 < j - 1 and i + 1 < 8): arr[j][i] += arr[j - 1][i + 1];
        if (-1 < j - 1 and -1 < i - 1): arr[j][i] += arr[j - 1][i - 1];
res = 0
for i in range(8):
    res += arr[7][i];
 
print(res)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.12.2021, 02:26
Помогаю со студенческими работами здесь

Шашку - в дамки
доброго времени суток, участники форума!!! :) Прошу Вас помочь мне... Программа выдаёт ошибку в процессе выполнения... (это курс...

Шашку - в дамки
Доброго времени суток! Решаю задачку, вот условие: На шахматной доске (8×8) стоит одна белая шашка. Сколькими способами она может...

Шашку — в дамки
Шашку — в дамки На шахматной доске (8×8) стоит одна белая шашка. Сколькими способами она может пройти в дамки? (Белая шашка ходит по...

Шашку — в дамки
На шахматной доске (8×8) стоит одна белая шашка. Сколькими способами она может пройти в дамки? (Белая шашка ходит по диагонали. на...

Шашку в дамки
Всем доброго времени суток ,помогите пожалуйста решить задачу или найти ошибки. На шахматной доске (8×8) стоит одна белая шашка....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru