- Python-сообщество
- Уведомления
- #1 Янв. 10, 2018 08:54:28
- Задача «Разворот последовательности» без применения динамических структур данных
- #2 Янв. 10, 2018 09:46:20
- Задача «Разворот последовательности» без применения динамических структур данных
- Python-сообщество
- Уведомления
- #1 Янв. 10, 2018 08:54:28
- Задача «Разворот последовательности» без применения динамических структур данных
- #2 Янв. 10, 2018 09:46:20
- Задача «Разворот последовательности» без применения динамических структур данных
- Разворот последовательности. Рекурсия
- Решение
- Решение
- Разворот введённой последовательности
- Дана последовательность целых чисел заканчивающаяся числом 0 выведите эту последовательность
- B: Разворот последовательности
- C: Редкостное извращение
- D: Быстрое возведение в степень
- E: Алгоритм Евклида
- F: Ханойские башни
- G: Ремонт в Ханое
- H: Циклические башни
- I: Несправедливые башни
- J: Сортирующие башни
- K: Обменные башни
- L: Фишки
- M: Небоскреб
Python-сообщество
Уведомления
#1 Янв. 10, 2018 08:54:28
Задача «Разворот последовательности» без применения динамических структур данных
Всем Коничива! Условие задачи:
“Дана последовательность целых чисел (вводится с клавиатуры), заканчивающаяся числом 0. Выведите эту последовательность в обратном порядке. При решении этой задачи нельзя пользоваться массивами и прочими динамическими структурами данных.Рекурсия вам поможет.”
Да, я использовал динамическую структуру. Но, мне кажется, что структура алгоритма, с помощью которого поставленную задачу возможно решить, не может не содержать динамических структур. Принцип таков: для каждого нового значения необходимо место в памяти. Количество значений заранее не предопределено. Вопрос: как в такой ситуации, можно решить задачу без динамических структур? Кстати, рылся в интернете, так и не нашел толком, что такое ч точки зрения Python динамические и (не динамические) статические структуры данных. Проверил решение на тестах сайта Питон для начинающих (не помню точно адрес), все 5 возможных тестов проходит. В принципе для меня главное решить задачу в общем, а не изощряться с типами применяемых данных. Но на Курсере есть какой-то 6 тест, который мой алгоритм не проходит. Что он проверяет я не знаю. Может, в моем алгоритме есть ошибки? На малых числах все работает исправно.
Отредактировано kamikadze (Янв. 10, 2018 09:50:17)
#2 Янв. 10, 2018 09:46:20
Задача «Разворот последовательности» без применения динамических структур данных
kamikadze
Кстати, рылся в интернете, так и не нашел толком, что такое ч точки зрения Python динамические и (не динамические) статические структуры данных.
Источник
Python-сообщество
Уведомления
#1 Янв. 10, 2018 08:54:28
Задача «Разворот последовательности» без применения динамических структур данных
Всем Коничива! Условие задачи:
“Дана последовательность целых чисел (вводится с клавиатуры), заканчивающаяся числом 0. Выведите эту последовательность в обратном порядке. При решении этой задачи нельзя пользоваться массивами и прочими динамическими структурами данных.Рекурсия вам поможет.”
Да, я использовал динамическую структуру. Но, мне кажется, что структура алгоритма, с помощью которого поставленную задачу возможно решить, не может не содержать динамических структур. Принцип таков: для каждого нового значения необходимо место в памяти. Количество значений заранее не предопределено. Вопрос: как в такой ситуации, можно решить задачу без динамических структур? Кстати, рылся в интернете, так и не нашел толком, что такое ч точки зрения Python динамические и (не динамические) статические структуры данных. Проверил решение на тестах сайта Питон для начинающих (не помню точно адрес), все 5 возможных тестов проходит. В принципе для меня главное решить задачу в общем, а не изощряться с типами применяемых данных. Но на Курсере есть какой-то 6 тест, который мой алгоритм не проходит. Что он проверяет я не знаю. Может, в моем алгоритме есть ошибки? На малых числах все работает исправно.
Отредактировано kamikadze (Янв. 10, 2018 09:50:17)
#2 Янв. 10, 2018 09:46:20
Задача «Разворот последовательности» без применения динамических структур данных
kamikadze
Кстати, рылся в интернете, так и не нашел толком, что такое ч точки зрения Python динамические и (не динамические) статические структуры данных.
Источник
Разворот последовательности. Рекурсия
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Разворот последовательности
Дана последовательность целых чисел, заканчивающаяся числом 0. Выведите эту последовательность в.
Рекурсия, максимум последовательности
Дана последовательность натуральных чисел (одно число в строке), завершающаяся числом 0. Определите.
Рекурсия n-ый член последовательности
Написать функцию вы числящую рекурсивно n-ый член последовательности
Разворот последовательности
Помогите, пжл. Дается последовательность, к-я заканчивается нулем. Нужно вывести эту.
Решение
Решение
Что ж, стоило попытаться.
У меня осталось две мысли:
1. Задание всё же содержит какие-то дополнительные условия
2. Это всё лишний пробел в конце/отсутствие перехода на следующую строку
Ну чисто на случай если это всё-таки второе. Но если нет, то я не знаю чем вам помочь.
Разворот введённой последовательности
Дана последовательность целых чисел, заканчивающаяся числом 0. Выведите эту последовательность в.
Разворот последовательности чисел в Python, через рекурсию
Добрый день уважаемые форумчане! Стоит следующая задача.Дана последовательность целых чисел.
Рекурсия — n-й член последовательности
Условие задачи на картинки. Не могу разобраться с самим алгоритмом как ее сделать. С рекурсиями.
Сумма последовательности (рекурсия)
Добрый день. Помогите решить задачу с помощью рекурсии. Задача Дана последовательность чисел.
Рекурсия: вычисление n-го члена последовательности
Разработать рекурсивную функцию, возвращающую значение , для вычисления n-го члена.
Источник
Разворот введённой последовательности
Дана последовательность целых чисел, заканчивающаяся числом 0. Выведите эту последовательность в обратном порядке.
При решении этой задачи нельзя пользоваться массивами и прочими динамическими структурами данных.
Использовать рекурсию
Пример:
Ввод:
1
2
3
0
Вывод: 0 3 2 1
Как?
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Разворот последовательности
Помогите, пжл. Дается последовательность, к-я заканчивается нулем. Нужно вывести эту.
Разворот последовательности чисел в Python, через рекурсию
Добрый день уважаемые форумчане! Стоит следующая задача.Дана последовательность целых чисел.
Вывести слова введённой строки в столбик
Напишите программу, которая выводит слова введённой строки (части, разделённые символами пустого.
TyomaR, динамическая структура это только словари, списки, а вот кортежи это не динамическая структура.
Добавлено через 1 минуту
Вот тебе со строкой тоже самое.
Думаю строки ты не сможешь назвать структурой и уж более того динамической. Так что такой вариант правильный на 150%.
чего у вас нет да к тому же выведет все цифры даже 0. ладно 6 лет ждать долго.
Сумма положительных чисел из введённой последовательности
Доброго времени суток. Помогите решить задачи, у меня получается с ошибками. Организовать.
Найти количество чётных чисел во введённой последовательности
С клавиатуры вводится последовательность чисел до тех пор, пока не будет введено число 0. Требуется.
Определение числа положительных чисел во введённой с клавиатуры последовательности
Написать программу, которая определяет число положительных чисел во введёной с клавиатуры.
Программа, вычисляющая среднее арифметическое введённой с клавиатуры последовательности чисел
Написати програму, яка обчислює середнє арифметичне введеної з клавіатури послідовності чисел.
Источник
Дана последовательность целых чисел заканчивающаяся числом 0 выведите эту последовательность
Дана последовательность чисел, завершающаяся числом 0. Найдите сумму всех этих чисел, не используя цикл. В этой задаче нельзя пользоваться массивами, векторами и т.д. для сохранения всех введенных чисел.
Указание. Программа должна содержать функцию int Sum() , не принимающую параметров, которая возвращает (при помощи return ) значение суммы считанных со стандартного ввода чисел. Сама функция при этом результат не выводит на стандартный вывод, а возвращает его.
Ввод | Вывод |
---|
B: Разворот последовательности
Дана последовательность целых чисел, заканчивающаяся числом 0. Выведите эту последовательность в обратном порядке.
При решении этой задачи нельзя пользоваться массивами, векторами и прочими динамическими структурами данных. Нельзя также использовать строки для сохранения всех введенных чисел. Рекурсия вам поможет.
Ввод | Вывод |
---|
Указание. Программа должна содержать функцию void Reverse() , не принимающую параметров, которая считывает последовательность чисел при помощи функции input и выводящую эту же последовательность в обратном порядке на стандартный вывод, при помощи функции print , при этом функция не возвращает значения при помощи инструкции return .
C: Редкостное извращение
Решите предыдущую задачу без использования вспомогательной функции.
А что, main() не функция что-ли?
D: Быстрое возведение в степень
Возводить в степень можно гораздо быстрее, чем за \(n\) умножений! Для этого нужно воспользоваться следующими рекуррентными соотношениями:
\(a^n=a\cdot a^
Реализуйте алгоритм быстрого возведения в степень. Если вы все сделаете правильно, то сложность вашего алгоритма будет \(O(\log n)\).
Ввод | Вывод |
---|
E: Алгоритм Евклида
Для быстрого вычисления наибольшего общего делителя двух чисел используют . Он построен на следующем соотношении: \(НОД(a,b)=НОД(a\bmod b,b)\).
Реализуйте рекурсивный алгоритм Евклида в виде функции gcd(a, b) .
Ввод | Вывод |
---|
F: Ханойские башни
Головоломка “Ханойские башни” состоит из трех стержней, пронумерованных числами 1, 2, 3. На стержень 1 надета пирамидка из \(n\) дисков различного диаметра в порядке возрастания диаметра. Диски можно перекладывать с одного стержня на другой по одному, при этом диск нельзя класть на диск меньшего диаметра. Необходимо переложить всю пирамидку со стержня 1 на стержень 3 за минимальное число перекладываний.
Напишите программу, которая решает головоломку; для данного числа дисков n печатает последовательность перекладываний в формате a b c , где a — номер перекладываемого диска, b — номер стержня с которого снимается данный диск, c — номер стержня на который надевается данный диск.
Например, строка 1 2 3 означает перемещение диска номер 1 со стержня 2 на стержень 3. В одной строке печатается одна команда. Диски пронумерованы числами от 1 до n в порядке возрастания диаметров.
Программа должна вывести минимальный (по количеству произведенных операций) способ перекладывания пирамидки из данного числа дисков.
Указание: подумайте, как переложить пирамидку из одного диска? Из двух дисков? Из трех дисков? Из четырех дисков? Пусть мы научились перекладывать пирамидку из \(n\) дисков с произвольного стержня на любой другой, как переложить пирамидку из \(n+1\) диска, если можно пользоваться решением для \(n\) дисков.
Напишите функцию move (n, x, y) , которая печатает последовательнось перекладываний дисков для перемещения пирамидки высоты n со стержня номер x на стержень номер y .
Ввод | Вывод |
---|
G: Ремонт в Ханое
Постановлением ЮНЕСКО оригинал Ханойской башни был подвергнут реставрации. В связи с этим во время пользования головоломкой нельзя было перекладывать кольца с первого стержня сразу на третий и наоборот.
Решите головоломку с учетом этих ограничений. Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|
H: Циклические башни
На дорогах Ханоя было введено одностороннее круговое движение, поэтому теперь диск со стержня 1 можно перекладывать только на стержень 2, со стержня 2 на 3, а со стержня 3 на 1.
Решите головоломку с учетом этих ограничений. Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.
Ввод | Вывод |
---|
I: Несправедливые башни
В Ханое несправедливо запретили класть самый маленький диск (номер 1) на средний колышек (номер 2).
Решите головоломку с учетом этих ограничений. Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.
Ввод | Вывод |
---|
J: Сортирующие башни
Первоначально все диски лежат на стержне номер 1. Переместите диски с нечетными номерами на стержень номер 2, а с четными номерами — на стержень номер 3.
Вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000, при условии, что количество дисков не превосходит 10.
Ввод | Вывод |
---|
K: Обменные башни
Как и в предыдущих задачах, дано три стержня, на первом из которых надето \(n\) дисков различного размера. Необходимо их переместить на стержень 3 по следующим правилам:
Самый маленький диск (номер 1) можно в любой момент переложить на любой стержень. Перемещение диска номер 1 со стержня a на стержень b будем обозначать 1 a b .
Можно поменять два диска, лежащих на вершине двух стержней, если размеры этих дисков отличаются на 1. Например, если на вершине стержня с номером a лежит диск размером 5, а на вершине стержня с номером b лежит диск размером 4, то эти диски можно поменять местами. Такой обмен двух дисков будем обозначать 0 a b (указываются номера стержней, верхние диски которых обмениваются местами).
Для данного числа дисков \(n\), не превосходящего 10, найдите решение головоломки. вам не нужно находить минимальное решение, но количество совершенных перемещений не должно быть больше 200000.
Ввод | Вывод |
---|
L: Фишки
Дана полоска из клеток, пронумерованных от 1 до N слева направо. Разрешено снимать или ставить фишку на клетку с номером 1 или на клетку, следующую за самой левой из установленных фишек. Изначально полоска пуста. Нужно разместить фишки во всех клетках.
Программа получает на вход количество клеток в полоске \(N\) \((1\le N\le 10)\).
Программа должна вывести последовательность номеров клеток, с которыми совершается действие. Если фишка снимается, то номер клетки должен выводиться со знаком минус. Количество действий не должно превышать \(10^4\). Если существует несколько возможных решений задачи, то разрешается вывести любое.
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|
M: Небоскреб
В небоскребе \(n\) этажей. Известно, что если уронить стеклянный шарик с этажа номер \(p\), и шарик разобьется, то если уронить шарик с этажа номер \(p+1\), то он тоже разобьется. Также известно, что при броске с последнего этажа шарик всегда разбивается.
Вы хотите определить минимальный номер этажа, при падении с которого шарик разбивается. Для проведения экспериментов у вас есть два шарика. Вы можете разбить их все, но в результате вы должны абсолютно точно определить этот номер.
Определите, какого числа бросков достаточно, чтобы заведомо решить эту задачу.
Программа получает на вход количество этажей в небоскребе \(n\) и выводит наименьшее число бросков, при котором можно всегда решить задачу.
Тесты к этой задаче закрытые.
Ввод | Вывод |
---|
Комментарий к первому примеру. Нужно бросить шарик со 2-го этажа. Если он разобьется, то бросим второй шарик с 1-го этажа, а если не разобьется — то бросим шарик с 3-го этажа.
Источник