Перейти к публикации
Форум - ComputerCraft
  • записей
    8
  • комментариев
    47
  • просмотров
    19 208

Рассчёт самой эффективной печи Tinkers Construct

В общем решил я найти такой размер печи из Tinkers, которая бы тратила меньше всего ресурсов и давала максимальную вместительность при этом. Написал я для этой цели алгоритм с брутом, который проходится по всем вариантам построения и находит самый эффективный.
Скрин:


Vpok06B.png
0oFegqS.png


Код:
http://pastebin.com/B625H8RC
http://pastebin.com/aPz8Faw6

 

В заключении хотелось бы добавить что калькулятор подсчитывает минимальное количество блоков для строительства, что включает в себя только грани печи и пол. Без угловых и рёберных блоков (которые не нужны для работы печи)
100% эффективность означают, что 1 строительный блок эквивалентен 1 слоту вместительности печи.
В первую программу мы вводим только максимальную длинну для всех трёх осей.
Во второй можно вводить разные значения для всех трёх измерений.
И да, я знаю что обе проге выводят всегда один и тот же результат. Такова реальность увы. ;) Я сам был в шоке, что мои подсчёты не дали ожидаемого результата.

 

Может кто знает что я делаю не так? Может сама задумка у меня плохая?

 

P.S. Писал на скорую руку, в выживании в единственном роботе который у меня был. Так что не надо докапываться до названий переменных.



3 комментария


Рекомендованные комментарии

Алгоритм вроде верный. Вот только смысл от него, если он возвращает всегда максимальные значения.

Видимо, надо алгоритм переписывать, под ввод именно нужного объёма.

Поделиться комментарием


Ссылка на комментарий

Говорят, наш брат Сизиф был проклят аналогичным образом: брутфорсил какие-то простые формулы, и даже получал какой-то результат, но результат его всегда разочаровывал.

 

Для начала придерусь к коду: n["T"] удобнее записывать в более компактной форме n.T. На результат не повлияет, но код станет светлее. Но твой код погубило не это. Он выдает именно тот результат, который и должен. Брутфорс тут вообще не нужен. x,y,z = maxX,maxY,maxZ – вот и вся программа.

 

Математика здесь такая: при увеличении размера параллелепипеда в любом из измерений его объем растет быстрее площади. А так как твоя печка пытается максимизировать это отношение, то она займет любой доступный ей объем.

 

В этом контексте имеют смысл две вещи:

1) при заданном одном размере вычислить два оставшиеся;

2) при заданном количестве стройматериала вычислить оптимальные размеры будущего строения.

  • Like 2

Поделиться комментарием


Ссылка на комментарий

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×