Кресты на моей кукухе
119 subscribers
202 photos
2 videos
5 files
43 links
Канал имени @vatneek
Здесь вы увидите:
* шитпостинг
* С++
* раст (иногда, по праздникам, я не растовод, я только балуюсь)
* шитпостинг
Download Telegram
Я пошёл разбираться, как это счастье ускорить. На (вроде, официальной) вики нашлась формула (пикрелейтед 1)
Выглядит страшненько, но разбивается на части, плюс многое заменяется на константы

Сначала верхняя часть
recipe duration in seconds (на самом деле, кажется, что in ticks, но в этом я как-то в другой раз разберусь) — для меня это конкретный рецепт (булыжник -> гравий) — 250. Вычитаем эти 19.9..., получаем 230.000001

Теперь нижняя
В числителе RPM — скорость вращения колёс — выкручиваем в максимум и фиксируем, 256. Применяем умножение/деление рядом, получаем 20.48
В знаменателе log_2(stack_size). Размер этого stack_size я и хочу узнать, так что здесь ничего в константу не превратится
А дальше всё это зажимается в рамки [0.25, 20] (всё, что меньше 0.25, превращается в 0.25, всё, что больше 20, превращается в 20)

Обрубленные квадратные скобки — округление вверх

Дальше прибавляется input delay. Если верить той же вики, он зависит от того, чем подаются предметы. Для моей схемы это тоже фиксировано, и значение 1

Последняя часть. После того, как мы всё это вычислили, мы домножаем полученное счастье на stack_size.

Всё это должно обозначать время, за которое мы перерабатываем скормленные в колёса блоки. Как раз время я хочу минимизировать
Дисклеймер: автор так себе математик, и да, к выводам можно было прийти более кратким путём, но чем умеет, тем и пользуется

В формуле с вики получилось оставить всего одну переменную — stack size. Последняя доработка формулы: поскольку я могу подать от 1 до 64 блоков одновременно, мне интересно, за какое минимальное время я могу переработать 64 блока. Потому если мы бьём партию на части по stack size частей, их будет (64 / stack_size), и на это число частей нам надо домножить время переработки одной части

Поскольку у нас осталась единственная переменная — stack size, мы возьмём её за x, и найдём минимум полученной функции. Для наглядности, вобьём в десмос, постоим график

Что видим? Чем меньше x, тем меньше y. В частности, хорошее значение для stack size это 2
Но вооружившись таймером, и померив переработку по 2 блока против переработки по 64, я обнаружил, что всё наоборот, и по 64 перерабатывать в разы эффективнее. Что не так?

Естественно, ошибка не может быть во мне 😎, а значит лезем в сурцы create разбираться. Находим кусок кода про процессинг. Находится он в перегрузке метода tick, что подразумевает вызов на каждый тик в игре (квант времени в майнкрафте). Видим формулу скорости как с картинки. Здесь мы её вычитаем из некого remainingTime. То есть, в какой-то момент мы вычислили, сколько мы должны обрабатывать попавшие к нам предметы, и отсчитываем время до окончания. Смотрим, где мы присваиваем это самое время....

Оно зависит только от рецепта! И никак не завязано на размер пришедшего стака. А значит, формула нас обманула, и надо идти всё пересчитывать...
На деле нам нужно убрать всего один множитель, но это превращает нашу функцию в убывающую. И теперь понятно, почему выгоднее брать стаки по 64: игра никак не штрафует нас за то, что мы заталкиваем больше материалов!
Боттлнек решается разве что тем, что я выкрутил RPM, и потенциально добавлю ещё перемалывалок

Итого: несколько потерянных часов жизни ради какой-то фигни) Но перефразируя великих, "это не потерянное время, если вам было весело"

Фуф
🔥8
Еееее, просидеть 6 часов днд боёвки с персонажем в отключке!

Upd. Недосчитал. Там скорее 4
🕊2
Заказал в яндексе одно такси. Приехало два. В приложении отображается одно. Дозвонилось таксистов до меня два

🙂
👍6
Фейсконтроль не пустил в бар, где меня ждало 3 человека

Да что за день-то такой, ну блят)))0)
😭3
В клауд сервисе есть у меня тачка на одно ядро, стоит чучуть в месяц
Хз, сколько она уже есть. Завёл очень давно, наощупь, тут же забыл, в каком сервисе

Откопал нужную почту, обнаружил, что я в нём же в последнее время поднял себе ещё пару на другом аккаунте. Решил перенести на него же и эту мелкую

А одноядерных конфигураций больше нет, есть только дороже))))
Кто 22-го на концерт Мейби Бейби в Питере?
😢3🔥21🤔1🤩1
Купил ноут!
Только... зачем..?
Пытался скачать firefox
Яндекс в качестве рекламы подсунул сайт, который очень пытается быть похожим
Не выкупил — скачал установщик
Получил яндекс браузер, оперу и ушат говна впридачу
Стыдно и за поиск, и за браузер. Просто пиздец. Жопа сгорела
Проверять, чё за херню вы рекламите? Неееее, зачем
Я лох и попался на вторую ссылку
Как же меня легко заразить, да что ж такое
🥰2
Персик это маленький перс
Персик
Чпокаемся
🌭5🐳2🍓2
2 поездки на электричке из 3-х бесплатно!

Как? Легко! Нужно всего лишь сесть не на той платформе, уехать непонятно куда, затем сесть на противоположное направление и вернуться. Никто не узнает об этих двух поездках!
🥰6😱2💋2