Задать вопрос
Ответы пользователя по тегу Алгоритмы
  • Как храняться данные в хеш-таблице?

    @lega
    2,147,483,647

    В 32 битном числе ~4 млрд значений, а не ~2

    Массив выделяется под кол-во данных, в разных системах по разному, например в питоне когда массив заполнен на ~70%, тогда выделяется больший массив под эти данные.
    Результирующий хеш подстраивается под размер массива, например под 500 элементов, может быть выделен массив в 1024 элементов, в итоге результирующая позиция может быть вычислена так = hash_value %mod table_length, пример: 55555 % 1024 -> 259, итого значение будет записано в 259 ячейку (если нет коллизии)
    Ответ написан
    Комментировать
  • Как найти количество чисел от 1 до 10^9, имеющих сумму цифр = x?

    @lega
    10^9, ... Например при Х = 1, ответ будет 10.

    При х=1, результат будет 9, т.к. 9 цифр, если до 10^9) (т.е. не включая)
    От сюда - самое большое значение будет 9х9 = 81, с результатом = 1, а 80 даст = 9, 79 -> 45, 78 -> 165 [0..81], остальные значения дадут 0. В итоге получается как бы обратная парабола с вершиной где-то посередине.

    Что-бы не перебирать весь миллиард, можно сделать полную рекурсию - что-бы пройтись только по конечным значениям, т.е. например при Х=3, первая цифра сначала берет на себя 1, значит на оставшиеся уходит 2, потом 1-я цифра берет на себя 2, оставшимся уходит 1 и т.д.

    Но вообще, если "порисовать на бумажке" то становится очевидно что эту задачу можно решить с использованием статистики: при увеличении Х - уменьшается "простор" для размещения, но увеличивается кол-во элементов для размещения, причем результаты младших Х можно использовать в старших.
    Ответ написан