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

    BorLaze
    @BorLaze
    Java developer
    Ты неправильно генеришь данные.

    Смотри:
    1 шаг: в массиве только [1] (число 1 является элементом последовательности)
    2 шаг: берем 1, добавляем 2, 3, 5 (если a – элемент последовательности, то 2a, 3a, 5a тоже являются элементами последовательности) - а равно 1, в итоге получаем [1, 2, 3, 5]
    3 шаг: берем 2, добавляем 2*2, 3*2, 5*2 (а теперь равно второму элементу, 2), сортируем: [1, 2, 3, 4, 5, 6, 10]
    4 шаг: берем 3... ну, и так далее.
    Ответ написан
    5 комментариев
  • Варианты продажи билетов, как лучше?

    BorLaze
    @BorLaze
    Java developer
    Скупость - это грех, однако :-)

    А вообще - можно предложить некий аналог пин-кода. Чтобы не заставлять юзера запоминать 32-значные числа или UUID, можно выдавать, допустим, случайных 4 слова из словаря.

    Купил билет - получил набор "соль табак нота море". Вводишь их на нужной странице - получаешь свой билет.

    Брутфорсить замучаешься, и достаточно юзер-френдли.
    Ответ написан
    Комментировать
  • Каким образом должен работать этот алгоритм?

    BorLaze
    @BorLaze
    Java developer
    smallest = arr[0]
    smallest_index = 1 # Я специально поставил один чтобы увидеть что в конце оно выкинет один


    А вот не надо ставить 1 специально, когда надо ставить 0.

    Смысл приведенного алгоритма - мы принимаем, что нулевой элемент массива - самый маленький. Соответственно, запоминаем, что это минимальное значение находится по индексу 0.

    Дальше, начиная с первого элемента, просматриваем весь массив и, если какой-то элемент меньше минимального, то 1) записываем новый минимум и 2) запоминаем его позицию.

    А Вы принимаете за минимальный элемент нулевой, но запоминаете, что он находится во второй ячейке массива (почему-то). А потом удивляетесь, почему не работает...
    Ответ написан
    Комментировать
  • Есть ли у кого маленькая шпаргалка по перебору связного списка?

    BorLaze
    @BorLaze
    Java developer
    В каких случаях надо использовать условие while(list != null) и while(list.next != null)

    Смотря что нужно. Можно использовать и то, и то.

    /* предполагая, что где-то в цикле есть list = list.next */
    Условие while(list != null) означает "двигайся по списку, пока не выйдешь за последний элемент".
    Условие while(list.next != null) означает "двигайся по списку, пока не дойдешь до последнего элемента".

    Соответственно, в зависимости от задачи надо выбрать или одно, или другое. Сказать однозначно "делай так, а не иначе" просто невозможно.
    Ответ написан
    Комментировать
  • Как найти координату точки, которую пересекает прямая?

    BorLaze
    @BorLaze
    Java developer
    А при чем тут тег "алгоритмы", если это чистая геометрия?

    Может, начнем искать в алгоритмах и решение уравнений типа ax+b=0?
    Ответ написан
    Комментировать
  • Как сделать систему рекламных объявлений, показывающих равномерно?

    BorLaze
    @BorLaze
    Java developer
    Берем массив объявлений - (1, 2, 3).
    Перемешиваем - (3, 1, 2).
    Показываем по очереди, пока не покажем все - 3, 1, 2.
    Переходим к п.1

    Результат - в каждой итерации мы гарантированно покажем все объявления в случайном порядке.
    При добавлении нового на новой итерации оно будет показано наравне со старыми.
    Ответ написан
    Комментировать
  • Какой алгоритм эффективнее ищет минимум?

    BorLaze
    @BorLaze
    Java developer
    Задача - оценить сложность алгоритмов или же действительно узнать, "какой алгоритм эффективнее ищет минимум"?

    Потому как в приведенных примерах это попытка сравнить "теплое с мягким".

    Первый РЕАЛЬНО ищет минимум.
    Второй РЕАЛЬНО сортирует массив, а получение минимума - это побочный продукт.

    Улавливаете разницу?
    Ответ написан
    1 комментарий