Алексей
Я забыл уже
Алексей
А сам ключ уже в argv [1]
Артем
Ребят, посоветуйте что почитать - стоит задача синхронизировать работу двух модулей программы. Первый модуль занимается добычей информации, второй - ее обработкой. Как правильно настроить их работу, чтобы второй модуль включался в работу, только если первый закончил. Я пока что ничего лучше, чем распределить по времени не придумал - типа первый работает первую половину часа, второй - во вторую. Связываются через БД.
Gravity
Но вот насчет применения я вообще хз
Алексей
Но вот насчет применения я вообще хз
Ключей? Ну как напишешь, у меня ключи -s (sending), -b (binding) и ключ по ТЗ -к
Алексей
Ну да, pistgre вообще клевая субд. Кстати, что это?
Спасибо, что обратил внимание на мою опечатку 😉
Алексей
он уже отредактировал)
Но мы то знаем 😉
Max
Ну от уровня офк зависит
Mikhail
Спасибо, что обратил внимание на мою опечатку 😉
А, так речь про этот обрезанный Постгрес, который не умеет, например, в однонаправленные композитные индексы и в кастомные движки , по сравнению с MySQL, понял
Алексей
А что, я когда решил, мне даже понравилось
Igor
Насчет профита спорно
Это тренировка работы с массивами) не больше, к алгоритмам никакого отношения не имеет.
Алексей
ну вот вначале вполне полезное дело
Так я ж и говорю модуль 10 примерно был
Mikhail
Спасибо, буду иметь ввиду :-)
Я к тому, что говорить, что одно «обрезанное» некорректно, ибо MySQL имеет некоторые преимущества над PostgreSQL, тот же банальный read-performance.
Igor
Так я ж и говорю модуль 10 примерно был
Дай свой код подсчета нулей в факториале на длинке
Алексей
Дай свой код подсчета нулей в факториале на длинке
У нас про факториал в этой задачи ни слова не было. Я нашел кстати 9 модуль. Сейчас 22, всего 40 конечно это на начальном уровне
Gravity
а что за 9 модуль?
Алексей
Pashquette
Мужики, подскажите, как это решить: В университетскую столовую пришли трое студентов купить пирожки. Один хочет купить треть всех имеющихся в столовой пирожков и еще 2 пирожка. Другой хочет купить четверть от всех имеющихся пирожков и ещё 3 пирожка. А третий хочет купить пятую часть всех пирожков и ещё 8 пирожков. Если все трое купят столько пирожков, сколько планируют, то в столовой как раз закончатся все пирожки. Сколько пирожков есть в столовой?
Gravity
думал множества;(
Pashquette
Не, это без кода, просто задачка.
Pashquette
Типа (1/3х + 2, 1/4х + 3, 1/5х + 8) = х?
Igor
Да сложить
Pashquette
39?
Почему 39?
Алексей
Почему 39?
Не ошибся, я считал считал получается 2+3+8 = 25%
Pashquette
Не понимаю. 🧐
Mikhail
А кто такой однонаправленный составной индекс? Как это гуглить?
Делаешь композитный индекс по полям a и b. Постгрес создает два композитных индекса ab и ba. MySQL создаст только ab, для создания ba ты должен явным образом указать, что создаешь индекс по полям b и a.
Mikhail
Втф а зачем он два создает? А если 3 поля что все перестановки?
Потому что составной индекс - это просто конкатенация двух полей.
Алексей
Не понимаю. 🧐
Треть - 30%, 1/4 - 25%, 1/5 - 20% сумма процентов 75% остаток известен 13 шт и это оставшиеся 25%. Я неправ?
Pashquette
Треть - 30%, 1/4 - 25%, 1/5 - 20% сумма процентов 75% остаток известен 13 шт и это оставшиеся 25%. Я неправ?
Так мы не знаем их количество. Или я чего-то уже вообще не понимаю. Я не могу решить ее, я разложил в уравнение, а дальше завис.
Igor
Все так
Звучит как полная дичь. Верится с трудом. Лан как нить потом загуглю, ща на телефоне. Написанно что дефолтный метод битри и поиск по левым полям быстрее, так что по дефолту похоже "как езде"
Pashquette
Так треть и 2 четверть и 3 и пятую часть и 8
То есть вот эти целые пирожки, они не учитываются в общее количество? 🤔
Pashquette
Ты в каком классе?
Ну игорь, брат, ты бы, вместо того, чтобы смеяться, лучше бы помог. Я пожилой человек, я этих математических задач в глаза не видел лет 20. :(
Pashquette
А ответ есть?
Нет, в том и дело.
Алексей
Нет, в том и дело.
Блин интересно просто, 13 четверть это правильно или не правильно
Igor
Типа (1/3х + 2, 1/4х + 3, 1/5х + 8) = х?
x/3 + 2 + x/4 +  3+ x/5 + 8 = х (*60) 20x + 120 + 15x + 180 + 12x + 480 = 60x 120 + 180 + 480 = (60 - 20 - 15 -12)x 780 = 13x x = 780/13 x = 60
Igor
Но вообще если пирожков целое число продают то они кратны 3 4 и 5 значит кратны 60 можно было просто перебирать
Igor
Ну игорь, брат, ты бы, вместо того, чтобы смеяться, лучше бы помог. Я пожилой человек, я этих математических задач в глаза не видел лет 20. :(
Вопрос был не в этом... Есть такая дичь как арифметика, там дети решают подобные задачи без уравнений, вот там иногда можно голову сломать
Mikhail
Звучит как полная дичь. Верится с трудом. Лан как нить потом загуглю, ща на телефоне. Написанно что дефолтный метод битри и поиск по левым полям быстрее, так что по дефолту похоже "как езде"
Вот ведь Фома неверующий! Давай посмотрим. Создаем таблицу и индекс: CREATE TABLE test1 ( a int, b int, c int, d int ); CREATE INDEX test1_idx_a_b_c ON test1 (a, b, c); Делаем запросы: EXPLAIN SELECT * FROM test1 WHERE a=1; EXPLAIN SELECT * FROM test1 WHERE b=1; EXPLAIN SELECT * FROM test1 WHERE c=1; EXPLAIN SELECT * FROM test1 WHERE d=1; Результат MySQL, индекс используется только для кейса a=1 (потому что у нас индекс по полям a,b,c, соответственно при конкатенации если в запросе нет a, то мы не можем брать индекс test1_idx_a_b_c) Пруф: https://www.db-fiddle.com/f/qRk35uu7CBEJsf7pFXWGTj/0 Теперь берем Postgres, для первых 3 запросов используется индекс test1_idx_a_b_c, внезапно. Потому что он внутри состоит из всех пермутаций. Вот пруф: https://www.db-fiddle.com/f/dKt3F8V3R3VNkXAC262aiF/0 Для постгрес вывел список индексов, чтоб показать, что это именно b-tree (а не GIST, например, в котором порядок не важен), следовательно создались все пермутации набора (a,b,c), иначе это сделать невозможно.
Mikhail
Вот ведь Фома неверующий! Давай посмотрим. Создаем таблицу и индекс: CREATE TABLE test1 ( a int, b int, c int, d int ); CREATE INDEX test1_idx_a_b_c ON test1 (a, b, c); Делаем запросы: EXPLAIN SELECT * FROM test1 WHERE a=1; EXPLAIN SELECT * FROM test1 WHERE b=1; EXPLAIN SELECT * FROM test1 WHERE c=1; EXPLAIN SELECT * FROM test1 WHERE d=1; Результат MySQL, индекс используется только для кейса a=1 (потому что у нас индекс по полям a,b,c, соответственно при конкатенации если в запросе нет a, то мы не можем брать индекс test1_idx_a_b_c) Пруф: https://www.db-fiddle.com/f/qRk35uu7CBEJsf7pFXWGTj/0 Теперь берем Postgres, для первых 3 запросов используется индекс test1_idx_a_b_c, внезапно. Потому что он внутри состоит из всех пермутаций. Вот пруф: https://www.db-fiddle.com/f/dKt3F8V3R3VNkXAC262aiF/0 Для постгрес вывел список индексов, чтоб показать, что это именно b-tree (а не GIST, например, в котором порядок не важен), следовательно создались все пермутации набора (a,b,c), иначе это сделать невозможно.
Перформанс тестить не буду, но, думаю, тут все очевидно
Igor
Вот ведь Фома неверующий! Давай посмотрим. Создаем таблицу и индекс: CREATE TABLE test1 ( a int, b int, c int, d int ); CREATE INDEX test1_idx_a_b_c ON test1 (a, b, c); Делаем запросы: EXPLAIN SELECT * FROM test1 WHERE a=1; EXPLAIN SELECT * FROM test1 WHERE b=1; EXPLAIN SELECT * FROM test1 WHERE c=1; EXPLAIN SELECT * FROM test1 WHERE d=1; Результат MySQL, индекс используется только для кейса a=1 (потому что у нас индекс по полям a,b,c, соответственно при конкатенации если в запросе нет a, то мы не можем брать индекс test1_idx_a_b_c) Пруф: https://www.db-fiddle.com/f/qRk35uu7CBEJsf7pFXWGTj/0 Теперь берем Postgres, для первых 3 запросов используется индекс test1_idx_a_b_c, внезапно. Потому что он внутри состоит из всех пермутаций. Вот пруф: https://www.db-fiddle.com/f/dKt3F8V3R3VNkXAC262aiF/0 Для постгрес вывел список индексов, чтоб показать, что это именно b-tree (а не GIST, например, в котором порядок не важен), следовательно создались все пермутации набора (a,b,c), иначе это сделать невозможно.
он сканируте диапазаоны индекса посмотри у тебя в эксплейне стоимость не от начала выше чем для a добавь индексы CREATE INDEX test1_idx_a_b_c ON test1 (a, b, c); CREATE INDEX test1_idx_b_c_a ON test1 (b, c, a); CREATE INDEX test1_idx_c_a_b ON test1 (c, a, b); и стоимость во всех трех индексах будет одинаковая
Igor
типа у нас есть паршиал сортед массив ... давайте по нему "прыгать"
Kraagesh
Igor
Перформанс тестить не буду, но, думаю, тут все очевидно
ну и эксплейны без данных это шляпа https://www.db-fiddle.com/f/dKt3F8V3R3VNkXAC262aiF/1 Вот смотри и нет никаких индексов. Просто при отсутствии данных он пытается что то выгадать на частичной сортировке.
Igor
Вернусь к этому чуть позже и отвечу, я думаю, что знаю в чем именно здесь подвох
For example, given an index on (a, b, c) This index could in principle be used for queries that have constraints on b and/or c with no constraint on a — but the entire index would have to be scanned, so in most cases the planner would prefer a sequential table scan over using the index. https://www.postgresql.org/docs/current/indexes-multicolumn.html
.
Можно вопрос, в 2023 году стоит ли начинать учиться на программиста, конкретнее на фронтенд разработчика. И что станет в будущем с этой профессией
Dmitry (Inock)
Вот подумалось. А вы тут все в математических классах учились? А в геометрии шарите? Щас задачку найду.
Dmitry (Inock)
Блин. Тут этот медленный режим.
Igor
Та геома это отдельная история ... геома точно не нужна программисту ;)