![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Bobrina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
Текст задачи:
"Составить функцию, которая, получив два массива, определяет, равны ли они. Два массива будем считать равными, если они содержат одинаковые числа. Используя эту функцию решить следующую задачу: Даны три массива действительных чисел. Если эти три массива равны между собой, создать новый массив, все элементы которого равны утроенным элементам одного из них, в противном случае создать массив, склеив все три исходных массива в порядке 1, 2 и 3." Собственно не могу составить функцию проверки массивов на равенство. Проблема в том, что по словам преподавателя, два массива равны когда в них содержатся одни и те же числа в любом порядке, т.е. {1,2,3} и {3,2,1} - одинаковые. Сначала отсортировать массивы, а потом сравнить соответствующие элементы нельзя, ибо массивы будут использоваться после проверки. Создавать дополнительные массивы и сортировать и анализировать их тоже нельзя, т.к. нерационально. Брать элемент одного массива, и просто искать его во втором тоже не получится, тогда {7,7,7} и {1,1,7} получатся равными. Видимо надо делать какой-то флажок для элементов, которые уже мы "использовали" во втором массиве. Но боюсь опять придерутся что будет нерационально. Посоветуйте что-нибудь, пожалуйста. |
|||
|
||||
| bobik02 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 451 Регистрация: 26.11.2007 Репутация: 3 Всего: 14 |
Тут бы наверное очень пригодился мат. анализ (задачи оптимизации).
Интересная задчка. -------------------- Have a nice day |
|||
|
||||
| Bobrina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
Да вот очень даже интересная, настолько что никак не могу придумать как же её сделать.
|
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Разве что, пройтись XOR`ом по массивам...
-------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| volatile |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 8 Всего: 85 |
Dov, одинаковый XOR - это вовсе не гарантия одинакового набора. Например попробуйте эти массивы, они все с одинаковым ксором:
Рискну предположить, что препод слегка перегнул палку. Из условия это вовсе не следует. Он массивы спутал со множествами. Но это не можества, тем более что Для множеств, не существует порядка склеивания. (косвенное подтверждение что составители не имели ввиду множества). Данная задача, в том виде как поставлена, имхо, не решаема. Нужно либо дополнительная память (копия массива для сортировки, или примерно такой-же массив флагов) либо, дополнительное время (подсчет кол-ва символов в обоих массивах, на каждой итерации ) Чисто интуитивно, могу конечно ошибаться... |
||||
|
|||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
volatile, а это никто и не утверждает. А ты пробовал? Там, выше, функция есть для проверки "на равенство" любых двух массивов. Имеется ввиду "равенство", данное по условию задачи, т.е. когда в массивах находятся одинаковые значения, но в разном порядке. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| Bobrina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
Спасибо большое, вроде с преподователем сошлись на том, что будем считать что они должны состоять из одинаковых элементов на любых местах и в любом количестве. Т.е. {7,7,1} {7,1,1} {7,1,1} - все равны. Проверяю это проверкой чтобы все числа из первого были во втором, а потом наоборот, числа из второго в первом.
|
|||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 8 Всего: 85 |
да я пробовал http://liveworkspace.org/code/bcf5f06dbed0...444eba7a1dd7f06 а это вообще имеет какой-то смысл? |
|||
|
||||
| Dov |
|
|||
![]() аСинизатор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1721 Регистрация: 10.5.2003 Где: Эрец-Исраэль Репутация: 50 Всего: 88 |
Да, ошибочка вышла... Видно они тренируются в работе с массивами. -------------------- Тут вечности запах томительный, И свежие фрукты дешевые, А климат у нас – изумительный, И только соседи – #уевые. Игорь Губерман. |
|||
|
||||
| Bobrina |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 26.1.2009 Где: Москва Репутация: нет Всего: нет |
||||
|
||||
| volatile |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2107 Регистрация: 7.1.2011 Репутация: 8 Всего: 85 |
Вот уважаю таких людей! Что интересно, я даже в этом случае не вижу быстрого алгоритма. Ваш способ имеет сложность N^2 сортировка и то быстрее. (нормальная сортировка N*logN) Впрочем, если главная цель и этого преподавателя удовлетворил этот способ, то пусть будет так... Добавлено через 11 минут и 49 секунд хотя есть способ быстрее, но нужна доп. память... |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |