Top.Mail.Ru
Ответы

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

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

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Ответ зависит от того, могут ли эти цифры повторяться. Например, может ли быть 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;

Аватар пользователя
Искусственный Интеллект
7лет

Значиццо так.
Для быстрой проверки каких-то наборов применяются XOR - операции.
Если XOR всех чисел не сошелся - значит, они разные.
А вот если сошелся - тогда надо их все проверить, другого пути нет.
Такие дела...

Аватар пользователя
Высший разум
7лет

Мало выпил?
Что за три числа от нуля до девяти и нах. уникальное число из них получить, для проверки, что это именно ТЕ... какие нах те?

Аватар пользователя
Высший разум
7лет

Одной операцией - нет. Раз числа 3, то надо составлять 3 уравнения, корнями которых будут те числа