Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Вава Вавников Ученик (244), закрыт 6 лет назад
Даны три целых числа 0-9. В любом порядке. Можно ли какой-либо мат. операцией над ними, получить уникальное число, для проверки, что это именно те числа?
Какую тему читать, если такое есть в математике?
Лучший ответ
Андрей Высший разум (466098) 6 лет назад
Ответ зависит от того, могут ли эти цифры повторяться. Например, может ли быть 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;
Остальные ответы
Татьяна Шеховцова Высший разум (523757) 6 лет назад
Одной операцией - нет. Раз числа 3, то надо составлять 3 уравнения, корнями которых будут те числа
kaiu Высший разум (118832) 6 лет назад
Мало выпил?
Что за три числа от нуля до девяти и нах. уникальное число из них получить, для проверки, что это именно ТЕ... какие нах те?
Вава ВавниковУченик (244) 6 лет назад
Скажем, нам нужно проверить наличие цифр - 0,5,9. Не вещественные, не двузначные итд. Могут быть в любом порядке, например 9,0,5. Можно ли каким-то алгоритмом получать их идентификатор для сравнения? Чтобы алгоритм работал и на других цифрах. Типа кодового замка с одновременным нажатием кнопок.
kaiu Высший разум (118832) нет, в памяти цифры хранятся как сумма 1 2 4 8 и тд и позиция может быть или нет, если именно эти 1 2 4 8 биты проверять, то можно, а так надо в десятичный вид их перегонять. Однако, если числа хранятся как строки, допустим натурально 905 509 или подобно, то мат. операцией тоже не сделать, но можно циклом пройтись занести нужное в множество и потом уже играться... но это не математика, да и по сути любая математика в процессоре так как и так какие-то внутренние циклы и тд.
Jurijus Zaksas Искусственный Интеллект (450036) 6 лет назад
Значиццо так.
Для быстрой проверки каких-то наборов применяются XOR - операции.
Если XOR всех чисел не сошелся - значит, они разные.
А вот если сошелся - тогда надо их все проверить, другого пути нет.
Такие дела...
Похожие вопросы