Есть ли формула для этого? Здравствуйте. Имеется не большая задачка от основного задания которую я решил но хотелось бы элегантней.
Имееться функция на вход которой подается ID и длина строки, которая в зависимости от ID возвращает определенной длины строку из символов.
Например: у нас используется только a-z и длина строки должна быть 3 символа, то есть у нас это 26*26*26=17576 уникальных строк.
Например если подать ID 2 то это 1,1,2 или например ID 555 то это 1,23,9 (1,23,9 это порядковые номера букв).
Я это всё делаю рекурсией, есть ли математическая формула чтоб можно было вычислить порядковые номера букв на основе ID?

21 Авг 2019 в 06:09
148 +1
0
Ответы
1

Да, для данной задачи можно использовать формулу. Предположим, что у нас есть алфавит из n символов и мы хотим создать строку длиной k.

Тогда порядковые номера букв можно вычислить следующим образом:

Вычисляем количество всех возможных строк длиной k по формуле n^k.Делим ID на результат шага 1 и получаем целое число q и остаток r.Делаем q-1 деления по формуле q_i = q / n^(k-i) и находим r_i.Для i от 1 до k находим порядковые номера букв как r_i + 1 и вычитаем из ID сумму всех q_i умноженную на n^(k-i).Повторяем шаги 3-4 для каждой позиции в строке.

Таким образом, используя данную формулу, вы сможете элегантно вычислить порядковые номера букв на основе ID.

20 Апр 2024 в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир