![]() |
|
|
![]()
|
|
| Petro123 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Есть 2 набора чисел:
x1,x2,x3,...xn y1,y2,y3,...yn Необходимо получить ответ на вопрос - равны ли эти числа попарно. Сравнивать попарно нельзя. Сравнивать можно только 2 выражения, каждое из которых получено из своего набора чисел. То есть необходимо составить формулу. Например: B1=x1+x2+...+xn B2=y1+y2+...+yn и затем сравниваем уже В1 и В2. Но очевидно по такой формуле ответ получен быть не может. |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
-- Записать в строчку через пробел и сравнить строки.
-- записать как число в системе счисления Max(от всех числе в обоих наборах)+1. Сравнить как числа. -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Petro123 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Ну это понятно, хотелось бы другой вариант. Да и не совсем подходит...
а если числа дробные или очень большие... Вообще если представить что это 2 вектора, то для того чтобы сравнить равны ли они, вроде как нужно сравнить их длины и направление Длины сравнивать понятно как. Вот как сравнить направление векторов. x1/y1=x2/y2=... - не совсем то что нужно. Может как то еще можно? |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Не понял... то есть следует выяснить, равны ли наборы? или только часть их? грубо, равны ли набороы, если первый 1 2 3 а второй (варианты) 1 2 3 (очевидно, равны) 1 2 4 1 2 3 4 1 3 2 ? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Наверно так.
сравниваем x1+x2 и y1+y2, потом x1-x2 и y1-y2. Если и те и те равны, то попарно равны первых два числа. Затем аналогично проверяем следующие два числа, и так далее. Получается памяти дополнительной много не надо + выполняются очень простые операции - сложение и вычитание. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
ну это, скорее, дас ответ на вопрос "есть ли среди этих пар хоть одна из одинаковых чисел" если б можно было считать выражение от обоих наборов чисел, то можно было б так: |x1-y1|+|x2-y2|+...+|xn-yn|==0 Добавлено через 5 минут и 28 секунд т.к. нужно считать выражение от каждого набора чисел в отдельности, необходимо, чтобы результат содержал достаточное количество информации, чтобы описать любой из возможных входных наборов например, если мы говорим о числах, котоорые хранятся в 4 байтах, то результат должен занимать 4*n байта иначе получится так, что два или больше набора могут дать один и тот же результат и буду ошибочно признаны равными Это сообщение отредактировал(а) maxim1000 - 5.12.2008, 11:07 -------------------- qqq |
|||
|
||||
| Petro123 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Нужно сравнить полностью наборы. Если количество эл-в разное, то уже на равны.(по идее наборы это n-мерные вектора)
Каждый из наборов находится в удаленных друг от друга местах От каждого мы должны получить один ну или 2 сигнала(результат выражения), исходя из которых могли бы четко дать ответ на вопрос. В вашем случае, если чилел в каждом наборе, например, 5 то получаем 8 сигналов с каждого набора: x1+x2, x1-x2, x2+x3, x2-x3, ... y1+y2, y1-y2, y2+y3, y2-y3, ... а потом уже анализируем(сравниваем сигналы). Возникает вполне логичный попрос: Не проще ли тогда в качестве сигналов передавать сами числа Это сообщение отредактировал(а) Petro123 - 5.12.2008, 11:29 |
||||
|
|||||
| ksili |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2069 Регистрация: 3.11.2005 Где: Красноярск Репутация: 2 Всего: 17 |
Petro123, что ты сегодня курил?
Всё это: придумал ты сам. Я писал в тему, исходя из других данных
проще. передавай Правильный ответ (если ты опять не изменишь условия): взять хэш от каждого набора чисел и сравнивать их. -------------------- Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с) |
|||
|
||||
| Petro123 |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Слушай если тебе внапряг, лучше вообще не отвечай. |
||||||
|
|||||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Он, кстати, дал тебе с учётом всех поправок и дополнений совершенно правильный ответ. ТО, что ты меняешь условие на ходу - твоя проблема, не его. Если нужна 100% гарантия совпадения - надо передавать полные наборы. Ну ради уменьшения трафика их можно, скажем, заархивировать. Если же достаточно 99.(9)% гарантии - то достаточно выбрать, посчитать, передать и сравнить хороший для этих данных хэш. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Petro123 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 288 Регистрация: 6.4.2007 Репутация: нет Всего: нет |
Какие, интересно, я меняю условия?
|
||||
|
|||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |