Ещё на баг в тексте наткнулся: "хэш-таблицы (map и multimap)". Контейнеры map и multimap - это ни разу не хеш-таблицы, у них внутри сбалансированные деревья. А на хеш-таблицах реализованы unordered_map и unordered_multimap.
"У сотрудника не было фиксированного графика, выходных и отпуска, но была определённая задача, которую ему нужно решить". По-моему, с точки зрения "эффективных менеджеров" сразу напрашивается мысль выдавать такой объём и сложность задач, чтоб у сотрудников на их решение часов так по 12 в сутки уходило без выходных. А уж хочет он это днём делать, или по ночам - как ему комфортнее )
Клавиши со стрелками вверх-вниз не уменьшенного размера, да ещё и отдельные клавиши PgUp, PgDown, Home, End. Удобно, не часто по нынешним временам такое встречается.
Можно в конец каждого слова добавить спецсимвол, который не может встретиться ни в каком слове (скажем, '$'). Тогда все слова будут гарантированно кончаться в листьях. При этом не нужно будет отмечать, какие промежуточные узлы являются концами слов, и алгоритмы слегка упрощаются.
Что-то параметров маловато. Например, в HTTrack, Teleport и т.п. можно указывать маску файлов для скачивания, глубину перехода по ссылкам и кучу всего ещё.
# Parse date strings into datetime objects
processed_data = [
{**tweet, "date": datetime.strptime(tweet["date"], "%b %d %Y")}
for tweet in tweet_data
]
Как-то даже не сразу сообразил, как это работает. При создании словаря ключ "date" у нас будет в двух экземплярах - один распакуется из **tweet, а второй явно написан. И в результат попадёт значение именно из него, так как он стоит правее.
Если говорить про SIMD, стоит ещё MMX вспомнить - как первую подобную технологию в x86. Затем уже появились разные версии SSE, затем AVX. В MMX несколько странноватое решение было реализовано - использовать те же самые восемь регистров, что и в FPU. В итоге нельзя было одновременно пользоваться командами FPU и MMX. А в SSE уже назависимые регистры сделали.
В обычном решете Эратосфена внешний цикл можно делать до корня из maxNum, а внутренний цикл начинать с i * i. Так будет слегка быстрее - процентов на 30.
unordered_map тоже не идеален. Для интереса сравнил с гугловским dense_hash_map. Вставка 10 миллионов чисел, затем их же поиск. Результаты на стареньком ноутбуке с Core i5-3317U 1.7GHz:
Если допустимо изменить порядок элементов во входных массивах, то можно их отсортировать и найти общие элементы за один проход без дополнительной памяти.
С учётом времени на сортировку будет время O(n*log(n)). Немного похуже, чем с хеш-таблицей, но гораздо быстрее, чем решение "в лоб".
Ещё на баг в тексте наткнулся: "хэш-таблицы (map и multimap)". Контейнеры map и multimap - это ни разу не хеш-таблицы, у них внутри сбалансированные деревья. А на хеш-таблицах реализованы unordered_map и unordered_multimap.
Виртуальная машина со старой операционкой, проброс usb в неё. У меня на работе древний сканер только так получилось настроить.
"У сотрудника не было фиксированного графика, выходных и отпуска, но была определённая задача, которую ему нужно решить".
По-моему, с точки зрения "эффективных менеджеров" сразу напрашивается мысль выдавать такой объём и сложность задач, чтоб у сотрудников на их решение часов так по 12 в сутки уходило без выходных. А уж хочет он это днём делать, или по ночам - как ему комфортнее )
Что за диплом такой зимой, интересно. Обычно же их в июне защищают. Или это давно было.
Одно время пользовался https://citeseerx.ist.psu.edu/. Но сейчас он как-то странно работает: если поставить сортировку по году, то поиск виснет
Клавиши со стрелками вверх-вниз не уменьшенного размера, да ещё и отдельные клавиши PgUp, PgDown, Home, End. Удобно, не часто по нынешним временам такое встречается.
Можно в конец каждого слова добавить спецсимвол, который не может встретиться ни в каком слове (скажем, '$'). Тогда все слова будут гарантированно кончаться в листьях. При этом не нужно будет отмечать, какие промежуточные узлы являются концами слов, и алгоритмы слегка упрощаются.
Например, многие преподаватели во время пандемии записывали дистанционные лекции на хороший микрофон и выкладывали в открытый доступ
Что-то параметров маловато. Например, в HTTrack, Teleport и т.п. можно указывать маску файлов для скачивания, глубину перехода по ссылкам и кучу всего ещё.
Как-то даже не сразу сообразил, как это работает. При создании словаря ключ "date" у нас будет в двух экземплярах - один распакуется из **tweet, а второй явно написан. И в результат попадёт значение именно из него, так как он стоит правее.
Если говорить про SIMD, стоит ещё MMX вспомнить - как первую подобную технологию в x86. Затем уже появились разные версии SSE, затем AVX.
В MMX несколько странноватое решение было реализовано - использовать те же самые восемь регистров, что и в FPU. В итоге нельзя было одновременно пользоваться командами FPU и MMX. А в SSE уже назависимые регистры сделали.
Кроме float("inf"), также есть float("-inf").
Еще в двух местах знак деления потерялся: "у дроби 13" -> "у дроби 1/3", и дальше аналогично про 1/10.
В PocketBook отправка книг на e-mail тоже есть.
Встречал эту задачу в книге аж 1990 года - Арсак "Программирование игр и головоломок". Там она обозвана "дьявольской последовательностью" ;)
В обычном решете Эратосфена внешний цикл можно делать до корня из maxNum, а внутренний цикл начинать с i * i. Так будет слегка быстрее - процентов на 30.
unordered_map тоже не идеален. Для интереса сравнил с гугловским dense_hash_map. Вставка 10 миллионов чисел, затем их же поиск. Результаты на стареньком ноутбуке с Core i5-3317U 1.7GHz:
unordered_set - 7.15 секунд
dense_hash_map - 1.75 секунды
У меня на ультрабуке Fujitsu тоже крепление петли ломалась. К счастью, больше ничего не повредилось. Починил суперклеем с содой.
Если допустимо изменить порядок элементов во входных массивах, то можно их отсортировать и найти общие элементы за один проход без дополнительной памяти.
С учётом времени на сортировку будет время O(n*log(n)). Немного похуже, чем с хеш-таблицей, но гораздо быстрее, чем решение "в лоб".