Рекурсия: как ею пользоваться

Домашнее задание

  1. {i} Прочитать о рекурсии в Википедии

  2. Составить программу для вычисления суммы: 2! + 4! + 6! + ... + п!
    • Рекурсивную
    • Нерекурсивную
      • <!> Эффективно работающую на относительно больших числах, например, n==10000

  3. Решить-таки задачу о сортировке строк в файле с помощью сортировки слиянием

    • «Лобовой» вариант (отдельный файл на каждую упорядоченную последовательность строк): 2012-12-14.joinsort.py

    • Вариант с созданием только двух временных файлов: joinsort.py

    • Генератор тестового файла: 2012-12-14.joinsort.gen.py

  4. (MCCME) Радиолюбитель Петя решил собрать детекторный приемник. Для этого ему понадобился конденсатор емкостью C мкФ. В распоряжении Пети есть набор из n конденсаторов, емкости которых равны c1, c2, ..., cn, соответственно. Петя помнит, как вычисляется емкость параллельного соединения двух конденсаторов (Cnew = C1 + C2) и последовательного соединения двух конденсаторов (Cnew = (C1*C2)/(C1+C2)). Петя хочет спаять некоторую последовательно-параллельную схему из имеющегося набора конденсаторов, такую, что ее емкость ближе всего к искомой (то есть абсолютная величина разности значений минимальна). Разумеется, Петя не обязан использовать для изготовления схемы все конденсаторы. (Напомним определение последовательно-параллельной схемы. Схема, составленная из одного конденсатора, – последовательно-параллельная схема. Любая схема, полученная последовательным соединением двух последовательно-параллельных схем, – последовательно-параллельная, а также любая схема, полученная параллельным соединением двух последовательно-параллельных схем, – последовательно-параллельная).

    • Формат входных данных: В первой строке входных данных содержатся числа n и C. Во второй строке задается последовательность емкостей имеющихся в наличии конденсаторов с1, с2, ..., сn. Значения всех емкостей – вещественные числа. Для всех наборов входных данных n < 7.

    • Формат выходных данных: Выведите минимально отличающуюся от C емкость последовательно-параллельной схемы из имеющихся конденсаторов. Результат выводите с шестью знаками после запятой.

    • Вот интересно, почему у авторов эта задача называется «Резисторы»? -- FrBrGeorge 2012-12-22 13:16:15

    • 2012-12-14.yomkosti.py

    • (генератор тестовых данных 2012-12-14.yomkosti.gen.py

Условные обозначения


CategoryClass CategoryVmsh

LecturesVMSH/Python/2012-12-14 (last edited 2013-05-17 11:12:12 by FrBrGeorge)