Как стать автором
Обновить
10
0
Отправить сообщение

Из этого перевода вообще ничего не понятно. Спасибо что немного пояснил. На сколько я помню, для создания голограмм используются голографические фотопленки. Если обычные пленки имеют зернистость 100 зёрен на миллиметр, то голографические 1000. Я все жду, когда же плотность пикселей на экране достигнет такой же величины. Сейчас на моем телефоне примерно 15 точек на мм. Видимо не дождусь (

Скажу как пользователь. Я не хочу каждый раз устанавливать приложения на все свои устройства. Я не хочу устанавливать приложение, если мне нужно его только попробовать. Мне нужно было быстро нарисовать схему. Из десятков программ нужно выбрать ту, что мне подходит. И больше мне эта программа никогда не понадобится. В браузере все это гораздо удобнее. Открыл сделал, закрыл и забыл.
Скажу как программист. Не нужно рендерить большой список. Достаточно отображать только то, что видно в текущий момент на экране. Виртуальные списки и все такое. Приложения в браузерах могут работать быстро.

Ностальгия! В 2003 году мне показали этот холодильник ) и на следующий день я принес решение. Пригодились только что полученные знания по дискретке и логике. Было очень круто применить на практике знания, которые только на днях получил в институте. До сих пор горжусь. Не припомню, чтобы ещё когда то пришлось применить эти знания для решения какой-нибудь задачи ))

Все что в статье смотрел. А вот некоторые вещи из комментов нет! Спасибо! Будем смотреть.

Какие-то очевидные вещи описаны. Начал делать веб-приложение с нуля год назад. Серверная часть уже существовала лет 15. Сделал прокси как раз для этих очевидных вещей типа агрегации запросов и т.д. Прокси на .net. Свагером генерю сразу клиента на тайпскрипте. Детский сад.

Во! О чем и я говорю. Если это обфускация, то очень интересная. Хотелось бы, конечно подробностей про эти решения.
Да нет, выглядит как очень умело замаскированное решение. Количество мест, из которых вызываются эти функции (sort) совпадает.
Можно взять один код и каждой его строке сопоставить строку из второго. Это не тоже самое о чем вы говорите.
Спасибо за конкурс!
Я тут все никак с дублями не успокоюсь :) Написал программку. Вот что получилось по таблице с предварительными результатами (место, хэш, список дублей: место-коэффициент совпадения):
Список дублей
— 4 5b6194d9adb0280402fd774d
7 — 305
6 — 305
— 6 5b6194f3adb0280402fd774e
7 — 2615
4 — 305
— 7 5b6194a3adb0280402fd774c
4 — 305
6 — 2615
— 17 5b64e7f2adb0280402fd77ea
27 — 3403
71 — 308
39 — 308
35 — 3403
26 — 2750
— 19 5b61aac7adb0280402fd774f
20 — 1172
— 20 5b61b487adb0280402fd7751
19 — 1172
— 26 5b64eb06adb0280402fd77f3
27 — 2750
17 — 2750
71 — 321
39 — 321
35 — 2750
— 27 5b64e7baadb0280402fd77e8
17 — 3403
71 — 321
39 — 321
35 — 5518
26 — 2750
— 31 5b646257adb0280402fd779e
66 — 3639
— 35 5b64eaabadb0280402fd77f2
27 — 5518
17 — 3403
71 — 321
39 — 321
26 — 2750
— 36 5b64575dadb0280402fd7794
63 — 1737
— 39 5b64e9c6adb0280402fd77ef
138 — 535
27 — 321
17 — 308
71 — 3187
35 — 321
26 — 321
— 46 5b649223adb0280402fd77b3
62 — 609
51 — 609
58 — 609
— 51 5b649339adb0280402fd77b5
62 — 6180
46 — 609
58 — 2352
— 58 5b64b128adb0280402fd77c8
62 — 2352
46 — 609
51 — 2352
— 62 5b5f368eadb0280402fd7705
46 — 609
51 — 6180
58 — 2352
— 63 5b648f06adb0280402fd77af
36 — 1737
— 66 5b645263adb0280402fd7790
31 — 3639
— 71 5b64e93badb0280402fd77ee
27 — 321
17 — 308
39 — 3187
35 — 321
26 — 321
— 88 5b60d89dadb0280402fd7748
115 — 567
— 91 5b6495abadb0280402fd77b9
127 — 2336
— 94 5b6493ebadb0280402fd77b8
125 — 628
137 — 628
140 — 628
— 115 5b637fdfadb0280402fd7778
88 — 567
— 125 5b648ef2adb0280402fd77ae
137 — 5507
140 — 5507
94 — 628
— 127 5b64ba6aadb0280402fd77ce
91 — 2336
— 137 5b64910fadb0280402fd77b1
125 — 5507
140 — 5507
94 — 628
— 138 5b64c086adb0280402fd77d2
39 — 535
— 140 5b649190adb0280402fd77b2
125 — 5507
137 — 5507
94 — 628

Пусть это будет на совести участников.
Но мне теперь не дают покоя первое и второе итоговые места. Чем больше смотрю их код, тем больше убеждаюсь, что это одно и тоже решение. Например, вот
sort_offers из первого
this.sort_offers = (a, b) =>
this.value(b) — this.value(a) ||
sum( ((this.vals.length && this.vals) || this.vals_copy).map(v => this.value2(a, v))) — sum( ((this.vals.length && this.vals) || this.vals_copy).map(v => this.value2(b, v))) ||
things(b) — things(a) ||
a — b;
и
offerSortFn из второго
offerSortFn(a, b) {
const c1 = this.value(b) — this.value(a);
if (c1 !== 0) {
return c1;
}

const vs = this.possibleValuations.length
? this.possibleValuations
: this.allPossibleValuations;
let sum1 = 0;
let sum2 = 0;
for (const v of vs) {
sum1 += this.hisValue(a, v);
sum2 += this.hisValue(b, v);
}
const c2 = sum1 — sum2;
if (c2 !== 0) {
return c2;
}

const c3 = cnt(b) — cnt(a);
if (c3 !== 0) {
return c3;
}

return a — b;
}

Это одна и та же функция, переписанная разными способами. И так весь остальной код. Интересно, сделано это вручную, или каким-то генератором?
Ну вообще-то, если прикинуть, то в таблице присутствует 16471 пар решений. Если поделить на максимально набранное число очков 16471/1242729=0.013. Вероятность совпадения очков у какой-либо пары 1.3%, что не так уж и мало.
можно отправлять столько решений сколько людей

Скорее сколько почтовых аккаунтов. Я последние две недели парился с подбором коэффициентов и незначительными правками кода. Оказалось, зря, надо было всего-лишь на создавать аккаунтов и отправить все свои решения, которые вызывали сомнения.
Аж целых 4 копии:
46 — 5b649223adb0280402fd77b3
51 — 5b649339adb0280402fd77b5
58 — 5b64b128adb0280402fd77c8
62 — 5b5f368eadb0280402fd7705
И еще
36 — 5b64575dadb0280402fd7794
63 — 5b648f06adb0280402fd77af
И вот еще копии с точностью до опечаток в комментариях:
31 — 5b646257adb0280402fd779e
66 — 5b645263adb0280402fd7790
А вот еще решения, у которых подозрительно много одинакового кода:
17 — 5b64e7f2adb0280402fd77ea
26 — 5b64eb06adb0280402fd77f3
27 — 5b64e7baadb0280402fd77e8
35 — 5b64eaabadb0280402fd77f2
39 — 5b64e9c6adb0280402fd77ef
71 — 5b64e93badb0280402fd77ee
Глазками тяжело искать, устал. Вот бы инструмент, который ищет похожесть и показывает степень похожести.
Т.е. по-сути, наши решения будут соревноваться лишь в мелких оптимизациях, коэффициентах, ну и удачливости.

Как и в прошлых конкурсах.
В jsdash надо было просчитывать ходы и строить оптимальный маршрут. Было два варианта алгоритмов: считать и передвигаться на каждый ход или считать, пропуская ходы, а потом ходить по рассчитанному. Ожидаемо победил второй вариант.
В классификаторе слов тоже было два варианта алгоритмов — одни честно пытались ужать словарь, другие считали повторы слов. Ожидаемо победил второй вариант ))
Здесь пока все описывают один алгоритм. Хотелось бы конечно увидеть что-то особенное.
Теперь понятно.
А вот это откуда следует: «единственное, что можно выбросить это набор цен 0,4,6, потому что он уже занят нами»? В условиях такого не видел. Разве не могут быть одинаковые ценности?
Кстати, наблюдая за тем, как торгуется мой бот, заметил, что он почти всегда получает меньше на последнем раунде. А получить выгодное предложение сразу получается редко, поэтому до последнего раунда доходит очень часто.
Отсюда возник вопрос. Можно ли выиграть у всех, проигрывая каждому в отдельности? В теории, конечно, можно. Но каковы шансы сделать это на практике.
Не понял как это «сразу можно выбросить варианты, где один из игроков получит, например, меньше 30% в любом раскладе». Допустим, у нас по одному объекту каждого типа. Варианты получаются: 001, 010, 011, 100, 101, 110. Где здесь меньше 30% в любом раскладе?
Вы чертовы гении! У меня сошлось только то, что нужно коэффициенты подбирать и обрабатывать последний ход ))
И вообще думать над этой задачей долго не хотелось, поэтому сделал решение простое как валенок.

Соглашаюсь сразу на 8 и более баксов. Тут я пожадничал, наверное ))
Сортирую все предложения по максимальной выгоде для себя. Предполагаю в начале одинаковую ценность объектов для противника и предлагаю вариант, максимальный для меня и не нулевой для него. После каждого хода уточняю ценности объектов противника. Для этого в два раза уменьшаю ценности объектов, от которых он отказался. Сумма при этом станет меньше 10, поэтому остаток распределяю поровну между объектами. При такой манипуляции ценности объектов будут нецелыми, поэтому ищу в списке ценностей вариант максимально близкий к вычисленному. Опять сортирую список предложений, выкинув предыдущие предложения и учтя новые ценности объектов противника.

На последнем раунде соглашаюсь сразу на все, что больше 0. Если же мой ход первый, то смотрю, не предлагали ли мне раньше что-то повыгодней и если да, предлагаю этот же вариант в ответ. Или же предлагаю вариант, в котором противник получит 5 и более баксов (исходя из моих предположений), а я получу хоть что-то. Тут я расщедрился ))

Были еще идеи улучшений, но не рискнул их использовать в условиях, когда невозможно определить, какой эффект они дают. На серверах рейтинг в течение дня прыгал очень сильно. Алгоритм вроде бы точно должен был улучшиться, а ты опускаешься вниз. Или наоборот, ничего не менял, а стою первым в рейтинге.
Таки решения приняты? Не потерялись? Уже можно начать обсуждать решения, не боясь выдать секреты? ))

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность