Алгоритмы на Python 3. Лекция №3
Vložit
- čas přidán 11. 10. 2017
- Практика: judge.mipt.ru/mipt_cs_on_python3/
Telegram-группа: t.me/tkhirianov_mipt_cs_on_py...
Спонсировать: / tkhirianov или www.paypal.me/tkhirianov
курс: Информатика. Алгоритмы и структуры данных на Python 3.
лектор: Хирьянов Тимофей Фёдорович
прочитана 19.09.2017
Темы, рассмотренные на лекции №3:
- Позиционные системы счисления
- Литералы чисел в Python
- Разложение числа на цифры.
- Однопроходные алгоритмы без реализации.
Тайм-коды: Системы счисления
0:00 унарная система счисления
3:36 непозиционно-позиционная система счисления (base/основание = 60) часы
4:25 Число. Цифра - символ для кодирования (записи) числа
8:00 разложение числа на цифры
15:00 позиционные системы счисления. Двоичная система счисления
17:26 незначащие нули
18:30 Бит. Двоичный разряд .Диада
22:05 таблица систем счисления (2-ная, 4-ная, 8-ная (триада в двоичном выражении), 10-ная, 16-ная)
32:10 развернутая форма записи числа. Перевод из одной системы счисления в другую
34:31 к двоичному коду можно дописать нолик слева или справа.
Добавление нуля справа увеличивает число в 2 раза. Незначащий (слева) ноль не меняет числа
37:23 шестнадцатеричная система счисления. Тетрада
42:05 Байт. Тетрады двоичных цифр. 2 тетрады = 8 диад (8 бит) = 1 байт
46:52 схема Горнера. Интерпретация числа. Перевод из одной системы счисления в другую
53:42 системы счисления в Питоне. Есть возможность напрямую писать в 2, 8, 10, 16 - ных системах
54:03 Литералы чисел в Python. Двоичная: x = 0b1111 (0b # binary/ бинарный)
54:52 восьмеричная: x = 0o07
55:15 шестнадцатеричная: x = 0xFA0B
55:30 конструктор числа до 36-ной системы счисления. t = int('Z3F', 36) = int('Z3F', base = 36)
57:17 print(x) - выводит любое число в десятичной системе счисления
58:02 bin(x) - возвращает строчку двоичного кода
58:53 oct(x) - восьмеричное представление числа
59:11 hex(x) - 16-ное
1:00:32 код, который добывает из числа цифры и собирает в к-л произвольной системе счисления
Перевод числа в другую систему счисления
1:02:35 печать без перехода на новую строчку: print(digit, end = "")
end - именованный параметр. указывает, чем закончить напечатанную строку. '
' - новая строка
1:04:26 взять последнюю цифру (х % base). зачеркнуть последнюю цифру (х //= base)
1:06:34 однопроходные алгоритмы. Подсчет, сумма
1:11:10 произведение с 1
1:11:30 максимум m = max(m, x)
1:12:44 поиск числа в потоке f = f or (x == x0)
Слушай .... А ты золотой человек )
@@nuradiledilov784 Спасибо!
Спасибо, так удобнее )
Умничка )
@@DenBat_75 Спасибо)
Харизматичный, приятный лектор, спасибо за свободный доступ к этому курсу, очень приятно видеть подобную работу
EF BB BF - сразу понятно далее кодировка UTF-8
Слишком многословен и самовлюблен.
Дон Пампа откуда самовлюблённость вывели?
у такого человека приятно учиться а материал схватывается на лету. А то бывают военщины как в уставе все отпулеметят и потом на семинарах потеешь.
@@user-bh5gt3ew9t добро пожаловать в военмех)
В конце фразой "С богом" он описал весь процесс програмирования
Ппхпхпхпх
Ахах, особенно C++ со своими массивами
Кроме того, Хирьянов человек верующий.
Начинать лекцию про питон с древнего египта это круто)
Смотреть лекцию про питон не смотря на то что лекция про алгоритмы и структуры данных да это круто. Пытайтесь хоть смысл заголовков понять.
Подумал это сарказм, начал смотреть лекцию и понял, что это не так)))))
@@shakhzod8583 вы, наверное, хотели написать не "сарказм", а "метафора" (или "гипербола", зависит от того, что вы имели в виду)
"Давайте начнем с небольшого экскурса в историю."
@@Serg_88 я думаю, всё же сарказм. Типо "ахахах, древность полнейшая, такого уже давно нет"
когда был студентом, то хотелось максимально быстро закончить пары и свалить домой, сейчас смотрю лекции и в голове: "ещё расскажи! нужно больше информации!"
плохо, что осознание того, что "нужно выбрать своё направление и учиться, а не штаны просиживать на лекциях" приходит ближе к 30 годикам
Расскажи о себе? Ты чего-то добился к 30 лет?
ровно на такой же мысли себя поймал! 38 лет.
@@user-bj5qj3eu9g я тоже 30ти летний Джун разраб в компании самостоятельно вошёл в айти без каких либо курсов, я горжусь этим и иду по этой дороге дальше!
@@railbatyrshin7349 Поздравляю, сколько обучение заняло времени и как Вы смогли пробиться в компанию? Просто резюме высылали?
@@nellysvet7977 резюме конечно отправлял во все подряд, что касалось Frontend разработки. Выполнял тестовые, при этом читал книги и решал задачи и т.д. Сначала прошел стажировку и через 3 месяца стал джуном) в команде все 18-23 летние))) мне весело с ними
Для тех кому интересно:
1 - черта
10 - пятка
100 - петля верёвки
1000 - кувшинка/лотос (похожа на флюгер)
10^4 - палец
10^5 - жаба (головастик)
10^6 - человек севший на 1 колено с поднятыми вверх руками
10^7 символ Амона Ра Ω
Рамзес, перелогинься ))
Как здорово взять и прослушать лекции в Москве в ВУЗе, самое главное, что кроме желания и доступа в интернет ничего не нужно!!! Замечательно, спасибо огромное!!!
Вуз не в Москве, а в Долгопрудном)
Я тоже восхищаюсь. Сидя дома получаешь высшее образование. А если делаешь из дома, значит нужно. :) А тут и годно до кучи. Спасибо.
хомячки) Познавательно было 1.5 часа слушать лекцию про числа?) Мой братик с 3 класса даже ничего нового бы не узнал. Просто вы таталы всё)
отсталые*
Очень доступно! Если Все преподаватели так преподносили материал, было бы больше грамотных людей. Спасибо Вам!
Богу слава за всё. Благодарности можно перечислять в фонд "Милосердие.ру"
слишком много грамотных тоже плохо, рабочая сила всегда нужна. Именно так и думает министерство образования РФ судя по тому что происходит в школах
@@user-zc9fe7ob1p
Можно судить даже не по тому, что происходит, а по непосредственным декларациям целей, задач, концепций и стратегий. А если взять высказывания "не правящего" (формально) класса (н-р, Грефа Г.), то можно понять, что нам здесь совсем не рады.
@@user-zc9fe7ob1p У министров с роботизацией туго, а вот с рабами хорошо
okyskaa РАБотизация? Интересный подход.
2020 на самоизоляции, сижу, смотрю на одном дыхании)), спасибо за доступный материал.
аналогично) сохранил этот плейлист еще год назад, только сейчас нашлось время
та же картина, смотрю на карантине)
Тоже самое)
+
Обычный материал.
Не имею никакого отношения к информатике (я врач по образованию), а посмотрел 3 лекции с интересом, вот что значит хороший лектор
в наше время все так или иначе связаны с информатикой. Но да, препод хорош
Всё ли поняли?)
@@amigoo2 да
ах вот для чего эта швабра была нужна!
прямо по Чехову!
если во второй лекции у доски стоит швабра - в третьей она обязательно выстрелит )))
заменяет дробовик)
Если в первой серии индийского фильма на стене висит ружьё, то в четвертой серии оно обязательно станцует и споет :-)
Программист использует швабру не только для стирания устаревшего кода :)
Спасибо за лекции. А эта, ИМХО, лучшее объяснение систем счислений, которые я видел.
Какой стильный синий костюмчик!))) Помимо того, что один из лучших преподавателей, что я видел.
Я то думаю, какой трубой ты везде. А это Ютуб оказывается по твоим подпискам мне подкидывает предложку
Аж дыхание захватывает, если бы меня так учили преподы!! Спасибо огромное, это самое лучшее объяснение системы счисления которое только можно представить. С таким преподавателем можно учиться хоть всю жизнь..
вообще космос, как доносит информацию.... хочу такого учителя 20 лет назад
Крутейшая лекция!!! Рекомендую ВСЕМ, даже просто для общего развития
Огромнейшее спасибо за то, что у меня есть возможность фактически поприсутствовать на ваших лекциях, не говоря уже о том, что эта возможность бесплатна и одновременно бесценна.
Спасибо. Действительно очень хорошо освежить знания в 40 лет =). Что бы с новыми силами заниматься.
Спасибо огромное 👍
Все очень четко и без лишней воды, приятная, доступная и интересная подача материала, прям переносит слушателя в аудиторию, чего так нехватает многим платным курсам. По больше бы таких педагогов и лекторов 💪💪💪👍
Благодарю! Ваши лекции - шедевры. Вы учитель от бога.
Случайно заглянул и оторваться не могу. Вот это подача. Очень круто.
Спасибо за лекцию
Алгоритм на 1.04.33 выведет преобразованное число в обратном порядке, т.е. 13 при переводе в двоичную напечатается как 1011, а не 1101. Для правильного вывода надо накопить результат в строке res = str(num%base) + res а потом уже выводить
Лектор сказал об этом ранее.
Все таки преподавание - это искусство! Долгих лет жизни лектору!!!
Спасибо вам. Вы очень хороший преподаватель
Отличные лекции! Спасибо за хороший старт)
Тимофей, спасибо что снимаете эти видео! Очень круто!
афигеть как интересно. С большим удовольствием слушаю. Спасибо большое за такие крутіе лекции
Очень доступно подает информацию. Именно человек своего дела, видно что ему это тоже приносит удовольствие. Удачи такому преподавателю!
спать пора, не могу оторваться...
ахахахаха та же фигня) сижу уже 5:35
он умер от бессоницы
Ага)
То же самое
Так и знал что в коментах я буду не один, кому ютуб это подсунул а я теперь не могу оторватся. На часах 00:35,.
@@user-er7cs5ho3s я урывками смотрю уже несколько дней, и знаю, что и дальше буду смотреть))
Класс, спасибо Вам за лекции, получаю удовольствие от просмотра!
Удивительный препод!!!Зажигает!!!
Прекрасный курс: фундаментальный, и в то же время интересный
Отличный преподаватель! Наткнулся на эти лекции почти случайно и залип.
Тимофей, спасибо! Очень крутая подача материала.
Так интересно рассказывает, приятный голос, манера подачи информации, просто 👏👏👏
Очень интересные лекции, заслушался, понимаю теперь, что имел поверхностные знания. Спасибо!
Просто чудесный оратор! Не могу оторваться никак. Спасибо большое!
Тимофей Фёдорович, Вы потрясающий! Спасибо!
Был у нас на мат-мехе в СПбГУ лектор, тоже с душой рассказывал, только , правда, о матанализе.
Спасибо огромное за лекцию, не оторваться.
Огромное спасибо за такие крутые лекции!
Спасибо огромное , Тимофей Фёдорович!!!
"У меня тут есть аналог счётных палочек..." - Я уж думал, сейчас сигареты достанет
это раковый палочки
Спасибо за прекрасное, живое изложение!
Долгое время он вылезал у меня в рекомендациях, боялся, что это как еще один индус и ни разу не посмотрел. А сейчас понадобилось найти нормальный курс по алгоритмам и смотрю с удовольствием
если у вас до сих пор не работает проектор дайте знать, я письмо напишу руководству. замечательная подача и лектор, а проектор не фурычит!
Очень классный лектор, со школы вспомнил двоичную систему, подчерпнул отличный материал
Пример программы 1:50:00 с переводом из одной в другую системы счисления выводит цифры числа в обратном порядке. Надо изменить порядок, например с помощью использования строковых переменных:
number_in_string = ""
while x > 0:
number_in_string = str(x % base) + number_in_string
x = x // base
И не забыть вывести на экран потом.
Хоть кто-то заметил, спасибо. Я уж думал там ошибка)
Тут больше ошибка ещё в алгоритме. Например, если у нас будет остаток больше 10, то с помощью строки будет некорректная запись при развороте. Желательно использовать списки для сохранения таких остатков.
Так он изначально сказал, что запись будет задом наперед))
Он сказал: С Богом! Очень приятно смотреть снова чувствую себя за партой
Смотрел про 2ичную систему SC 50 от Гарварда, с лампочками и метро-сексуальным лектором, с Сахарбергом и Б. Гейтсом. Но это объяснение много и много круче! Спасибо большое!
Или CS 50 or XC or SX))) Арифмометр рулит. Браво!
Может, англ плохо просто знаешь? Эти лекции даже близко не валяются по сравнению с вышеозвученным курсом от Гарварда. Херею с местных комментаторов, которые тут сидят восхищаются, видимо, и впраду ничего слаще редьки не ели...
- Унарная система счисления: 0:03
- Египетская система счисления = римская (модифицированные унарные системы с сокращениями): 2:00
- Вавилонская система счисления (непозиционно-позиционная шестидесятиричная): 3:35
- Цифра и число: 4:24
- Двоичная система счисления: 14:58
- Схема Горнера: 46:18
- Запись чисел напрямую в определенной системе счисления: 53:46
- Написание программы на Питоне, которая добывает из числа цифры или собирает число в произвол. сис. счисления: 1:00:32
- Однопроходные алгоритмы: 1:06:33
Мне кажется, или преподаватель получает кайф, когда читаят лекцию и объясняет тему. Настоящий мужик. Ах если бы и у нас в Армении таковых было хотя бы 3 во всём Политехническом Институте были.
Спасибо за прекрасную лекцию!
забил на просмотр вечером сериалов, смотрю лекции Тимофея Федоровича.
Лучший лектор которого я видел. Повезло МФТИ! Спасибо вам за доступ!!!
Отличное преподнесение информации. Супер лекция.
Спасибо за лекции! Только человек, реально и полностью разбирающийся в теме, способен доступно и интересно объяснить и научить.
Я в школе объясняю во многих моментах похоже и скажу Вам то, что входит в хронометраж этой лекции очень поверхностно, но я большего почти и не знаю, а вот этот преподаватель знает. А объясняю я, повторюсь, так же доступно! Парадокс какой-то!!!:)))
Помню в школе тоже было несколько преподавателей которые горели своим предметом. Досихпор с теплом и добрым словом вспоминаю их и те времена. Дай бог им здоровья, и вам огромное спасибо что выкладываете ваши лекции.
Те кто учится в нём не упустите возможность стать её любым учеником. Талантливый человек. Если бы он дал и про безопасность я бы если надо за плату сколько угодно принял бы участие. Вы супер учитель. Спасибо вам за труд. В моём пути в айти занимете большую роль. Пожалуйста продолжайте учить нас. Ведь быть начтоящим учителем это благое дело. Вы супер! Я сам безопаснике учусь. Если можно возьмите меня в свою команду учеников.
Дай бог тебе здоровья, добрый ты человек ! )
Какой же крутой лектор, приятно смотреть!
Спасибо Вам за лекцию!
Прошёл PCAP от института Pyhton. Эти лекции очень хорошо дополняют материал.
Спасибо тебе препод, по больше бы таких
Спасибо, было очень полезно, в школе и университете 20 лет назад такого не рассказывали:)
Блин... на самом интересном месте: "ну всё, отпускаю вас", - я аж расстроился.
Смотрим следующую серию!
Лекция супер, мне очень понравилось!)
Смотрю одну за другим лекции. Да, действительно лектор - маэстро.
смотрю в декабре 20 года, лекции бомба
Спасибо за лекцию. Вдохновленная ей, написала мини-конвертер из 10-чной системы в 2,8 и 16-ю. x=input("Введите число в десятичной системе счисления: ")
a=input("Введите в какую систему счисления его перевести: 2 8 16: ")
if a == "2":
x=bin(int(x))
a=str(x)
a = a[2:]
print("Это число в двоичной системе счисления: " + a)
elif a == "8":
x=oct(int(x))
a=str(x)
a = a[2:]
print("Это число в восьмеричной системе счисления: " + a)
elif a == "16":
x=hex(int(x))
a=str(x)
a = a[2:]
print("Это число в 16-ричной системе счисления: " + a)
else:
print("Ошибка")
что это hex bin oct
Очень интересно и понятно! Спасибо!
спасибо за лекция я уже не могу оторвется на работа смотрю
Спасибо за лекцию!
Какой классный учитель.
Большое спасибо за лекции!!!!!!!!!!!
Если бы мне так объясняли в институте в свое время, я, наверняка, как минимум нормально учился. Спасибо за труд.
По нулям справа слева, побитный сдвиг влево >(здесь уже деление). Иногда можно использовать для ускорения вычислений. Думаю будет в тему)
просто офигенно! и просто и офигенно!
Запись числа в программе, переводящей одно число в другую будет перевернутой.
А в остальном приятно вспомнить основы)
Добрый день. Я тоже заметила эту ошибку, но переделать код не получилось самостоятельно. Как можно исправить, не подскажите?
@@svetakhamaganova6302 можно воспользоваться методом строки reverse()
@@ArtJug спасибо
"-Ты ничего мне не должен.." Супер :)
замечательный материал, спасибо!
Спасибо за бесплатные знания!
Прекрасные лекции. Живо, интересно, озорно. Наконец в 40 лет я понимаю что и зачем я изучаю. Жаль. только что я не занялся этим 5\10 лет назад. А еще лучше в середине школы не начал готовиться к таким курсам. Только в моем городе даже сейчас такому не учат, не говоря уж про 1999год моего окончания школы.
спасибо за лекцию :)
Спасибо огромное
Вы мне очень помогли!)
Если бы все мои учителя были бы такими, я был бы невероятно умным)
Благодарю.
Алгоритм из конца урока дописал. Получается полноценный калькулятор, переводит число из любой системы счисления в любую другу систему счисления. Делает это без внутренней функции int в python, только своими силами. n - система счисления может быть больше 36 (выйдет из англ словаря, пойдет дальше по таблице unicode).
def transition(x, base, digit = ""):
while x>0:
if x%base>9: digit = chr(x%base+87).upper() + digit
else: digit = str(x%base) + digit
x //= base
print(f"Возвращаем готовый результат = {digit}")
def any_to_10(source, n, formula=0):
source = list(source)
for i in range(len(source)):
if n10 and source[i] != '0':
if source[i].isalpha(): formula += int(ord(source[i].lower())-87) * (n**(len(source)-(i+1)))
else: formula += int(source[i]) * (n**(len(source)-(i+1)))
return formula
print("Введите n-ичность счисления для вашего числа: ", end="")
r = int(input())
print("Введите соответствующее число для конвертации: ", end="")
x = any_to_10(input(), r)
print("Введите в какую систему счисления перевести ваше число: ",end="")
base = int(input())
transition(x, base)
Молодец, доступно, доходчиво. Спасибо
А я как раз задумывался сегодня "Почему в минуте именно 60 секунд???" и тут как раз эта лекция! Брааааво!
Классный препод. Молоток
хотя и знаю 90% поскольку прошел материал больше года назад , но чертовски интересно слушать лектора ^_^
Ничего не понимаю, но интересно слушать))) бывает же.
Мы это в школе проходили, приходилось самому допирать. Сейчас пересматриваю, вспоминаю что да как
s bogom :)))))) Timofei, spasibo za lektsii!
лучшее объяснение систем счисления
Прекрасная работа лектора.
Бляяя, просто удовольствие тебя слушать! Твои лекции успокаивают в наши длинные, тёмные, зимние Аляскинские вечера!
Третье десятилетие 21-го века... (ну, или последний год 2-го, это как считать)
Преподаватель вынужден пачкаться мелом, и "извазюканным" ходить перед студентами.
Плоские экраны, да даже белая доска и стираемые маркеры решили бы проблему и не ставили бы человека в такую ситуацию. Но нет, мелки.
А в первой лекции даже мелки не пищущие были, наколотые в ближайшем карьере.
Лекция замечательная, смотрю подряд, запоем!
Поверьте мне, иногда классика решает.
Спасибо Тимофей!
Ты самый лучший препод!
тяжко усваивается эта лекция... спасибо в любом случае!