Другие языки программирования и технологии

Проверка на уникальные числа, какой способ?

Даны три целых числа 0-9. В любом порядке. Можно ли какой-либо мат. операцией над ними, получить уникальное число, для проверки, что это именно те числа?
Какую тему читать, если такое есть в математике?
Ответ зависит от того, могут ли эти цифры повторяться. Например, может ли быть 5,5,5?

Если повторяться не могут, то простейший вариант: (1 shl a1) + (1 shl a2) + (1 shl a3). В Си-подобном синтаксисе: (1 << a1) + (1 << a2) + (1 << a3)

Если могут, то сначала сортируем числа (по возрастанию или убыванию - не важно, главное, чтобы всегда одинаково; можно одной математикой - без if). И вычисляем: a1 * 100 + a2 * 10 * a3

P.S. Сортировка только арифметикой, без сравнений:

t := a3;
a3 := (a3 + a2 + abs(a3 - a2)) div 2;
a2 := (t + a2 - abs(t - a2)) div 2;
t := a2;
a2 := (a2 + a1 + abs(a2 - a1)) div 2;
a1 := (t + a1 - abs(t - a1)) div 2;
t := a3;
a3 := (a3 + a2 + abs(a3 - a2)) div 2;
a2 := (t + a2 - abs(t - a2)) div 2;
Юрий Смышников
Юрий Смышников
72 504
Лучший ответ
Значиццо так.
Для быстрой проверки каких-то наборов применяются XOR - операции.
Если XOR всех чисел не сошелся - значит, они разные.
А вот если сошелся - тогда надо их все проверить, другого пути нет.
Такие дела...
Одной операцией - нет. Раз числа 3, то надо составлять 3 уравнения, корнями которых будут те числа
Xl Xl
Xl Xl
70 059
Мало выпил?
Что за три числа от нуля до девяти и нах. уникальное число из них получить, для проверки, что это именно ТЕ... какие нах те?
Сергей Коробов Скажем, нам нужно проверить наличие цифр - 0,5,9. Не вещественные, не двузначные итд. Могут быть в любом порядке, например 9,0,5. Можно ли каким-то алгоритмом получать их идентификатор для сравнения? Чтобы алгоритм работал и на других цифрах. Типа кодового замка с одновременным нажатием кнопок.