Есть ли формула для этого? Здравствуйте. Имеется не большая задачка от основного задания которую я решил но хотелось бы элегантней.
Имееться функция на вход которой подается 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
128 +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 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир