avatar
Это бета-тест, так что мы перестраховываемся и наблюдаем. Но да — мне кажется, что можно выставить условие «если вывели заметку в публичную часть в тот же день, когда она была опубликована, нет смысла делать отдельное уведомление».
avatar
цена меча 1 уровня была равна нулю, в условиях задачи это следовало явно указать, а то ответ был бы иным

Думаю, он был добыт в бою, а не куплен или произведен за деньги)

А сколько времени займёт расчёт до 10 уровня в Machinations.io?

Примерно столько же. Но у machinations перед формулами есть одно преимущество: наглядность и, если можно так выразиться, эмоциональность. Это когда меч последовательно «точится» на каждой итерации схемы, ты смотришь как он пробегает по дорожкам, как начисляются «монетки» в стоимость процесса, болеешь за этот меч. И вот он успешно добрался до предпоследнего уровня, остался один шажок, и тут рраз, и случается череда неудач и меч шаг за шагом откатывается по уровням до самого дна и заточка начинается заново. Игра, она же не только про математику, она еще и про эмоции. В таблицах и формулах эмоций не будет. А в такой наглядной и динамичной схеме — будут. Поэтому, если надо быстро — можно и формулами пользоваться. А если надо наглядно, то лучше брать и смотреть на процесс и прислушиваться к ощущениям.
avatar
И, ради прикола:
8 уровень — 10806, 9 уровень — 58203, 10 уровень — 597904 золота. Дальше вероятность улучшения равна нулю. А сколько времени займёт расчёт до 10 уровня в Machinations.io?
avatar
В реальности всегда будет статистический разброс вокруг теоретического значения. Но знать его полезно.

Решение:

Цена меча 2 уровня: 10 золота: 0,9 = 11,(1) золота.
Однократно приведу обоснование: из 10 мечей 1 уровня мы изготовим 9 мечей 2 уровня и затратим 100 золота, цена меча = 100: 9, то же, что и 10: 0,9.
Начиная с 3 уровня к цене изготовления будем добавлять цену меча (цена меча 1 уровня была равна нулю, в условиях задачи это следовало явно указать, а то ответ был бы иным)

Цена меча 3 уровня: ( 20 + 11,(1) ): 0,8 = 38,(8) золота минус 0,2 единицы мечей 1 уровня при неудаче, которые пока ничего не стоят.

Цена меча 4 уровня: ( 40 + 38,(8) ): 0,7 = 112,7 золота минус 0,3 единицы мечей 2 уровня, которые стоят 0,3 * 11,(1) = 3,(3) золота. Итого 112,7 — 3,(3) = 109,37 золота.

Цена меча 5 уровня: ( 80 + 109,37 ): 0,6 = 315,61 золота минус 0,4 единицы мечей 3 уровня, которые стоят 0,4 * 38,(8) = 15,(5) золота. Итого 300,05 золота.

Цена меча 6 уровня: ( 160 + 300,05 ): 0,5 = 920,11 золота минус 0,5 единиц мечей 4 уровня, которые стоят 0,5 * 109,37 = 54,68 золота. Итого 865,42 золота.

Цена меча 7 уровня: ( 320 + 865,42 ): 0,4 = 2963,56 золота минус 0,6 единиц мечей 5 уровня, которые стоят 0,6 * 300,05 = 180,03 золота. Итого 2783,53 золота.
avatar
Это хорошие мысли, я примерно так же размышлял, но натолкнулся на нюансы внутренней реализации (мы ж развиваем готовый движок), поэтому пока решили задачу-минимум («не упустить уведомления»), и будем продолжать обдумывать и улучшать.

(к примеру, ты говоришь «ещё проще: если в ленте…», но счётчик в меню показывается независимо от ленты, так что это не проще — но логика у тебя верная :))
avatar
Неа нельзя. Это как раз те самые проблемы при вычислениях с плавающей точкой о которой я писал в последней заметке. Ну, точнее как… В некоторых задачах можно, но может потом обнаружится, что результат вычислений вы будете использовать где-то еще. Есть вычисления, которые производятся, например каждые 25ms, а с более сложной логикой вообще может оказаться, что количество операций на столько большое, что вам вообще иногда выдают так называемый NaN, что может приводить к undefined behaviour.

Это вообще добольно насущная проблема просто потому, что компьютеры считают как бы совсем не так как мы) И проблемы часто возникают даже там, где их интуитивно не ждешь, например просто при умножении и сложении.)
avatar
Я примерно в курсе насчет формул, но может кому еще из читателей будет интересно. Так что в любом случае пиши ;)

У меня точное теоретическое значение
Твое точное теоретическое, против моего неточного практического. И в том и в другом есть свой смысл.
avatar
Ну или напрямую у разрабов спросить, какой ГПСЧ они используют)

Блин, ну да, вообще логично)
avatar
У меня точное теоретическое значение, формулы там примитивные, больше логика нужна, чем теория вероятности. Могу написать решение.
avatar
Достаточно близко к тому, что показывает симуляция)
На 1000 шагов у меня получилось произвести 33 меча, средняя стоимость — 2886 монет.
Есть способы запустить 100 параллельных симуляций по 1000 шагов каждая, но обрабатываться они будут около часа. Зато и ответ выйдет точнее.
avatar
За 10 минут набросал в Экселе, получил результат 2783,53. В браузере на моём ноуте тормозит, не стал ждать до конца. Интересно, ответ верный?
avatar
Может, добавить проверку на совпадение даты выхода материала и даты уведомления? Если они опубликованы в один день, то счетчик инкрементировать только один раз. Ну или ещё проще: если в ленте новых материалов присутствует и сама заметка, и уведомление, то считать только единожды
avatar
Надо подумать
avatar
Мне кажется, отличия в нормальных генераторах столь незначительны, что на общее представление о процессе не повлияют. Ну а разницей в третьем или четвертом знаке после запятой вполне можно пренебречь )

Инструмент действительно классный! И заметка оформлена замечательно. Особенно порадовали гифки :)
avatar
Тоже поиграл и бросил. В гильдию, кстати, вступил. Как найти не рабскую? Смотреть условия на вкладке с описанием гильдии, там же посмотреть на что она ориентирована. Сразу отбросить большие гильдии на тысячи человек, ну и конечно же поговорить с рекрутёром.
Я нашёл вполне приличную гильдию. И если бы сама игра не надоела, то остался бы у них однозначно.
Почему ушёл? Ну так там кроме ПвП делать нечего, а это не моё.
avatar
Да, мы это обсуждали, и можно за оба варианта аргументировать. В результате сделали, что уведомления учитываются в счётчике, потому что они не всегда выходят в тот же день, что и сама заметка. К тому же, если счётчик нулевой, то и пункт меню «Новые» сейчас не показывается — а там могут быть уведомления, даже без новых заметок.
avatar
Понятно, что в программировании используются псевдо-случайные числа, вместо настоящих случайных, и распределение может быть разным.
Самый простой способ проверить, который мне приходит в голову — забить простенькую задачку на рандомизацию в тулзе, в экселе и в движке, получить выборку с достаточно большого количества чисел и сравнить результаты.
Ну или напрямую у разрабов спросить, какой ГПСЧ они используют)
Я таким вопросом пока не задавался, меня радует сама возможность проверять гипотезы без глубокого знания матана или движка.
avatar
Что-то я подумал и немного залип насчет переноса этого всего в реальную игру. Это все классно, но как быть уверенным в том какая именно функция аппроксимации генерации случайных числе используется в их реализации? Ведь если я напишу уже в игре что-то свое, то получи другой результат, причем может даже сильно отличающийся. (или я просто плохо искал?)
avatar
Спасибо, а я-то думаю, что это у меня браузер что ли глючит. Теперь понял))) непривычно просто немного, а так отлично сделано!
avatar
Ох! За один только инструмент плюс!)
Эт вам не таблички в Google Docs)) Хотя, на самом деле, если сильно упороться, то можно многое на их «движке» сделать)