Автор | Программирование. Помогите изобрести велосипед. Буквы в числа |
Дано ~25000 различных слов длиной до 20 символов, каждое слово уникально
Слова могут включать символы A..Z, А..Я, 0..9, +6 символов, итого 75 вариантов символов
Преобразовать каждое слово в цифру
Число может быть от 0 до 4294967295
Каждая полученная цифра должна быть уникальна
При внесении изменений в массив слов (удаление, изменение, добавление слова) связь определенной цифры определенному слову не должна нарушаться
Какие могут быть варианты подходов?
Может велосипед уже изобретен, а я не в курсе?
Присвоение слову дополнительного поля ЦИФРА невозможно
Создание справочника слов неэффективно: слова могут появляться, меняться и пропадать, уникальность каждого слова соблюдается при каждом действии
Сортировка слов по какому либо признаку и присвоение каждому слову чисел по порядку так же невозможно - при изменении свойства, отвечающего за сортировку, потеряется связь определенного числа определенному слову. |
каждой букве цифра цифры не складываютса а запЫсываютса последовательно |
Каждая полученная цифра должна быть уникальна
в смысле число? Или именно цифра? |
а понял.
А обязательно 10-ричный счет использовать? |
для kr0ik:
каждой букве цифра
75 вариантов символов
В 75-ричной системе счисления?))) |
для Йопсель:
не должно получитса допустим 887878 при вводе двух разных слов или действий
значит вариант математикечских действий недопустим |
ассоциативные массивы кури. |
https://ru.wikipedia.org/wiki/Хеширование |
а вообще задача не понятна. Как, где, должны храниться эти слова? Как будут использоваться? |
Вот так вломали Пентагон |
Дано ~25000 различных слов длиной до 20 символов, каждое слово уникально
Всего слов длиной 20 и с вариантами букв 75 - это число 37-го порядка. Если длина от 1 до 20-ти, то гораздо больше. Т.е. задача в общем виде довольно странная.
Поэтому я бы сделал таблицу соответствий слов числу и не парился бы. |
Присвоение слову дополнительного поля ЦИФРА невозможнопри изменении свойства, отвечающего за сортировку
на мой взгляд, сочетание этих двух условий делает решение задачи невозможным.
если нельзя указывать прямую связь и если нельзя указывать косвенную связь, то связь не установить. |
На каком языке-то надо? |
А обязательно 10-ричный счет использовать?
да, от 0 до 4294967295
Как, где, должны храниться эти слова? Как будут использоваться?
Вопросы к задаче отношения не имеют.
Хранятся в таблице SQL [триггеры пилить а) не умею, б) не хочу из-за малости задачи крушить таблицы], служат уникальным идентификатором строки таблицы |
На каком языке-то надо?
Русском
Всего слов длиной 20 и с вариантами букв 75 - это число 37-го порядка. Если длина от 1 до 20-ти, то гораздо больше. Т.е. задача в общем виде довольно странная.
Вариантов да, уйма, по факту же имеется число не такое страшное
Поэтому я бы сделал таблицу соответствий слов числу и не парился бы.
Слова могут меняться, могут создаваться новые и происходит это довольно часто, чтобы вручную доделывать таблицу |
|
для MrSlayer:
а) ROWID пользователю недоступен
б) я не в курсе поведения ROWID при внесении извенений в таблицу |
erros
а зачем он пользователю? Если ты про запросы, то их правильно выполнять на стороне сервера. А сам он автоматически назначается каждой строке.
Что касается изменений - то rowid формируется при добавлении строки и больше не меняется. Он уникален для записи в рамках всей СУБД. |
простите, в рамках экземпляра БД. "В рамках СУБД" я конечно загнул :) |
для MrSlayer:
Пользователю недоступен, работа с ним невозможна, исполнение идёт на стороне пользователя в офисном приложении для последующей обработки в офисном же приложении (создание .csv файла как финальный результат) |