Выход Из Колеса Сансары, Экстремизм И Немного Зелени — Разбор Задач Из Буклета Gridgain На Конференции Joker 2018

19 и 20 октября в Санкт-Петербурге прошла конференция Joker — лучшее мероприятие для тех, кто любит то же, что и мы: крутые доклады, общение с продвинутыми экспертами по Java и головоломки.

Не будем расхваливать третий выпуск задач от GridGain ( 1 , 2 ), лучше процитировать отзывы участников: «Их задачи казались глупыми и не связанными с IT» «Задачи, как всегда, отличные (хоть я и не выполнил ни одну из них)» «Зависимость в проблемах» «Топовые задачи, как всегда» Публикуем, как и обещали, подробные решения.

Поместили под спойлер, чтобы те, кто пропустил конференцию, могли попробовать свои силы.



Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018



Проблема 1

Три месяца назад мы написали это задание, но в октябре 2018 года президент выступил с инициативой декриминализировать 282 статью, чему мы несказанно рады, но уже устали переделывать тексты.

Так что пусть все в этой задаче останется, как было.

* «Центр определенного письма» отслеживает размещение оскорбительных мемов, а также их лайки и репосты в социальных сетях.

В рамках цифровой трансформации целый офис сотрудников отдела мониторинга был заменен искусственным интеллектом.

Нововведение помогло быстро рассчитать вероятность перехода пользователей от лайков к репостам, чтобы дело можно было успешно довести до суда.

Ранее обвинительный приговор по заявлению «Центра одной буквы» достигался с вероятностью 90% в течение 192 дней.

Автоматизация процесса довела показатели до 12 дней с вероятностью 99,9%.

Вопрос: Во сколько раз благодаря инновационному подходу увеличилась конверсия мемов в осуждения за 282, если частота предложений имеет экспоненциальное распределение? Решение проблемы 1 *Назвав автора цитаты и работы на нашем стенде, вы сразу же получите подарок.

Конечно, это Юрий Хой (Клинских), «Сектор газа» и трек «Бомж».

Согласно исходному условию, поскольку частота предложений имеет показательное распределение, то до и после внедрения робота имеем следующие выражения для оценки вероятности того, что предложение было вынесено за время ≤ t:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Где

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

– неизвестные параметры, определяющие частоту вынесения приговоров, t – параметр времени, по условию получается, что:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Из этих уравнений очень легко выражаются параметры

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018



Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Исходя из предположения, что количество судимостей и количество мемасиков имеют линейную зависимость, можно сделать вывод, что соотношение

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

просто дает желаемое значение:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018



Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018



Проблема 2

С точки зрения буддиста Василия, код совершенен не тогда, когда к нему нечего добавить, а когда ничего нельзя убрать.

Руководствуясь этой идеей, наш Василий решил улучшить EpsilonGC и явил миру Dzen-GC — продукт совершенной мысли, который не только не умеет очищать кучу памяти, но даже не позволяет ее выделить.

Очевидно, что размещение в JVM с помощью этого инновационного GC возможно только в стеке и только для примитивных типов.

Для тестирования нового функционала Василий решил написать на Java функцию, которая находит режим по 6 значениям (режим — это значение в наборе наблюдений, которое встречается чаще всего), то есть имеет следующую сигнатуру:

  
  
   

public static int mode(int n0, int n1, int n2, int n3, int n4, int n5)

Чтобы приблизиться к просветлению, Василий не стал объявлять в своем коде дополнительные локальные переменные и методы, а также программировал только мизинцем левой ноги.

Задача: помогите Василию реализовать эту функцию (все пальцы разрешены).

Решение проблемы 2 Попробуем разобраться, как можно было бы решить эту проблему, если бы не было таких жестких ограничений.

Скажем так, значения передаются в массиве, и дополнительную память желательно не использовать (но немного можно).

Затем отметим варианты, использующие Map , и обратите внимание, что искать режим удобнее всего в отсортированном массиве: если значение повторяется, все дубликаты находятся рядом.

Мы отсортируем массив и за один проход (и две переменные) найдем значение с максимальным количеством повторений.

Теперь заметим, что: 1) Вы можете сортировать значения рекурсивно.



// Expectation: if there are more than one mode, we are free to return any of them. // 2,2,3,3,4,4 has 3 modes : 2,3,4. I expect that 3 is correct answer. public static int mode (int a, int b, int c, int d, int e, int f){ // If arguments are not sorted, let's sort them with bubble sort :) if (a > b) return mode(b,a,c,d,e,f); if (b > c) return mode(a,c,b,d,e,f); if (c > d) return mode(a,b,d,c,e,f); if (d > e) return mode(a,b,c,e,d,f); if (e > f) return mode(a,b,c,d,f,e);

2) У нас есть только 6 отсортированных значений.

3) Если значение повторяется 3 раза (половина всех значений) - это уже мода! 3.1) Если нет, но есть 2 повтора - значит это мод! 3.2) Если повторяющихся значений нет, то любое значение является модой.



// Check for mode with 3+ repeats. 3 repeats is enough to say value is a mode (3 is half of 6).

// Since args are sorted, a == b && b == c is the same as a == c; if (a == c) return a; if (b == d) return b; if (c == e) return c; if (d == f) return d; // Check for 2 repeats. if (a == b) return a; if (b == c) return b; if (c == d) return c; if (d == e) return d; if (e == f) return e; return f; }

Строго говоря, у проблемы может быть много решений, но нам понравилось это, как самое простое и гармоничное.



Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018



Проблема 3

Два наркомана решили выбраться из Матрицы и выяснить, кто из них Избранный.

Для этого они получили 1 упаковку синих и 4 упаковки красных таблеток (пачки одинакового размера), а для усиления эффекта решили запить их зеленкой.

Внезапно выяснилось, что из-за сбоя в Матрице (так думали наркоманы) их лица, изначально имевшие цвета RGB #2D241D и #F4E3E1, стали меняться в зависимости от количества употребленных таблеток и зеленки: каждая таблетка( или 1 мл зеленки) линейно увеличивает количество соответствующих цветов на лице наркомана.

При этом значение каждой RGB-компоненты не может превышать #FF, то есть дальнейшее использование таблеток или зеленки не имеет никакого эффекта.

Изначально было несколько полных флаконов Зеленки по 20 мл, всего в 2 мл меньше, чем общее количество таблеток в штуках.

После события по выходу из Матрицы, в котором ел второй наркоман Поскольку красных таблеток на 54 больше, чем первых синих, у наркоманов ничего не осталось.

Вопрос: сколько таблеток и зеленки употребил каждый наркоман, если в итоге на их лицах были цвета #F0FF6B и #FFFEFF соответственно, а известно, что зеленка в 3 раза сильнее красных таблеток, которые, в свою очередь, в 2 раза сильнее слабее синего? Решение проблемы 3 Для начала выберем среди итоговых значений цветов только те, которые строго меньше 0xFF, поскольку по соглашению за значение 0xFF мы можем дать только нижний предел используемого усилителя цвета.

Эти значения — 0xF0, 0x6B и 0xFE. Получаем следующие уравнения:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

или

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Здесь k – коэффициент действия красных таблеток,

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

, - количество израсходованных бустеров (таблетки измеряются в штуках, зеленка - в миллилитрах) соответствующего цвета соответствующим потребителем.

Далее мы знаем, что второй съел красных таблеток на 54 больше, чем первый синий, всё просто:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Другое уравнение получается из условия зависимости количества таблеток от миллилитров бриллиантовой зелени:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Также мы имеем взаимосвязь между красными и синими табличками:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Кроме того, мы знаем, что зеленки было 20 мл:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

, где z — неотрицательное целое число.

Если исходить из того, что k целое и таблетки едят целиком (зелень можно пить сколько угодно), то подходит единственный ответ:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018



Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Его можно получить достаточно просто, например, используя метод, описанный ниже.

У нас есть соотношение

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

.

Единственные две факторизации числа 39 — это {1, 39}, {3, 13}.

Таким образом, k может принимать значения только из набора {1, 3, 13, 39}.

Давайте попробуем значение «3».



Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

Но в то же время

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

должно быть кратно 20, что неверно для значения (79,5 + 3).

Значения «13» и «39» устраняются точно так же.

Единственное значение, которое остается для k, — это единица.

Подставив его, мы не приходим к противоречиям и получаем ответ. Фактически, поскольку нигде в задаче не сказано, что коэффициент линейного приращения k красной RGB-компоненты является целым числом, получается целое семейство решений, *даже* если предположить, что зеленку пьют только в объемы, кратные 1 мл, причем таблетки расходуются целиком (что также не оговаривается отдельно):

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018



Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

n — неотрицательное целое число.

Чтобы получить это семейство, нужно избавиться от k в первых трёх уравнениях, переписав их, например, так:

Выход из колеса Сансары, экстремизм и немного зелени — разбор задач из буклета GridGain на конференции Joker 2018

после чего решить систему линейных диофантовых уравнений (естественно, включая в нее остальные уравнения, приведенные к нужному виду).

Если не считать, что зеленка расходуется только в объемах, кратных миллилитру, то получим нелинейную систему диофантовых уравнений, принимая числитель и знаменатель g1 и g2 (которые, очевидно, должны быть рациональными) как неизвестные целые числа.

Если решить задачу в самом общем виде (все значения непрерывны), то решений будет еще больше.



Победители

Алексей Рыжиков и Валентин Шипилов правильно решили все задачи.

Призы также получили Алексей Галкин, Антон Блинов, Илья Перевозчиков и еще несколько участников.

Поздравляем! Теги: #математика #Занимательные задачи #задачи для программистов #развлекательные задачи #jokerconf #joker2018 #задачи #задачи и решения

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.