Вопрос по информатике:
Перестановкой длины n называется последовательность из n чисел, в которой каждое из чисел от
1 до n встречается ровно 1 раз. Например, (3, 4, 5, 1, 2) и (1, 2) — перестановки, а (1, 4, 3) и (2, 1, 3, 2)
— нет.
Назовем перестановку хитрой, если для любых двух соседних чисел в перестановке разница
между ними больше или равна минимальному из них. Например, перестановка
(3, 1, 2, 4)
является хитрой, поскольку |3 − 1| ⩾ min(3, 1), |1 − 2| ⩾ min(1, 2) и |2 − 4| ⩾ min(2, 4).
Дано число n, найдите хитрую перестановку длины n.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 14.04.2017 19:05
- Информатика
- remove_red_eye 14379
- thumb_up 33
Ответы и объяснения 1
Легко видеть, что перестановка вида (N, N - 2, N - 4, ..., 2, 1, 3, 5, 7, ..., N - 1) для четного N и (N - 1, N - 3, N - 5, ..., 2, 1, 3, 5, 7, ..., N) для нечетного N - хитрые (в каждой перестановке сначала выписаны все четные числа в обратном порядке, а потом все нечётные в обычном).
Код на питоне, генерирующий такую перестановку:
N = int(input())
print(*([x for x in range((N//2)*2, 0, -2)]+[x for x in range(1, N, 2)]))
- 15.04.2017 16:05
- thumb_up 42
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.