-
Notifications
You must be signed in to change notification settings - Fork 180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Все задания по курсу #1280
base: master
Are you sure you want to change the base?
Все задания по курсу #1280
Conversation
Алгоритм 3: | ||
Создать множество из списка | ||
|
||
Сложность: !!!. | ||
Сложность: O(len...). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
какая здесь итоговая сложность
for j in range(len(lst_obj)): # O(n) | ||
if lst_obj[j] in lst_obj[j+1:]: # O(n) | ||
return False # O(1) | ||
return True # O(1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
for i in range(len(lst_obj) - 1): # O(n) | ||
if lst_copy[i] == lst_copy[i+1]: # O(1) | ||
return False # O(1) | ||
return True # O(1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
|
||
|
||
print(find_min_number_first(list_of_numbers)) | ||
print(find_min_number_second(list_of_numbers)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
где какая сложность?
find_index = company_dict_values.index(max_value) # O(n) | ||
max_key = company_dict_keys[find_index] # O(1) | ||
print(max_key) | ||
company_dict_values_2.remove(max_value) # O(n) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
print('Такого волшебника не существует!') | ||
|
||
|
||
check_user_second(input('Ваше Имя на Эльфийском: '), input('Наколдуйте пароль: ')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
print(f'Всего стопок: {ExObject.stack_count()}') | ||
print(f'Тарелок в последней стопке: {ExObject.plates_in_last_stack()}') | ||
else: | ||
print('Ответ может быть y или n') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
elif option == "4": | ||
break | ||
else: | ||
print('Неверная команда!') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
return still_equal | ||
|
||
|
||
print(pal_checker("молоко делили ледоколом")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
calc() | ||
|
||
|
||
calc() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
|
||
|
||
def fun(num): | ||
global even, odd |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
глобал - антипаттерн
|
||
a = int(input('Введите число, которое требуется перевернуть: ')) | ||
print('Перевернутое число: ', end='') | ||
fun(a) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
|
||
|
||
n = int(input('Введите количество элементов: ')) | ||
print(f'Количество элементов - {n}, их сумма - {fun(n)}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
char_group(ascii_sym + 1) | ||
|
||
|
||
char_group() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
fun(i+1) | ||
|
||
|
||
fun() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
|
||
m = int(n * (n + 1) / 2) | ||
print(f'Значение функции 1+2+...+n, где n = {n} равно {fun(n)}. ' | ||
f'Что также равно функции n(n+1)/2 - {m}. Равенство выполняется!') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
div_list(range_list) | ||
div_dict(range_dict) | ||
|
||
print('Во всех случаях операции со словарем проходят дольше!') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
есть вопросы к проведению замеров
большинство операций словаря имеют сложность O(1) и дольше они выполняться не могут
посмотрите пример ДЗ
obj = pbkdf2_hmac(hash_name='sha256', | ||
password=user_data_first, | ||
salt=b'any_salt_2', | ||
iterations=100000) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
дублирование
|
||
|
||
user_data_second = input('Введите пароль еще раз для проверки: ').encode('utf-8') | ||
obj_2 = pbkdf2_hmac(hash_name='sha256', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
и опять дублирование
|
||
|
||
user_data = input("Введите строку состоящую только из строчных латинских букв: ") | ||
print(f"Количество подстрок: {len(substrings(user_data))}") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
new_web.get_page('https://habrahabr.ru/') | ||
new_web.get_page('https://google.com/') | ||
new_web.get_page('https://google.com/') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
""" | ||
Смена на цикл по парам номер_элемента - значение. | ||
нет операции обращения к элементу массива по номеру, следовательно быстрее. | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
здесь хорошо исп-ть LC
0.001513500000000001 | ||
0.0015310000000000046 | ||
0.0015724000000000016 | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Мемоизация не нужна
а почему мы разобрали на уроке
|
||
Победитель функция revers_3, написанная используя встроеные конструкции языка. Ее выполенение заняло 0.04 секунды. | ||
Большой разрыв по времени относительно других функиций и чем больше число, тем больше разрыв. | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
а четвертый ваш вариант?
func_4 использует модуль numpy, её приемущество в лаконичности кода, хоть и работает она медленнее чем func_3, | ||
но быстрее первых двух | ||
Время - 0.659 | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
Алгоритма Эратосфена O(n log(log(n)) | ||
Двойного цикл - O(n**2) | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
print('Предприятия, с прибылью выше среднего значения: ', | ||
[name for name, inc in income_y_dict.items() if inc > avg_income]) | ||
print('Предприятия, с прибылью ниже среднего значения: ', | ||
[name for name, inc in income_y_dict.items() if inc <= avg_income]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
реализовали через namedtuple, как мы и обсуждали на уроке
|
||
|
||
hex_calc() | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено как в примере
Удаление слева через list: 1.7133153 | ||
Удаление слева через deque: 0.002170500000000075 | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
OrderedDict проигрывает обычному словарю, кроме одного замера и то скорее всего случайно, но есть у него и плюсы, | ||
скорее всего в своих проектах иногда буду его использовать. | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
с каждым разом и уменьшает increment, но ускоряет процесс за счет еденичных повторений кода в отличие от первых | ||
двух функций. Использование этого варината обосновано в тех случаях, когда модуль numpy уже используется в проекте | ||
где либо еще, в противном случае использование приведет к лишнему весу приложения. | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
При этом sys.getsizeof показывает нам одинаковый размер: | ||
без директивы: 824464 | ||
с директивой: 824464 | ||
""" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
профайлер будет запускаться столько раз сколько будет запускать себя рекурсивная функция | ||
для избежания этого нужна другая функция запускающая рекурсию | ||
""" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
orig_list = [randint(-100, 100) for _ in range(10)] | ||
print(f'Оригинальный список: \n{orig_list}') | ||
print(f'Список, отсортированный методом "пузырька" в порядке убывания без доработки: \n{bubble_sort1(orig_list)}') | ||
print(f'Список, отсортированный методом "пузырька" в порядке убывания после доработки: \n{bubble_sort2(orig_list)}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
результаты неверные
ваш массив будет отсортирован еще до замеров
orig_list = [random()*50 for _ in range(count_of_elements)] | ||
print(f'Оригинальный список: \n{orig_list}') | ||
print(f'Список, отсортированный методом слияния: \n{merge_sort(orig_list)}') | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено как в примере
print('Медиана без сортировки: \n', my_median(orig_list)) | ||
print(f'Медиана после сортировки: \n {sorted_median}') | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
не прочитано ДЗ
"Массив размером 2m + 1, где m – натуральное число, заполнен случайным образом."
это важно, т.к. при сортировке медиана будет на позиции m
if my_string == decoded_str: | ||
print('Успешно!') | ||
else: | ||
print('Ошибка!') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
print(r.get_right_child().get_root_val()) | ||
r.get_right_child().set_root_val(16) | ||
print(r.get_right_child().get_root_val()) | ||
print(f'Глубина дерева: {r.get_depth()}') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
выполнено
В Урок6 task2 написал не совсем фундаментальный метод, но вполне действенный
В последнем задании Урок8 - task2 убрал комментарии, мне так удобнее было ориентироваться (листать меньше) :)