Size: a a a

Хирьянов Т.Ф., Практика программирования на Python 3 (2019)

2020 June 09

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
понимаю, я бы тоже всё забыл, но раз уж такое дело, то почему бы не повспоминать)
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Mơкpенькaя kиcoньka
2 пункт это про бинарный поиск?
Даются неотсортированные списки.  
Я использовала sort и через for индексация, сначала один, а потом второй список.
нет, бинарного поиска не нужно, два указателя быстрее будет.
Предварительно отсортировав оба списка мы бежим циклом for только по отсортированному списку селений(выше написали что можно создать список где будет в каждой ячейке лежать кортеж вида (расстояние, индекс)).
На каждом шагу у нас есть расстояние селения и нам нужно иметь два указателя это две переменные одна указывает на ближайшее бомбоубежище к селению со стороны старта, другая на ближайшее бомбоубежище со стороны финиша. Так как бежим по отсортированному списку то они постоянно будут потихоньку обновляться и все значения ниже текущего минимума(первого указателя) нас не интересуют а также все значения текущего максимума(второго указателя) нас также не интересуют. Обновлять их достаточно просто, для удобства можно создать мини функцию в которую если передавать текущий указатель (а также его индекс в отсортированном списке) и текущее селение то будет линейно бежать по списку стартуя с текущего указателя и возвращать нужный новый указатель.
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
вот я зарисовал в общем. большой квадрат - наше окно размером 10 на 10. видим прямую y = kx + b, по ней двигается наш шарик, отложим прямую с противоположным углом наклона y = -kx + b. теперь мы имеем полное право на параллельный перенос прямой вдоль перпендикуляра, я это показал пунктиром, в итоге у нас отложилась прямая параллельная y = -kx + b, но имеющая общую точку с прямой y = kx + b, эта общая точка - точка столкновения шарика с окном, значит она служит концом предыдущего вектора движения шарика и началом следующего, вот такие пироги, сорямба за кривой чертёж как смог
пытаться выразить движение в форме y=f(x) - плохая идея.
вопервых сложно, например когда по x он не двигается, а падает равноускоренно вниз, невыражается этой формой.
но несложно будет записать в параметрическоu:
x=x(t)
y=y(t)
достаточно хранить вместе с объектом его координаты и две компоненты скорости.
отражение от вертикальных или горизонтальных препятствий в этом случае очень простое - меняется направление (знак) соотв. скорости.
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
😍
Спустя 11 лет от 8 класса ничего не осталось:(
жаль у нас интернета нет
источник

m

mr.slavik in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
вот был бы интернет - могли бы в нем любой учебник найти
источник

😍

😍 in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
mr.slavik
жаль у нас интернета нет
что ты этим хочешь сказать?
опять самые очевидные вещи?
источник

OM

Oleg Makarikhin in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
😍
что ты этим хочешь сказать?
опять самые очевидные вещи?
источник

.

. in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Учите английский?
Анонимный опрос
16%
да, начинающий уровень beginner
18%
да, элементарный уровень elementary
45%
да, выше уровень
21%
нет
Проголосовало: 38
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Oleg Makarikhin
пытаться выразить движение в форме y=f(x) - плохая идея.
вопервых сложно, например когда по x он не двигается, а падает равноускоренно вниз, невыражается этой формой.
но несложно будет записать в параметрическоu:
x=x(t)
y=y(t)
достаточно хранить вместе с объектом его координаты и две компоненты скорости.
отражение от вертикальных или горизонтальных препятствий в этом случае очень простое - меняется направление (знак) соотв. скорости.
почему не получится? по формуле там тангенс будет нулём вроде значит он повернёт на 180 ровно
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Igor Antonov
нет, бинарного поиска не нужно, два указателя быстрее будет.
Предварительно отсортировав оба списка мы бежим циклом for только по отсортированному списку селений(выше написали что можно создать список где будет в каждой ячейке лежать кортеж вида (расстояние, индекс)).
На каждом шагу у нас есть расстояние селения и нам нужно иметь два указателя это две переменные одна указывает на ближайшее бомбоубежище к селению со стороны старта, другая на ближайшее бомбоубежище со стороны финиша. Так как бежим по отсортированному списку то они постоянно будут потихоньку обновляться и все значения ниже текущего минимума(первого указателя) нас не интересуют а также все значения текущего максимума(второго указателя) нас также не интересуют. Обновлять их достаточно просто, для удобства можно создать мини функцию в которую если передавать текущий указатель (а также его индекс в отсортированном списке) и текущее селение то будет линейно бежать по списку стартуя с текущего указателя и возвращать нужный новый указатель.
бинарный поиск будет быстрее ведь. если у нас отсортирован список то сразу прыгаем в середину, сравниваем расстояние от дороги до селения и убежища, всё что не нужно уже отрезали половину и так повторяем пока левый указатель больше правого не станет
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
бинарный поиск будет быстрее ведь. если у нас отсортирован список то сразу прыгаем в середину, сравниваем расстояние от дороги до селения и убежища, всё что не нужно уже отрезали половину и так повторяем пока левый указатель больше правого не станет
ну разве что когда селений в несколько раз меньше чем бомбоубежищ
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
а если они равномерно распределены и их там под миллион, то запускать бинарный поиск со всего списка вместо линейного с текущего указателя не уверен что оправдано
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
в любом случае если это не олимпиадного уровня задачка то должно пройти итак
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
было бы странно если они были равномерно распределенны, но это уже вопрос не алгоритма совсем)
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ну равномерно я имею ввиду что количество селений не в 100 раз меньше чем бомбоубежищ, причем даже если итак то по списку бомбоубежищ все равно мы бежим условный один раз
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ну я понял, да. бинарный поиск вовсе необязателен
источник

IA

Igor Antonov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
и по идее если селений наоборот в несколько раз больше чем бомбоубежищ, тогда уже бинарный поиск не особо нужен ведь убежища почти не будут меняться
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
ага
источник

КК

Кирилл Картвелишвили... in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Кирилл Картвелишвили
почему не получится? по формуле там тангенс будет нулём вроде значит он повернёт на 180 ровно
до меня дошло, что не повернёт, потому что ноль и минус ноль это собственно одно и тоже почти
источник

YT

Yoqub Talatov in Хирьянов Т.Ф., Практика программирования на Python 3 (2019)
Здравствуйте, у меня #вопрос.
У меня есть задача. Я должен перенести API из PHP в Django.
Кто-то пытался перевести?Спасибо за ответ
источник