Форум программистов, компьютерный форум, киберфорум
Наши страницы
Python
Войти
Регистрация
Восстановить пароль
 
Олив
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 20
#1

Задача 5: свитер для Бориса - Python

22.10.2015, 11:48. Просмотров 246. Ответов 2
Метки нет (Все метки)

Всего в серии постов 5 задач, буду благодарна если мне напишут хотя бы одну (нужны все 5) - 11 класс, нужно сдать завтра

5) Программист Борис хочет купить себе свитер. Разумеется, с оленями. После долгого изучения различный вариантов, он понял, что идеальный свитер должен содержать n рядов оленей, где ряды раскрашены в белый, серый или голубой цвет. Причём, ряды, находящиеся по соседству, должный быть разных цветов, а ряд серого цвета должен находиться между белым и голубым (то есть либо ряд выше должен быть белым, а ряд ниже — голубым, либо наоборот). В какой-то момент Борису стало интересно, сколько различных идеальных свитеров существует. Поскольку скоро дедлайн по одному из его проектов, у него нет времени, чтобы посчитать самому. Поэтому он просит вас написать программу, которая посчитает это количество за него.

http://www.cyberforum.ru/pascal/thread1053942.html
Формат входных данных
В единственной строке расположено одно число n — количество рядов оленей на идеальном свитере (1 <= n <= 60).

Формат выходных данных
Выведите количество идеальных свитеров.

Буду очееень благодарна решившему)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2015, 11:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Задача 5: свитер для Бориса (Python):

По скольким номерами (максимально) придется Андрею позвонить, разыскивая Бориса?
Андрей хочет позвонить Борису. Он помнит, что номер телефона - цифровыми число,...

Первая смешанная задача для волнового уравнения на отрезке (задача о колебаниях ограниченной струны) методом Фурье
Решить первую смешанную задачу для волнового уравнения на отрезке (задача о...

Реальная задача для реального проекта для желающих покодить
Привет:) Попросили сделать парсер сайта по-дружески, но у меня реально...

Кто понимает теорию графов? Для вас может эта задача разминка для мозга
Не понимаю как понять это.. Удалил вложение

задача "Построить систему классов для описания Прямоугольника" для курсовой
Нужно решить задачу для курсовой в С++ через неделю мне её сдавать надо а я в...

2
Marinero
Модератор
Эксперт NIX
1964 / 1633 / 556
Регистрация: 02.03.2015
Сообщений: 5,325
22.10.2015, 14:16 #2
Лучший ответ Сообщение было отмечено Олив как решение

Решение

Как можно упустить задачу про свитер с оленями? Если принять что свитер без серого ряда тоже идеальный, то
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from itertools import permutations as prmt
 
lines = int(input())
ideal = 0
 
for variant in set(prmt('WGB' * (lines // 3 + 1), lines)):
    lines_set = ''.join(variant)
    if not ('WW'  in lines_set or 
            'BB'  in lines_set or
            'GG'  in lines_set or
            'WGW' in lines_set or
            'BGB' in lines_set or
            variant[0]  == 'G' or
            variant[-1] == 'G' ):
        ideal += 1
print(ideal)
Или чуть красивее:
Python
1
2
3
4
5
6
7
8
import itertools
import re
 
lines = int(input())
ideal = 0
 
check = re.template('WGW|BGB|BB|WW|GG|^G|G$')
print(sum(1 for i in set(itertools.permutations('WGB' * (lines // 3 + 1), lines)) if not re.search(check, ''.join(i))))
0
Олив
0 / 0 / 0
Регистрация: 22.10.2015
Сообщений: 20
22.10.2015, 15:16  [ТС] #3
Sergey_B, 5 по времени занимает больше 1 секунды)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2015, 15:16
Привет! Вот еще темы с решениями:

Задача для новичков
Выдайте номера поставщиков, которые поставляют, по крайней мере, одну деталь,...

Задача Коши для ДУ
Ребзя, прошу помочь. Будьте добры и поймите студента, с MathCad'ом вообще не...

Задача для Excel
Есть итоговая смета, в которой видны все статьи затрат. Так как объекты на...

Задача для новичков
Изменить программу, чтобы выводился список студен*тов: а) имеющих средний балл...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru