Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Работа для программиста > Фриланс
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2010, 22:00   #1
кот Бегемот
Новичок
Джуниор
 
Регистрация: 15.11.2010
Сообщений: 1
По умолчанию Восстановление исходного массива

Бесплатно эту задачу никто решать не хочет. Или не может. Что ж, я готов заплатить просто потому, что сам пока не могу найти алгоритм.
Итак:

Дан массив из неповторяющихся N натуральных чисел от 1 до N, например, для N=4
a[1]=3 a[2]=4 a[3]=2 a[4]=1.
По значениям элементов этого массива, используя их и как индексы, и как значения, несложно построить массив a[a[i]]:
a[a[1]]=2 a[a[2]]=1 a[a[3]]=4 a[a[4]]=3
это просто. труднее наоборот.

Итак, задача:
по имеющемуся массиву a[a[i]] найти любой вариант исходного массива a[i]
(ну, или сообщить, что такого варианта нет).


PS. Я пробовал решить эту задачу полным перебором перестановок. Решается. Но, только для небольших значений N. В условии N<=20000. Ну, мне и 1000 будет вполне. Может, рекурсивная процедура спасёт?

Условия работы: выполненный exe-шник и вашу цену на мыло zv983@yandex.ru. При согласии сторон, оплата гарантирована на мобилу или другими способами.

Последний раз редактировалось кот Бегемот; 18.11.2010 в 22:11.
кот Бегемот вне форума Ответить с цитированием
Старый 18.11.2010, 22:40   #2
frilans
Новичок
Джуниор
 
Регистрация: 15.06.2010
Сообщений: 0
По умолчанию

Выложи код который на малых числах работает....
frilans вне форума Ответить с цитированием
Старый 18.11.2010, 22:50   #3
кот Бегемот
Новичок
Джуниор
 
Регистрация: 15.11.2010
Сообщений: 1
По умолчанию

а зачем он тебе?
алгоритм такой: генератор перестановок перебирает все возможные перестановки чисел и каждую перестановку заносит в массив a[N], массив проверяется на соответствие a[a[i]]. Всё.
PS. Или тебя интересует сам генератор перестановок?

Последний раз редактировалось кот Бегемот; 18.11.2010 в 22:53.
кот Бегемот вне форума Ответить с цитированием
Старый 18.11.2010, 23:44   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Нужно обязательно ВСЕ варианты? Для некоторых видов массивов их может быть ОЧЕНЬ много..
Black Fregat вне форума Ответить с цитированием
Старый 18.11.2010, 23:50   #5
frilans
Новичок
Джуниор
 
Регистрация: 15.06.2010
Сообщений: 0
По умолчанию

Исходный код просил по той причине чтобы посмотреть в итоге у тебя выводился один вариант ответа или несколько т.к. как я понимаю данную задачку вариаций может быть более чем одна
frilans вне форума Ответить с цитированием
Старый 19.11.2010, 00:26   #6
кот Бегемот
Новичок
Джуниор
 
Регистрация: 15.11.2010
Сообщений: 1
По умолчанию

или я писать не умею, или вы читать не умеете:
цитата
найти любой вариант исходного массива

то есть мне нужен только 1 какой-нибудь вариант

ps хотя, как я убедился, с возрастанием N количество вариантов стремится к 1

Последний раз редактировалось кот Бегемот; 19.11.2010 в 00:35.
кот Бегемот вне форума Ответить с цитированием
Старый 19.11.2010, 10:32   #7
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

icq 169527143
mss вне форума Ответить с цитированием
Старый 19.11.2010, 12:32   #8
Tronix
Форумчанин
 
Аватар для Tronix
 
Регистрация: 15.06.2010
Сообщений: 740
По умолчанию

кот Бегемот,
Если кто-нибудь сделает, отпишитесь как решили - перебором, или все-таки нашли некий алгоритм? Заинтересовала просто задачка...
Чтобы понять рекурсию, сперва нужно понять рекурсию.
Tronix вне форума Ответить с цитированием
Старый 19.11.2010, 13:18   #9
кот Бегемот
Новичок
Джуниор
 
Регистрация: 15.11.2010
Сообщений: 1
По умолчанию

Тема неактуальна.

ps Tronix, отпишусь
кот Бегемот вне форума Ответить с цитированием
Старый 19.11.2010, 14:45   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

_кот Бегемот_, меня тоже заинтересовала задача... Правда, к решению приступить не успел, однако, присоединяюсь к мнению _Tronix_ - сообщите, пожалуйста, каким образом задача решена.

Удачи.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анализ исходного кода heart Безопасность, Шифрование 7 31.12.2009 08:26
Восстановление исходного кода из .exe файла. Mutagena Помощь студентам 3 06.12.2009 15:43
из четных чисел исходного массива сформировать новый массив sanya006 Помощь студентам 3 11.11.2009 19:14
Поменять местами правую и левую часть исходного массива антон2 Паскаль, Turbo Pascal, PascalABC.NET 4 07.04.2009 17:36
Два одномерных массива,представляющие собой средние значения строк и столбцов исходного. Делфи 3 <DimonM@n> Помощь студентам 2 23.11.2008 21:51