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

Хаотические разбиения

24.10.2023, 22:29. Показов 492. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Рассмотрим все представления числа n в виде суммы различных целых возрастающих слагаемых: n = a1 + a2 + ... + ak; (a1 < a2 < ... < ak)
Будем называть такое разбиение хаотичным, если для него выполнено следующее условие: для любых трёх подряд идущих слагаемых среднее не равно среднему арифметическому крайних. Иначе говоря, для всех i от 1 до k - 2 выполнено
ai + 1 ≠ (ai + ai+2) / 2
Задано число n. Выведите все его хаотические разбиения на слагаемые.
=========================
Входные данные:
на вход подается n (1 <= n <= 80)
==========================
Выведите данные:
Выведите все хаотические разбиения на слагаемые числа n. Разбиения можно выводить в любом порядке. Выводите слагаемые в каждом разбиении, разделяя их знаком "+" без пробелов.
=========================
Пример:
Ввод:
9
Вывод:
1+2+6
1+8
2+7
3+6
4+5
9
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.10.2023, 22:29
Ответы с готовыми решениями:

Хаотические разбиения
Рассмотрим все представления числа n в виде суммы различных целых возрастающих слагаемых: n = a1 + a2 + ... + ak; (a1 &lt; a2 &lt; ... &lt;...

Алгоритм разбиения массива длины N на k подмассивов
Напишите алгоритм разбиения массива длины N на k подмассивов так, чтобы размер самого длинного и самого короткого подмассива отличалась не...

Вывести через пробел три натуральных числа — площади каждого из участков после разбиения
Фермер владеет участком земли в форме прямоугольника с длинами сторон aa и bb. Недавно фермер понял, что может разбить свой участок на три...

3
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
25.10.2023, 09:49
Red white socks,
1
 Аватар для igorrr37
2895 / 2042 / 992
Регистрация: 21.12.2010
Сообщений: 3,791
Записей в блоге: 9
26.10.2023, 01:10
для небольших чисел
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
vres = []
 
def f(rem):
    if rem == 0:
        ii = 1
        for i in range(len(vres) - 2):
            if vres[i + 1] * 2 == vres[i] + vres[i + 2]:
                ii = 0
                break
        if len(vres) <= 2 or ii == 1:
            for val in vres:
                print(val, end=" ")
            print()
    else:
        for slag in range(1 if len(vres) == 0 else vres[-1] + 1, rem + 1):
            vres.append(slag)
            f(rem - slag)
            vres.pop()
 
f(9)
2
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
26.10.2023, 13:47
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def foo(n, path=[], pos=0):
    if len(path) > 2:
        if path[-1] == path[-2] * 2 - path[-3]:
            return
    if n == 0:
        print(*path, sep='+')
    else:
        for i in range(1, n + 1):
            if i > pos:
                foo(n - i, path + [i], i)
 
 
foo(int(input()))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.10.2023, 13:47
Помогаю со студенческими работами здесь

Посчитать, какое минимальное количество сторонников надо иметь партии для заданного разбиения на группы?
В одном государстве произошла реформа избирательной системы. С момента ее введения все избиратели государства делятся на К., возможно не...

Разбиение списка на два списка по указанному порядковому номеру элемента для разбиения
Реализовать функцию, выполняющую операции над списками – заданную по варианту и печать списка на экран. Разбиение списка на два списка по...

Разбиения на различные множители
Дано натуральное число N. Требуется найти число способов представить его в виде произведения попарно различных множителей больших 1 ...

Алгоритм разбиения средней точкой
Всем привет. Ткните носом в ошибку... Вообщем алгоритм отсечения от отрезка, при отображение в прямоугольнике. Вот код: LEFT = 1 ...

Найти НОК 3-х чисел, при этом используя метод разбиения на простые множители
Необходимо найти НОК 3-х чисел, при этом используя метод разбиения на простые множители. Написал 3 функции, которые разбивают число на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
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
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru