Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сравнить числа попарно 
:(
    Опции темы
Petro123
Дата 5.12.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Есть 2 набора чисел:
x1,x2,x3,...xn
y1,y2,y3,...yn
Необходимо получить ответ на вопрос - равны ли эти числа попарно.
Сравнивать попарно нельзя. 
Сравнивать можно только 2 выражения, каждое из которых получено из своего набора чисел.
То есть необходимо составить формулу.
Например:
B1=x1+x2+...+xn
B2=y1+y2+...+yn
и затем сравниваем уже В1 и В2. Но очевидно по такой формуле ответ получен быть не может.


PM MAIL   Вверх
ksnk
Дата 5.12.2008, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 7
Всего: 386



-- Записать в строчку через пробел и сравнить строки.
-- записать как число в системе счисления Max(от всех числе в обоих наборах)+1. Сравнить как числа.




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Petro123
Дата 5.12.2008, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Цитата

Записать в строчку через пробел и сравнить строки.

Ну это понятно, хотелось бы другой вариант. Да и не совсем подходит...
Цитата

записать как число в системе счисления Max(от всех числе в обоих наборах)+1. Сравнить как числа.

а если числа дробные или очень большие...

Вообще если представить что это 2 вектора, то 
для того чтобы сравнить равны ли они, 
вроде как нужно сравнить их длины и направление
Длины сравнивать понятно как. Вот как сравнить направление векторов.
x1/y1=x2/y2=...
- не совсем то что нужно. Может как то еще можно?
PM MAIL   Вверх
Akina
Дата 5.12.2008, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Petro123 @  5.12.2008,  10:50 Найти цитируемый пост)
Необходимо получить ответ на вопрос - равны ли эти числа попарно.
Сравнивать попарно нельзя. 
Сравнивать можно только 2 выражения, каждое из которых получено из своего набора чисел.

Не понял... то есть следует выяснить, равны ли наборы? или только часть их? грубо, равны ли набороы, если первый

1 2 3

а второй (варианты)

1 2 3 (очевидно, равны)
1 2 4
1 2 3 4
1 3 2

?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ksili
Дата 5.12.2008, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 2
Всего: 17



Наверно так.
сравниваем x1+x2 и y1+y2, потом x1-x2 и y1-y2. Если и те и те равны, то попарно равны первых два числа. Затем аналогично проверяем следующие два числа, и так далее.

Получается памяти дополнительной много не надо 
+ выполняются очень простые операции - сложение и вычитание.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
maxim1000
Дата 5.12.2008, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 33
Всего: 110



Цитата(Akina @  5.12.2008,  10:50 Найти цитируемый пост)
посчитать (x1-y1)*(x2-y2)*...(xN-yN) и сравнить с нулём. 

ну это, скорее, дас ответ на вопрос "есть ли среди этих пар хоть одна из одинаковых чисел"

если б можно было считать выражение от обоих наборов чисел, то можно было б так:
|x1-y1|+|x2-y2|+...+|xn-yn|==0

Добавлено через 5 минут и 28 секунд
т.к. нужно считать выражение от каждого набора чисел в отдельности, необходимо, чтобы результат содержал достаточное количество информации, чтобы описать любой из возможных входных наборов

например, если мы говорим о числах, котоорые хранятся в 4 байтах, то результат должен занимать 4*n байта

иначе получится так, что два или больше набора могут дать один и тот же результат и буду ошибочно признаны равными

Это сообщение отредактировал(а) maxim1000 - 5.12.2008, 11:07


--------------------
qqq
PM WWW   Вверх
Petro123
Дата 5.12.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Цитата

Не понял... то есть следует выяснить, равны ли наборы? или только часть их? грубо, равны ли набороы,

Нужно сравнить полностью наборы. Если количество эл-в разное, то уже на равны.(по идее наборы это n-мерные вектора)
Цитата

Наверно так.
сравниваем x1+x2 и y1+y2, потом x1-x2 и y1-y2. Если и те и те равны, то попарно равны первых два числа. Затем аналогично проверяем следующие два числа, и так далее.

Каждый из наборов находится в удаленных друг от друга местах 
От каждого мы должны получить один ну или 2 сигнала(результат выражения), исходя из которых могли бы четко дать ответ на вопрос.
В вашем случае, если чилел в каждом наборе, например, 5 
то получаем 8 сигналов с каждого набора:
x1+x2, x1-x2, x2+x3, x2-x3, ...
y1+y2, y1-y2, y2+y3, y2-y3, ...
а потом уже анализируем(сравниваем сигналы).
Возникает вполне логичный попрос: Не проще ли тогда в качестве сигналов передавать сами числаsmile? 


 


Это сообщение отредактировал(а) Petro123 - 5.12.2008, 11:29
PM MAIL   Вверх
ksili
Дата 5.12.2008, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 2
Всего: 17



Petro123, что ты сегодня курил?
Всё это:
Цитата(Petro123 @  5.12.2008,  15:28 Найти цитируемый пост)
Каждый из наборов находится в удаленных друг от друга местах От первого мы должны получить один ну или 2 сигнала(результат выражения), исходя из которых могли бы четко дать ответ на вопрос.В вашем случае, если чилел в каждом наборе, например, 5 то получаем 8 сигналов с каждого набора:x1+x2, x1-x2, x2+x3, x2-x3, ...y1+y2, y1-y2, y2+y3, y2-y3, ...а потом уже анализируем(сравниваем сигналы).

придумал ты сам. Я писал в тему, исходя из других данных

Цитата(Petro123 @  5.12.2008,  15:28 Найти цитируемый пост)
Возникает вполне логичный попрос: Не проще ли тогда в качестве сигналов передавать сами числа? 

проще. передавай

Правильный ответ (если ты опять не изменишь условия): взять хэш от каждого набора чисел и сравнивать их.


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Petro123
Дата 5.12.2008, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Цитата

придумал ты сам. Я писал в тему, исходя из других данных

Цитата

Есть 2 набора чисел:
x1,x2,x3,...xn
y1,y2,y3,...yn

Цитата

Petro123, что ты сегодня курил?

Слушай если тебе внапряг, лучше вообще не отвечай.  


PM MAIL   Вверх
Akina
Дата 5.12.2008, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Petro123 @  5.12.2008,  12:44 Найти цитируемый пост)
если тебе внапряг, лучше вообще не отвечай

Он, кстати, дал тебе с учётом всех поправок и дополнений совершенно правильный ответ. ТО, что ты меняешь условие на ходу - твоя проблема, не его.
Если нужна 100% гарантия совпадения - надо передавать полные наборы. Ну ради уменьшения трафика их можно, скажем, заархивировать.
Если же достаточно 99.(9)% гарантии - то достаточно выбрать, посчитать, передать и сравнить хороший для этих данных хэш.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Petro123
Дата 5.12.2008, 12:42 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 288
Регистрация: 6.4.2007

Репутация: нет
Всего: нет



Цитата

 ТО, что ты меняешь условие на ходу - твоя проблема, не его.

Какие, интересно, я меняю условия?
Цитата

Есть 2 набора чисел:
x1,x2,x3,...xn
y1,y2,y3,...yn
Необходимо получить ответ на вопрос - равны ли эти числа попарно.
Сравнивать попарно нельзя. 
Сравнивать можно только 2 выражения, каждое из которых получено из своего набора чисел.
То есть необходимо составить формулу.
Например:
B1=x1+x2+...+xn
B2=y1+y2+...+yn
и затем сравниваем уже В1 и В2. Но очевидно по такой формуле ответ получен быть не может.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0587 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.