|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
проверить есть ли масив (1d) комбинацией натуральних чисел
Всем привет!) Столкнулся с проблемой: никак не могу придумать код для того, чтоб проверить есть ли масив (1d) комбинацыей натуральних чисел (то есть перестановкой)...
у меня есть задача, где надо создать масив j[i], который берется из равенства j[a[i]]=i (а[i] вводит пользователь). то есть если ввести масив А : 2 4 3 5 1, должно выдать результат : 5 1 3 2 4... всё сделал, но если написать два одинаковых числа, то одно из чисел результата будет примерно таким "13256544".... код моей программы: Код:
for i:=1 to n do begin j[a[i]]:=i; end; прошу помощи с кодом чтоб проверять на перестановку, либо с новым кодом, где всё делается в одном масиве (масива j - ненадо)... Спасибо!) |
#2
|
||||
|
||||
Если у тебя массив n-элементов, тогда просто проверь нет ли повторов в массиве. А так же не выходят ли числа за отрезок от 0 до n ( или [1;n] ).
|
#3
|
||||
|
||||
Konrad
в том и вся фишка, что мне надо проверить не только что нет повторов, но и то, что все числа должны быть перестановкой!) т.е если есть n=10, то не допустимое значение "11" хотя бы для одного елемента...)) ето критерий того, что у нас есть перестановка)) алсо, в условии задачи должна быть задана в масив А именно она) |
#4
|
||||
|
||||
Цитата:
Другими словами для условия перестановки достаточно чтобы каждый элемент множества был использзован один раз и не выходил за заданный диапазон. Последний раз редактировалось Konrad, 11.12.2010 в 17:22. |
#5
|
||||
|
||||
Цитата:
перестановка ето не только когда нет повторов... надо чтоб входили числа диапазона от 1 до n... |
#6
|
||||
|
||||
Код:
for i := 0 to n do if j[i] > n then // Error! Меня греют ваши плюсы к моей репутации... |
#7
|
||||
|
||||
Цитата:
Цитата:
Чукча не читатель - чукча писатель.... |