Различия между версиями 2 и 3
Версия 2 от 2014-11-14 00:24:19
Размер: 1877
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2014-11-19 09:06:05
Размер: 2223
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 6: Строка 6:
/!\ '''TODO''' — разгрести, упорядочить и поделить по урокам
Строка 8: Строка 7:
  * нулевой объект и значение `or` и `and`
  * Рекурсия (только если успеем все три темы)
  * Разбор Д/З
  * Создание собственной программы
   * {o} Исполняемые объекты (программы и сценарии):
    * Переменные в shell; `PATH`; `.bash_profile: PATH=$PATH:$HOME/bin`
    * `ls -l`, `chmod +x`
    * shebang
  * Рекурсия
Строка 13: Строка 17:
  * Создание собственной программы
     * `.bash_profile: PATH=$PATH:$HOME/bin`
   * {o} Исполняемые объекты (программы и сценарии):
    * `ls -l`, `chmod +x`
    * shebang
  * Виды объектов:
   * {o} В файловой системе
    * {o} файлы, каталоги, символьные ссылки, etc.
    * {o} понятие iNode
   * В Python
    * некоторые стандартные типы
    * `id(объект)`, сравнение `is`
    * `from math import *`
  * Счётчик ссылок и сборка мусора
   * {o} Жёсткие ссылка на файлы, команда `ln`
   * Именование объектов в Python
  * Сценарии и callable
    * (если успеем) пример преобразования исходного кода
  * Разбор задачи «Платная лестница-1/2»:
   * неэффективное рекурсивное решение и его анализ
   * решение методом динамического программирования
    * (если успеем) в т. ч. «неправильное» рекурсивное
  * Введение в динамическое программирование: определение подзадач и их зависимостей
Строка 33: Строка 25:
  1. {i} Первое
  1. Второе
  1. {i} Прочитать [[RW:Динамическое_программирование|о динамическом программировании в Википедии]]
   * В частности, [[RW:Числа_Фибоначчи|про числа Фибоначчи]]
  1. <<Homework(ejvmsh:,PaidStairs,Платная лестница)>>
  1. <<Homework(ejvmsh:,FibTail,Последние цифры большого числа Фибоначчи)>>
  1. /!\ задача на рекурсию

<свалка тем на будущее>

  • Разбор Д/З
  • Создание собственной программы
    • {o} Исполняемые объекты (программы и сценарии):

      • Переменные в shell; PATH; .bash_profile: PATH=$PATH:$HOME/bin

      • ls -l, chmod +x

      • shebang
  • Рекурсия
    • Вложенные пространства имён, потребление памяти
    • ⇒ условия использования и неиспользования
    • рекурсивные вызовы ⇔ общий код + стек состояний
      • (если успеем) пример преобразования исходного кода
  • Разбор задачи «Платная лестница-1/2»:
    • неэффективное рекурсивное решение и его анализ
    • решение методом динамического программирования
      • (если успеем) в т. ч. «неправильное» рекурсивное
  • Введение в динамическое программирование: определение подзадач и их зависимостей

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

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

  2. (PaidStairs) Платная лестница

    Наступить на k-ю ступень лестницы A стоит Ak монет. Ввести через запятую «цены» ступеней A, и на следующей строке — ширину шага S (все числа натуральные) и вывести минимальную стоимость пути с земли до последней ступени (на которую наступать обязательно), при условии, что идти можно только вверх и перешагивать можно не более, чем через S-1 ступень.

    Input:

    5, 3, 6, 1, 1, 2, 3, 4, 7, 5, 5, 7, 1, 1, 4, 6, 3, 4, 7, 4, 2
    4
    Output:

    14
  3. (FibTail) Последние цифры большого числа Фибоначчи

    Последовательность чисел Фибоначчи определяется следующим образом: F0 = F1 = 1, Fn+1 = Fn+Fn-1. Ввести N (возможно, довольно большое) и вывести последнюю цифру N-го числа Фибоначчи.

    Input:

    1234567
    Output:

    3
  4. /!\ задача на рекурсию

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

  • {o} — тема по Linux

  • <!> ­— тема повышенной сложности

  • {i} — теоретическое задание

  • {*} — тема для самостоятельного изучения


CategoryClass CategoryVmsh

LecturesVMSH/Python/2014-11-21 (последним исправлял пользователь FrBrGeorge 2014-11-21 14:30:06)