Алгоритмы на Python 3. Лекция №5

Практика: judge.mipt.ru/mipt_cs_on_python3/
Telegram-группа: t.me/tkhirianov_mipt_cs_on_py...
Спонсировать: / tkhirianov или www.paypal.me/tkhirianov
курс: Информатика. Алгоритмы и структуры данных на Python 3.
лектор: Хирьянов Тимофей Фёдорович
03.10.2017
Темы, рассмотренные на лекции №5:
- Список как массив данных.
- Линейный поиск в массиве.
- Копирование массива. Копирование задом-наперёд.
- Алгоритм обращения массива.
- Алгоритм циклического сдвига в массиве.
- Добавление элемента в конец и в начало массива.
- Удаление элемента из конца и начала массива.
- Ссылочная модель данных в Python. Изменяемость списка.
- Решето Эратосфена.

Пікірлер: 562

  • @user-iy9of1ew8c
    @user-iy9of1ew8c4 жыл бұрын

    Вот я честно не понимаю, на сколько нужно быть правильным человеком и учебным заведением, что бы такую информацию выкладывать бесплатно и в таком качестве. Большое спасибо вам за работу, от всего интернет сообщества России. Думаю я не преувеличил. Большая, полезная, великолепная работа для развития всей страны.

  • @rio5121

    @rio5121

    3 жыл бұрын

    Это современный взгляд, испорченный капитализмом. При союзе образование было бесплатным.

  • @vanadoo5836

    @vanadoo5836

    3 жыл бұрын

    Поддерживаю!

  • @quddi

    @quddi

    2 жыл бұрын

    @@rio5121 если вспомнить все, что было при нем, то лучше уж так, как сейчас

  • @ivanprokofyev

    @ivanprokofyev

    2 жыл бұрын

    @@quddi, если бы еще знать хоть что-то о "нем".

  • @ivanprokofyev

    @ivanprokofyev

    2 жыл бұрын

    Сильно преувеличиваешь, похоже, что в силу идеалистических представлений об окружающем мире и в силу того, что "слаще морковки" ничего не пробовал, т.е. не знаешь, что такое образование, которое направлено на подготовку специалистов, а не на штамповку компетентных потребителей. Какую такую информацию, в каком качестве? Сплошное самолюбование автора и ни дидактики, ни методики, ничего-то особенного. Современное образование, это заигрывание с УО, с набалованными детишками, это снижение требований и сложности для того, чтобы набрать необходимое количество молодых балбесов для з/п преподов ну и немного или много в карман положить. Это не про образование все, это все про профанацию и свободный рынок.

  • @CurlyBeaver
    @CurlyBeaver3 жыл бұрын

    То чувство, когда в бесплатных лекциях на youtube человек объясняет проще и понятнее, чем в купленных мной платных онлайн-курсах за 30к... Жаль, что нельзя пожать руку, очень талантливый преподаватель!

  • @Mishanya00

    @Mishanya00

    2 жыл бұрын

    Ну так это не просто человек, а преподаватель МФТИ, квалифицированнее некоторых преподов курсов будет

  • @user-in5ir5jd7u

    @user-in5ir5jd7u

    9 ай бұрын

    с курсами за 150к тоже самое... у меня столько стоит

  • @elenam4339

    @elenam4339

    9 ай бұрын

    зачем сравнивать университетское образование и онлайн-курсы ))

  • @iritaka
    @iritaka4 жыл бұрын

    Тайм-коды: Массивы, тип list 1:30 Список (list) как массив данных. Массив - такой способ доступа к данным, когда есть 1 имя и сразу много данных 4:15 for x in A: 8:18 модель данных в Python. Как хранятся данные. Есть изменяемые и неизменяемые типы (объекты) 9:05 числа являются константами. Неизменяемый тип 9:52 ссылочная модель связи имени и объекта 13:30 доступ к элементу массива по индексу. У первого элемента - индекс 0. Поэлементный доступ к массиву 17:31 А = [0] * 1000 # создание массива А с тысячью нулей 19:08 уровень заполненности массива. Top 25:42 удаление элемента из конца и начала массива 27:12 копирование массива. поэлементное копирование. копирование задом-наперёд 29:58 хотя имена а Питоне создаются методом присваивания в них, нельзя сделать С = А, чтобы сделать копию списка 30:36 ссылочная модель данных в Python 32:46 изменяемость списка. list - изменяемый объект 33:34 int неизменяемый объект. Число по ссылке изменить нельзя 35:40 C = list(A) # чтобы сделать дубликат списка. копию 36:20 линейный поиск в массиве 36:52 в параметрах функции можно уточнить тип параметра (после двоеточия) 39:22 тестирование 47:16 функция с pass возвращает None type (тип Ничего) - специфическая переменная 49:19 алгоритм обращения массива 1:03:03 добавление элемента в конец и в начало массива 1:04:06 алгоритм циклического сдвига в массиве. влево 1:08:55 вправо 1:10:40 алгоритм решето Эратосфена 1:12:24 bool неизменяемый тип 1:13:38 if A[k] # если A[k] равен True 1:17:18 тернарный оператор

  • @cracoh

    @cracoh

    3 жыл бұрын

    спасибо вам!

  • @igoweiqibaduk8283

    @igoweiqibaduk8283

    2 жыл бұрын

    Иритака, ты очень очень очень хороший человек! Твои таймкоды круче яндекса и гугла вместе взятых!

  • @iritaka

    @iritaka

    2 жыл бұрын

    @@igoweiqibaduk8283 Ну Очень приятно! Спасибо огромное!!

  • @ivanprokofyev

    @ivanprokofyev

    2 жыл бұрын

    Массив, это не способ доступа, а структура данных. Под способом доступа можно понимать тот или иной конкретный синтаксис или работу интерпретатора.

  • @iritaka

    @iritaka

    2 жыл бұрын

    @@ivanprokofyev хорошее замечание

  • @alexmak8305
    @alexmak83055 жыл бұрын

    за "шо це таке" на 58:18- отдельный лайк!!!)

  • @andreyvbvbvb

    @andreyvbvbvb

    5 жыл бұрын

    На секунды две поздно напсал

  • @mihakgma

    @mihakgma

    4 жыл бұрын

    не уразумив ы не побачив) шо це такэ?)

  • @sanjarkenjayev7368

    @sanjarkenjayev7368

    2 жыл бұрын

    а что такое шо це текэ ? из Мариуполя препод

  • @user-gv6ih6pg4q
    @user-gv6ih6pg4q4 жыл бұрын

    Такие знания . Бесплатно . Бескорыстно . Настоящий русский Учёный .

  • @Berseny

    @Berseny

    3 жыл бұрын

    Знания бесплатно и бескорыстно -- это про коммунистов, а не про ррррусских. Ведь какой-нибудь буржуй, наживающийся на интеллектуальной собственности, не перестает от этого быть ррррусским буржуем. Верно? Правильно сформулировать: прогрессивный ученый левых взглядов (даже если он сам лепит чушь про какую-то нравственность в лагере праваков). По поступкам товарищ вполне себе марксист. =))

  • @beria_

    @beria_

    3 жыл бұрын

    @@Berseny у тебя шлак в голове

  • @Berseny

    @Berseny

    3 жыл бұрын

    @@beria_ Да неужели? А у тебя точно шлака в башке нет? А? Уверен? =) Наивный человечишко. =)

  • @Berseny

    @Berseny

    3 жыл бұрын

    @@user-oq9xr8dj1b А пока с чужого канала, это не бескорыстно? Нет, ну если ему заплатил кто-то за съемку уроков... Ну хз. Здесь бескорыстность не в том, что человек ничего не получил за свой труд педагога, это был бы альтруизм. Бескорыстие в том, что всеми знаниями вправе воспользоваться всякий человек. Интеллектуальная собственность -- зло!

  • @Berseny

    @Berseny

    3 жыл бұрын

    @@user-oq9xr8dj1b Являясь достоянием всего человечества, это уже не интеллектуальная собственность, а общечеловеческое богатство. Я имел в виду, конечно же, частную собственность на знания, ну или собственность корпоративную. Ну когда остальные обязаны платить и покупать каждый раз, когда им необходимо, а у продавцов от этого не убывает. Уродливая система капитала, античеловеческая. Сделали из знаний подобие валюты, которая призвана приумножать их капиталы. Причем авторы к этим продажам зачастую не имеют никакого отношения. Они трудились на корпорацию, вот она и присвоила все их наработки. А человек просто раб, получил зарплату и всё! Никакой интеллектуальной ренты, хрен в зубы, и грызи. =) В общем, паразитическая система.

  • @YellowNoski
    @YellowNoski4 жыл бұрын

    Вот это я понимаю - класс! Человек просто взял и на примере кнопок в лифте и наименовании этажей во Франции идеально объяснил логичность индексации с 0. Браво!

  • @Dimonitos
    @Dimonitos5 жыл бұрын

    Хорошие емкие лекции. Спасибо за материал. Было бы гораздо удобнее если в названии будет тема лекции! Например: "Алгоритмы на Python 3. Лекция №5 (Массивы)"

  • @user-op5tk5fg3v
    @user-op5tk5fg3v2 жыл бұрын

    За такое преподавание педагоги должны получать большую зарплату и входить в селебрити) давно пора записывать и выкладывать лекции, чтобы отсеять и поувольнять тех, кто бубнит себе под нос, путается в показаниях и кого тоска зеленая слушать) спасибо за увлеченность и добросовестность

  • @yevhenukrainianer4781
    @yevhenukrainianer47816 жыл бұрын

    Тернарный особо порадовал. Спс за лекцию.

  • @user-iz9sj1nn5q
    @user-iz9sj1nn5q4 жыл бұрын

    - Список как массив данных (1:24): - Перебор списка по порядку (просто вывод элементов без возможности изменения их в списке): 4:04 - Модель данных в Питоне (как получить доступ к самим объектам в списке и манипулировать ими): 7:48 - Как создавать длинные списки (которые проблематично создавать вручную): 17:27 - Добавление элементов в список с помощью цикла while: 18:58 - Вывод чисел из списка в обратном порядки с помощью цикла for: 23:54 - Удаление элементов из списка: 25:42 - Копирование массива: 27:08 - Сокращенный вариант копирования списка через list: 35:40 - Линейный поиск в массиве: 36:13 - Написание функции тестирования: 39:43 - Алгоритм обращения массива: 49:12 - Добавление эл. в конец и в начало массива: 1:03:03 - Алгоритм циклического сдвига: 1:03:47 - Решето Эратосфена: 1:10:40

  • @Andrei-de6mf

    @Andrei-de6mf

    3 жыл бұрын

    И? Это любой студент знает?

  • @yesugibe7041
    @yesugibe70414 жыл бұрын

    Спасибо за материал и отличную подачу!

  • @user-xv6oj1wv5e
    @user-xv6oj1wv5e4 жыл бұрын

    Спасибо Вам за уроки! Замечательная подача материала!!!

  • @evheniihoroshko1161
    @evheniihoroshko11612 жыл бұрын

    Здоровья вам Тимофей Хирьянов. Как хорошо что я нашел ваш канал. Читать статьи разные что такое стр инт и т.д. Окей базовые понятие , а тогда думаешь а чего же дальше начать, думал нужно учить синтаксисы ,а они оказываются непостоянны и меняются. То что вы раскладывание по полочкам облегчает мне и другим жизнь Я люблю чтобы всё было от и до и с рассказано почему так ( по каким правилам ) А не то что в интернете говорят общие понятия - что должно быть так и никак иначе А потом у меня другие вопросы и ищешь в интернете на свой же вопрос ответ.

  • @user-os8iy9wj2s
    @user-os8iy9wj2s4 жыл бұрын

    Правильно говорят: "Если преподаватель не может объяснить 6 летнему ребенку, то он сам не разбирается в предмете!". Лекции просто чудо!!! В четко, ясно и понятно.

  • @mariyaalberdina9917
    @mariyaalberdina99172 жыл бұрын

    Очень здорово! Обучение это очень важно, хорошо что вы есть и так хорошо делаете свою работу!

  • @elliottroot513
    @elliottroot5133 жыл бұрын

    Я Вас очень сильно уважаю. Словами не передать как я счастлив смотреть Ваши лекции

  • @MarkNikita1
    @MarkNikita1 Жыл бұрын

    Огромное спасибо за уроки! Вместе с вами учиться намного приятнее и легче)

  • @patrickspilmann5008
    @patrickspilmann50083 жыл бұрын

    Тимофей, БРАВО! СПАСИБО! Вы ЛУЧШИЙ преподаватель!!!!

  • @shadedeveloping4705
    @shadedeveloping47054 жыл бұрын

    Преподаватель: "Лабы пропускать нельзя" Я за компом: ....

  • @volodimirbatalov7442
    @volodimirbatalov74424 жыл бұрын

    мозга кипит, но мне нравится, спасибо Тимофею большое... много вещей, подробно, наглядно, даже вопросов не возникает...

  • @Qwerty-fn3rf
    @Qwerty-fn3rf5 жыл бұрын

    препод от бога

  • @user-zf4pm4ky1r
    @user-zf4pm4ky1r3 жыл бұрын

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

  • @anatoliiljin6870
    @anatoliiljin68702 жыл бұрын

    Спасибо! Вы самый лучший преподаватель!

  • @AnastasiaKorosteleva_SPb
    @AnastasiaKorosteleva_SPb5 жыл бұрын

    лектор очень душевный!

  • @sergejkaznov2677
    @sergejkaznov26774 жыл бұрын

    НАСТОЛЬКО ПРОСТЫМ ЯЗЫКОМ И ТАК ИНТЕРЕСНО УВЛЕКАТЕЛЬНО ПОБОЛЬШЕ БЫ ТАКИХ УЧИТЕЛЕЙ 👍👍👍☝️👍👍👍

  • @vaal5500
    @vaal55004 жыл бұрын

    Спасибо за прекрасную лекцию)

  • @konstantinselivanov8513
    @konstantinselivanov85133 жыл бұрын

    Тимофей, вы лучший! Спасибо!

  • @shaykhinurov
    @shaykhinurov Жыл бұрын

    Так, эту лекцию посмотрел, теперь не запутаться, в следующий раз смотреть следующую.

  • @rinatsarmuldin8118
    @rinatsarmuldin81183 жыл бұрын

    Талант и интелект вот это человек с большой буквы!

  • @gornakovs
    @gornakovs Жыл бұрын

    Спасибо тебе Добрый человек за эти лекции

  • @user-sw9vz3ev2v
    @user-sw9vz3ev2v4 жыл бұрын

    Лекции класс не возможно уснуть , подписался..

  • @rustamturaev5361
    @rustamturaev53613 жыл бұрын

    Спасибо, продолжаю изучение с удовольствием)

  • @alekseytrump1586
    @alekseytrump15862 жыл бұрын

    Спасибо за лекции. Лучшие!!!

  • @RuslanZinovyev
    @RuslanZinovyev4 жыл бұрын

    Решето Эратосфена гениально расписан на Пайтоне, просто красота, так круто когда на память на доске можешь его написать.

  • @Lexfr0mkhar
    @Lexfr0mkhar4 жыл бұрын

    Приятно слушать и созерцать!

  • @maratgabitov
    @maratgabitov2 жыл бұрын

    23:07 Всё понятно, топ лекция, продолжайте) (молчание - это глубокая заинтересованность)

  • @vitalikos2010
    @vitalikos20104 жыл бұрын

    Последние 8 минут видео сделали мой день...

  • @_pheax
    @_pheax4 жыл бұрын

    спасибо, Тимофей Фёдорович

  • @True_Ulatim
    @True_Ulatim4 жыл бұрын

    Вы великолепный преподаватель. Смотрю все ваши лекции с превеликим удовольствием и на 6-й лекции могу с уверенностью сказать, что именно этого мне не хватало при кодировании. Я уже пишу на питоне телеграмм ботов и работаю с БД но это все занимало очень много времени так как не всегда было достаточно понимания как это работает. Все конечно же гуглилось но до конца понять, что то все-таки не мог.

  • @westend_school

    @westend_school

    3 жыл бұрын

    почему-то не нашел 6ю лекцию. она еще активна?

  • @psychicks3463

    @psychicks3463

    Жыл бұрын

    @@westend_school kzread.info/dash/bejne/gIClmdB7acW8YLA.html

  • @ZlataDobrovolny
    @ZlataDobrovolny2 жыл бұрын

    Это гениально! Блокбастер по программированию!

  • @aezakmi50872
    @aezakmi508725 жыл бұрын

    Спасибо за лекции . Очень познавательный матерьял . Мне как программисту .Вы оказали огромную помощь .

  • @user-cx8rl2cd2l
    @user-cx8rl2cd2l5 жыл бұрын

    Спасибо, преподаватель)))

  • @yulii1171
    @yulii11714 жыл бұрын

    Очень интерессно. Спасибо

  • @user-gw9kb3su3x
    @user-gw9kb3su3x4 жыл бұрын

    Очень артистично !)

  • @StankBrewing
    @StankBrewing Жыл бұрын

    Спасибо за материал 🙏

  • @user-hb9vq1id9y
    @user-hb9vq1id9y4 жыл бұрын

    Не не скучно , а интересно

  • @konst2087
    @konst20872 жыл бұрын

    пользуясь несколько лет срезами на уровне рутины я даже и не выдумывался в такие нужные вещи

  • @user-oo4lp8se9r
    @user-oo4lp8se9r4 жыл бұрын

    Комментарий в поддержку контента.

  • @murzinovleonid8355
    @murzinovleonid83552 жыл бұрын

    Большое Вам спасибо!

  • @user-vu8pl8zl7h
    @user-vu8pl8zl7h4 жыл бұрын

    Тимофей Федорович, спасибо Вам большое за публикации своих курсов на ютубе! У меня возникло одно замечание, я его выскажу, не сочтите за неуважение. Я как будто заметил, что некоторые вещи людям непонятны, на первом курсе у студента ветер в голове) да и мне тоже иногда трудно) вот к примеру эти списки, а зачем они вообще нужны? А если непонятно зачем этот инструмент нужен, трудно в нем разобраться. Не лучше ли подавать материал с практической точки зрения? т.е. вот к примеру есть задача с помощью питона проанализировать введеные данные к примеру значения температуры (или я не знаю что еще))), и вот для этого можно применить такую вещь как списки, и вот так-то они устроены и т.д. или же еще на первой лекции можно было поставить задачу написать примитивный калькулятор, и параллельно объяснить все базовые вещи. ну как то так, спасибо)

  • @vkgpmail
    @vkgpmail2 жыл бұрын

    Спасибо Вам огромное!!!

  • @user-zk9gv2hz7o
    @user-zk9gv2hz7o Жыл бұрын

    Вообще интересное объяснение логичности индексации с нуля. Забавное. Строго говоря во Франции нет нулевых этажей (хотя кнопка ноль в лифте присутствует). Первый этаж в нашем понимании по французски это Rez-de-chaussée произносится что-то вроде Редшосэ и переводится как «рядом с дорогой из известняка» или «на уровне дороги из известняка». Я так понимаю по нашему это земляной пол :). Даже в лохматой древности у нас не было в традиции строить дома с земляным полом, климат не тот. :) Поэтому вероятно у нас всё начинается с первого этажа, а не с нулевого.

  • @user-vr4ps7do2u
    @user-vr4ps7do2u Жыл бұрын

    здоровья Вам.

  • @rkevlarovich3653
    @rkevlarovich36533 жыл бұрын

    Тимофей, ну где ты был (да и я тоже) лет эдак 22 назад? )))) мне бы таких преподов (еще раз повторюсь) в универе, я бы стал точно программистом. А сейчас приходится самообразованием заниматься - что абсолютно несложно несмотря на пройденное время и возраст))) Спасибо и удачи!

  • @user-yg4bf9os2f
    @user-yg4bf9os2f2 жыл бұрын

    восхитительно

  • @user-dh5zg5qh1p
    @user-dh5zg5qh1p4 жыл бұрын

    Классные лекции! Просто "бдыщь" головного мозга!🤪

  • @memprus
    @memprus4 жыл бұрын

    Во втором гуманитарном корпусе МГУ, где сидит факультет ВМиК 9Вычислительная Математика и Кибернетика), лифт от 0 до 7)))

  • @user-rl3nm6yi1c
    @user-rl3nm6yi1c2 жыл бұрын

    Такой жирный лайк поставил, что чуть телефон пальцем не раздавил

  • @mystical_stories
    @mystical_stories2 жыл бұрын

    *в конце лекции как всегда "отжигаете"))*

  • @tkhirianov

    @tkhirianov

    2 жыл бұрын

    Заинтриговали. Не понял на какой именно минуте и что именно вы имеете в виду.

  • @mystical_stories

    @mystical_stories

    2 жыл бұрын

    Для начала, раз Вы мне ответили, хочу поблагодарить Вас за эти лекции. Очень интересно и доступно объясняете. Занимаюсь с удовольствием. А насчёт "отжигаете", я имел ввиду, что в конце лекций Вы часто в сжатые сроки объясняете сложные моменты :) И благо, я могу перемотать, посмотреть и обдумать несколько раз. На живой лекции я бы такой роскошью не обладал :)

  • @xandrewpwnz
    @xandrewpwnz5 жыл бұрын

    Ребят, а тесты посмотреть для данных лекций ,есть возможность ?

  • @Siren476
    @Siren4765 жыл бұрын

    Ну почему понимаешь, что надо было учиться, когда тебе уже сороковой десяток идёт? Сейчас бы с удовольствием сидела бы среди этих студентов..

  • @user-mh9ql3kg3l

    @user-mh9ql3kg3l

    5 жыл бұрын

    Сороковой десяток или все таки четвёртый?

  • @Siren476

    @Siren476

    5 жыл бұрын

    Денис Катанугин Да, долго я необразованная живу)

  • @danalexpiano

    @danalexpiano

    5 жыл бұрын

    Stacy Miller не надо вам в программисты ))))))

  • @user-eo3tl9cd9k

    @user-eo3tl9cd9k

    5 жыл бұрын

    )

  • @b.g.5106

    @b.g.5106

    5 жыл бұрын

    @@danalexpiano программисты не люди))))

  • @kashasa
    @kashasa5 жыл бұрын

    Спасибо!

  • @user-sd4pv6bc8v
    @user-sd4pv6bc8v4 жыл бұрын

    Отлично!)

  • @777richok
    @777richok2 жыл бұрын

    В лектории очень тихо, потому что лекция увлекательная!

  • @MrEvgeny57
    @MrEvgeny572 жыл бұрын

    В "решете" во втором цикле просева составных чисел в range вместо 2*k лучше использовать k**2. Все до него будут составные, отфильтрованные предыдущими итеррациями

  • @dmitrijloskutnikov694
    @dmitrijloskutnikov694 Жыл бұрын

    48:50 Гениально. 1:00:51 Я это ивертирование мучил за пару дней до просмотра видео. И прошёл по всем граблям, что тут показаны.

  • @user-oh2xc9ni6i
    @user-oh2xc9ni6i2 жыл бұрын

    Шо це таке) Це було прикольно) Ніколи штірліц не був так близько від провалу) ))

  • @ruslanways
    @ruslanways Жыл бұрын

    16:00 с версии Python 3 - PEP рекомендует использовать enumerate, если хотим получать индексы.

  • @makedatauseful1015
    @makedatauseful1015 Жыл бұрын

    Супер преподаватель

  • @VladArnoldner
    @VladArnoldner6 жыл бұрын

    Спасибо

  • @user-sm5gg8rl6v
    @user-sm5gg8rl6v3 жыл бұрын

    58,11 B = [1, 2, 3, 4, 5] C = [ ] for k in range (len(B)-1,-1,-1): C += [B[k]] for k in range (len(C)): B[k] = C[k]

  • @user-sh8tp5fq5l
    @user-sh8tp5fq5l4 жыл бұрын

    Блин мужик, ты где такой спинжак отхватил😂👍

  • @ntvisigoth
    @ntvisigoth Жыл бұрын

    1:18:46: Тернарный оператор рекомендую попробовать так: (alternative_false, alternative_true)[your_check] Пример: ('Number is prime', 'Number is complex')[is_number_prime(number)] Это связано с тем, что True, False преобразуются в цифры 0 и 1, а их можно использовать в качестве индекса. Сравним эту и тернарную форму: 1. ('Number is complex', 'Number is prime')[is_number_prime(number)] 2. 'Number is prime' if [is_number_prime(number)] else 'Number is prime' Возможно, дело вкуса. Но мой вариант, мне кажется, выглядит привлекательнее

  • @harislam86
    @harislam86 Жыл бұрын

    "Лукавлю я, конечно... Слава Богу, что вы Питон не знаете" 🤣🤣🤣🤝🏻

  • @Sigma8484
    @Sigma84845 жыл бұрын

    решето эратосфена можно сильно ускорить и в два раза сократить выделяемую память, если проверять только нечетные числа (индекс булевого массива = индекс нечетного числа, перевод из индекса в число 2*k+1) и вложенный for начинать не с 2*k, а с k*k, а внешний вести до sqrt(N)

  • @eugenedukatta9355

    @eugenedukatta9355

    4 жыл бұрын

    Это уже программистские фишки (оптимизация кода и алгоритма). Вы абстрагируйтесь от того что вы опытный программист, а только что начинающий. А вообще Тимофей Федорович про это заикнулся, но не продолжил.

  • @PodsasBoosty
    @PodsasBoosty4 жыл бұрын

    21:10 Тишина, понятно да? да! значит ничего не понятно)

  • @ubershh
    @ubershh2 жыл бұрын

    Надо после окончания лекции для студентов продолжать лекцию для подписчиков и рассказывать нерассмотренные вопросы)

  • @marines8725
    @marines87252 жыл бұрын

    спасибо!

  • @eugene8390
    @eugene83905 жыл бұрын

    можно циклический сдвиг осуществлять при помощи деления по модулю, т.о. индекс всегда остается в пределах массива и временная переменная не нужна def cyclic_shift(N:list): l = len(N) for i in range(l - 1): index = (i + 1) % l N[i], N[index] = N[index], N[i] return N

  • @arhangelist

    @arhangelist

    5 жыл бұрын

    Можно, только не ясно зачем - отказались от временной переменной, получили двукратный рост операций с памятью на каждом шаге цикла. То есть работает дольше, а профит не ясен. Подробнее: ВАРИАНТ 1 (исходный): на каждой итерации соседняя ячейка тупо затирается новым значением, то есть это операция: "считать исходное значение в ячейке A ==> сохранить его в ячейку А+1". О судьбе исходного значения в "А+1" можно не заботиться, так как массив обходим в направлении, противоположном направлению сдвига, а самый первый элемент (который в любом случае будет затерт) сохранили во временную переменную еще до цикла. Останется только по окончании цикла восстановить его из tmp в условно "последнюю" (или "первую") ячейку; ВАРИАНТ 2 (новый): ради отказа от временной переменной, мы _на каждой итерации_ вынуждены сохранять значение соседней ячейки, так как иначе её содержимое будет утеряно. Вы для этого используете "обмен значениями", но строго говоря это не суть - так или иначе мы получим операции, по нагрузке схожие с: "считать исходные значения в ячейках А, Б ==> сохранить исходные значения из А, Б в ячейки Б, А". Даже на вскидку видно, что это в два раза больше на каждом шаге (читаем и А и Б, записываем так же и А и Б). Не явно действий может быть и того больше, так как по факту "обмен значениями переменных" Питон (если угодно Пайтон) также осуществляет через временную переменную, только делает это незаметно для программиста. Об этом в том числе сказано в данных уроках (если не ошибаюсь, в первом, там где речь о базовом синтаксисе объявления/присваивания значений переменных).

  • @nepBoHax

    @nepBoHax

    4 жыл бұрын

    В правильном направлении мыслите, только можно сделать обертку над листом, где модом сдвигать только индекс, чуть вырастет время доступа к данным, но записи в них не будет происходить, выигрыш на лицо.

  • @am0ba
    @am0ba4 жыл бұрын

    Если функция поиска возвращает индекс найденного эл-та, то возвращая -1 в случае отсутствия элемента в массиве, идея не очень. В питоне индекс -1 будет указывать на последний эл-т массива не?

  • @cuckoops
    @cuckoops4 жыл бұрын

    Наглядный пример разработки по методу TDD (Test-Driven Development) :)

  • @petrrybakov1462
    @petrrybakov14624 жыл бұрын

    гений!

  • @devour_dead
    @devour_dead4 жыл бұрын

    Чорт! Такой препод, что мне хочется все бросить и бегом программировать, писать самые простые вещи, тупить, ломать голову, снова тупить, решать и дальше дальше дальше. Все четко, системно, понятно, мозги шевелятся.

  • @vitaliisvinovei9690
    @vitaliisvinovei96902 жыл бұрын

    58:17 Шо це таке?! XD подняло настроение)) спасибо большое за видео

  • @developmentops8552
    @developmentops85526 жыл бұрын

    Спасибо, решето понравилось, долго допирал ) единственное что не понял почему мы 0 и 1 ставим в False ? они тогда составными печатаются

  • @danalexpiano

    @danalexpiano

    5 жыл бұрын

    Сергей Разгонов ну ошибся он в конце, там ещё третий вариант будет - неприменимо. 0 не является простым, так как на 0 делить нельзя. Сейчас точно не помню, но вроде и 1 не будет простым, так как простое должно делиться на два числа - единицу и себя, а у 1 эти оба числа являются одним и тем же. Простые числа тут предполагаются как элементы разложения на множители.

  • @user-nt7zx5ix8t

    @user-nt7zx5ix8t

    4 жыл бұрын

    0 и 1 false , т.к это числа 1 и 2 (простые). В последней строке ошибка, там надо не "k", а "k+1"

  • @freemanfree7895
    @freemanfree78954 жыл бұрын

    48:35 Почему test1 в def test_array_search() возвращает ок? Разве не fail должен вернуть? Объясните пожалуйста, ведь 8 нет в массиве А1!

  • @romansokolov2216

    @romansokolov2216

    3 жыл бұрын

    Потому что тест проверяет корректность выполнения функции для разных входных данных. Если элемента нет в массиве, функция возращает -1, в test1 проверяется это условие и возращается "ok".

  • @user-bo7lm3bw9p
    @user-bo7lm3bw9p3 жыл бұрын

    @Тимофей Хирьянов, доброго времени суток. В Контесте для групп 737 и 738. Задание D, даётся последовательность чисел, однако в тестах с 6 по 10 дается список. И судя по проверкам, необходимо переместить последний элемент в начало. В самом задании об этом ни чего не сказано. 1-й семестр, 6-я неделя (группы 737-738

  • @tkhirianov

    @tkhirianov

    2 жыл бұрын

    @Александр Лагутов Спасибо большое за фидбек! Действительно, в тестах к заданию ошибка. Только это не список, а просто числа даны в строку. Я бы выкинул тесты с 6-го по 10-й или изменил их, но прямо сейчас у меня нет доступа к тестам на этом сервере. Я написал сисадмину с запросом доступа, но пока не могу вам помочь.

  • @tkhirianov

    @tkhirianov

    2 жыл бұрын

    Напишите мне персонально в Telegram через несколько дней с копией вашего сообщения. Я могу забыть про эту проблему, а доступ к тому времени мне скорее всего уже дадут.

  • @vongud
    @vongud Жыл бұрын

    Спасибо!!! А для чего применяется это решето?)

  • @Opencamp1
    @Opencamp14 жыл бұрын

    24:44 а если начало ренджа top-1? Для этого же создавалась переменная? Спасибо большое за урок!

  • @ivanklutru

    @ivanklutru

    2 жыл бұрын

    Это он для примера показал, просто не исправил. Вот, рабочий код """Введенные числа отображем в обратном порядке""" A = [0]*1000 top = 0 x = 1 while x != 0 : print("Для top", top) x = int(input("Введите число:")) if x != 0 : A[top] = x top += 1 for k in range(top, -1 , -1) : # range - start, stop (не включая это число), step print(A[k]) print("Всё")

  • @zvezdodinka
    @zvezdodinka Жыл бұрын

    def reverse_list(lst): ''' разворачивает список ''' b, n = [], -1 for i in range(len(lst)): b.append(lst[n]) n -= 1 return b lst = ['5', '4', '3', '2', '1'] print(reverse_list(lst))

  • @cheguseby
    @cheguseby2 жыл бұрын

    А не получится вот где мы сдвиг массива делаем через tmp, что это тоже ссылка как в примерах ранее с массивами A B C? т.е. в случае tmp=A[0] мы сделали ссылку, а потом первой итерацией цикла for мы туда уже задвинули A[1] и в переменной tmp окажется не тот ящик который мы ожидаем?

  • @xrollup
    @xrollup4 жыл бұрын

    Етитская сила, я наконец-то понял как работает решето Эратосфена!

  • @user-iz9sj1nn5q
    @user-iz9sj1nn5q4 жыл бұрын

    35:10 Не понял. Он же перед этим, наоборот, рассказывал, что по ссылке объект не меняется.

  • @lonelydance
    @lonelydance3 жыл бұрын

    29:58 Признак хорошего тона - копировать лист через срезы: C = A[:]

  • @8nhuman8

    @8nhuman8

    2 жыл бұрын

    лучше использовать метод copy(). Читабельнее

  • @BeginBye
    @BeginBye5 жыл бұрын

    1:02:27 к N//2 в range нужно еще прибавить единицу, иначе итераций цикла будет недостаточно для достижения середины заданного участка списка. Ну и в конце еще нужно дописать, чтО функция будет возвращать, согласно поставленной задаче - фрагмент обращенного списка, определенного числом N. Таким образом, законченное решение будет следующим: for k in range(N//2 + 1): A[k], A[N-1-k] = A[N-1-k], A[k] return A[:N] А вообще - решение классное. Спасибо, Тимофей Федорович! Я, пока смотрел, поставил на паузу и решил задачу двумя способами: 1. используя метод .reverse(), и применив его к нужному фрагменту списка, определенного числом N: fragment = A[0:N] fragment.reverse() return fragment 2. создавая пустой список и наполняя его в цикле с помощью .append(), инициировав обратный счет от N-1 до -1: reversed_list = [] for i in range(N-1, -1, -1): reversed_list.append(A[i]) return reversed_list Ваш метод был не очевидным, и по этой причине - классным и ценным! Спасибо!!!

  • @denyslozinskyi7322

    @denyslozinskyi7322

    5 жыл бұрын

    Evgeniy Cheremisinov относительно возвращения списка функцией ваше утверждение справедливо только в том случае, если в результате ее работы нас будет интересовать ВЕСЬ обращённый список. Но задача ведь стоит иная: "Обращение массива в рамках индексов от 0 до N-1", т.е. не весь массив, а его часть, отмеченная N. Поскольку N не обязательно будет совпадать с последним индексом списка, возврат участка имеет смысл.

  • @BeginBye

    @BeginBye

    5 жыл бұрын

    Evgeniy Cheremisinov да, просчитался вчера насчёт единицы. Она там не нужна, спасибо. А насчёт возврата функции - нам же не весь список вроде как нужен, а его фрагмент с начала до N, насколько я понял постановку задачи.

  • @BeginBye

    @BeginBye

    5 жыл бұрын

    Evgeniy Cheremisinov да, тут все зависит от постановки задачи) я понял иначе. Тем не менее, моя строчка возврата функцией заданного фрагмента обращённого списка добавляет функции универсальности и гибкости, так как позволяет получить результат как в работе с целым списком, так и с его фрагментом)

  • @AdventuresStories
    @AdventuresStories3 жыл бұрын

    как вводить данные для A[k] = int(input())? пробовала через пропуск или через каждую строку. не получается

  • @user-qs3mn1jg3x
    @user-qs3mn1jg3x3 жыл бұрын

    Как же эти лекции помогают, пиздец просто

  • @user-bq9bf2kt3x
    @user-bq9bf2kt3x2 жыл бұрын

    def make_primes_list(num): primes = [] sieve = [x for x in range(2, num + 1)] while sieve: prime = sieve[0] primes.append(prime) sieve = [x for x in sieve if x % prime != 0] return primes Более читабельный вариант решета Эратосфена для тех, кто умеет в list comprehensions

  • @user-ck2sb2uc2b
    @user-ck2sb2uc2b3 жыл бұрын

    Пока студенты молчат , я разговариваю с ПК ...

  • @quadroninja2708

    @quadroninja2708

    2 жыл бұрын

    Мне кажется, они задумались, а преподаватель пошел вперёд мысли студентов, вроде пытаешься понять, но нужно догонять и не до вопросов

  • @westend_school
    @westend_school3 жыл бұрын

    Классные лекции. А где найти 6-9? KZread после 5й сразу 10ю выдает

  • @tkhirianov

    @tkhirianov

    3 жыл бұрын

    В плейлисте они по порядку.

Келесі