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

Задача по взаимной рекурсии

06.10.2022, 11:34. Показов 944. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сгенерировать все строки длины n из алфавита {0,1} в которых нет двух нулей подряд с помощью взаимной рекурсии.
Например, при n = 3 результатом будет {010, 011, 110, 101, 111}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2022, 11:34
Ответы с готовыми решениями:

Рекурсивно описать функцию, которая вычисляет число, получаемое приписыванием слева цифры 3 к десятичной записи числа
Рекурсивно описать функцию Head3(N), которая вычисляет число, получаемое приписыванием слева цифры 3 к десятичной записи целого...

задача с применением рекурсии
Дана монотонная последовательность, в которой каждое натуральное число k встречается ровно k раз: 1, 2, 2, 3, 3, 3, 4, 4, 4, 4,… По...

Задача со взаимной индунцией
здравствуйте. помогите решить задачу, пожалуйста 2.91, оба случая спасибо если можно, с решением

10
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
06.10.2022, 14:01
ДанилКакак, и в чем сложность?
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
06.10.2022, 14:39
Что такое взаимная рекурсия, чем отличатся от обычной?
0
1956 / 874 / 352
Регистрация: 05.09.2021
Сообщений: 1,387
06.10.2022, 14:45
Цитата Сообщение от dondublon Посмотреть сообщение
Что такое взаимная рекурсия, чем отличатся от обычной?
Это вроде когда функция А вызывает функцию Б, а та в свою очередь вызывает функцию А.
Примерно такая конструкция:
Python
1
2
3
4
5
6
7
def foo():
    bar()
    ...
    
def bar():
    foo()
    ...
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
06.10.2022, 15:04
anton78spb, а, ок. Ни разу не приходилось такое делать. Для данной задачи тоже не просматривается потребность.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
06.10.2022, 15:35
Простая рекурсия:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def task(n):
    if n==2:
        return ["01","10","11"]
    else:
        prev=task(n-1)
        res=[]
        for word in prev:
            n=len(word)
            left=""
            right=word
            for i in range(n):
                res.append(left+"1"+right)
                if len(left) == 0:
                    if right[0] != "0":
                        res.append("0"+right)
                elif right[0] != "0" and left[-1] != "0":
                    res.append(left+"0"+right)
                left=left+right[0]
                right=right[1:]
        return set(res)
        
print(task(5))
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
06.10.2022, 15:38
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Цитата Сообщение от Catstail Посмотреть сообщение
Простая рекурсия
Python
1
2
3
4
5
6
7
8
9
10
def f(n, s=''):
    if n == 0:
        print(s)
        return
    if not s or s[-1] != '0':
        f(n - 1, s + '0')
    f(n - 1, s + '1')
 
 
f(5)
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
06.10.2022, 15:42
eaa, да, утяжелил...
0
06.10.2022, 15:43

Не по теме:

Цитата Сообщение от Catstail Посмотреть сообщение
утяжелил
чуток есть такое)

0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38201 / 21133 / 4310
Регистрация: 12.02.2012
Сообщений: 34,740
Записей в блоге: 14
06.10.2022, 15:47
eaa, но Ваш код их просто печатает, а мой сохраняет в списке.
1
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
06.10.2022, 15:52
можно так:
Python
1
2
3
4
5
6
7
8
9
10
def f(n, s=''):
    if n == 0:
        yield  s
        return
    if not s or s[-1] != '0':
        yield from f(n - 1, s + '0')
    yield from f(n - 1, s + '1')
 
 
print(set(f(5)))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.10.2022, 15:52
Помогаю со студенческими работами здесь

Задача со взаимной индукцией
Исходные данные: R=100, XC=100, XL2=200, XL3=100, XH=50, U=200 Определить показание вольтметра Меня смущает отсутствие нагрузки на...

Задача по рекурсии
При вводе "5" должен же выдавать "9", что я делаю не так? program lab1; uses crt; var n,m: integer; function f (n:...

Задача по рекурсии
Здравствуйте, решаю такую вот задачу: Напишите рекурсивную функцию recursion, которая получает с помощью randomInt целое число от 1000...

Задача по рекурсии
Добрый день.В универе поставили задачу, с которой не могу справиться. Поэтому решил обратиться за помощью сюда. Уже юзал форум, темы...

Задача на использование рекурсии
Описать функцию с использованием рекурсии. Даны списки list1 и list2. Реализовать функцию, которая удаляет из list1 все элементы-списки,...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru