Ответы пользователя по тегу Алгоритмы
  • Как привести в человекопонятный вид единицы измерений?

    @crazywu
    Если разброс по размерности не очень велик, то можно всё приводить к одним единицам измерений и преобразовывать для вывода в любые другие.
    Если разброс значителен, то можно создать объект, в котором помимо значения, будет храниться приставка из системы СИ. Так же можно дописать функции преобразования от текущей приставки к любой другой.
    Но нельзя закрывать глаза на точность вычислений. т.к. в случае, когда речь идет о значениях с большой разрядностью, числа будут храниться в виде экспоненциальной записи. А это означает, что у вас будет некоторое ограничение на количество значащих цифр в числе (для js, если не ошибаюсь 21цифра).
    В качестве альтернативы, если значения всё же выходят за пределы 21 значащего разряда, можно использовать запись числа в виде строки и, соответственно, строковую арифметику.
    Ответ написан
    Комментировать
  • Как у Вас в голове рождаются алгоритмы?

    @crazywu
    Я бы советовал всерьез изучать стандартные подходы и типовые алгоритмы. 99% задач с которыми ты будешь сталкивать в жизни, в худшем случае, будут являться модификациями уже известных подходов.
    Если в ладах с математикой - советую читать Кнута, если с математикой так себе - Кормена.
    Ответ написан
    Комментировать
  • Есть возможность описать алгоритм для процедурной генерации карты головоломки?

    @crazywu
    В крайнем случае всегда можно генерировать уже решенную карту и двигать на ней ящики по всем правилам игры в обратном порядке. Только для интересных уровней надо будет какие-то правила дополнительные для этих ходов подобрать, что бы посложнее варианты были, а не сдвиг туда-сюда одного ящика.

    А ещё можно сыпать рандом и проверять решаемость. После чего немного исправлять.
    Ответ написан
    Комментировать
  • Как найти ВСЕ кратчайшие пути между двумя вершинами?

    @crazywu
    Мне кажется, что удобнее всего использовать обход в ширину. Записывая вес и путь до каждой встретившейся вершины.
    В конечной точке соберутся все варианты.
    Только эта штука будет жутко кушать память и не помешало бы сделать некоторые оптимизации:
    -удалять/не записывать более длинные пути
    -обьединять при дальнейшем поиске пути "слившиеся" в одной вершине
    (Это то, что сразу приходит на ум, может есть ещё какие-то варианты)
    Ответ написан
    Комментировать