Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.12.2010, 14:59
Аватар для erNesto
erNesto erNesto вне форума
Прохожий
 
Регистрация: 23.11.2010
Сообщения: 8
Репутация: 10
Радость проверить есть ли масив (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  
Старый 11.12.2010, 15:52
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Если у тебя массив n-элементов, тогда просто проверь нет ли повторов в массиве. А так же не выходят ли числа за отрезок от 0 до n ( или [1;n] ).
Ответить с цитированием
  #3  
Старый 11.12.2010, 16:14
Аватар для erNesto
erNesto erNesto вне форума
Прохожий
 
Регистрация: 23.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Konrad
в том и вся фишка, что мне надо проверить не только что нет повторов, но и то, что все числа должны быть перестановкой!) т.е если есть n=10, то не допустимое значение "11" хотя бы для одного елемента...)) ето критерий того, что у нас есть перестановка)) алсо, в условии задачи должна быть задана в масив А именно она)
Ответить с цитированием
  #4  
Старый 11.12.2010, 17:13
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от erNesto
в том и вся фишка
В том то и фишка что если не будет повторов то это и будет перестановка.

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

Последний раз редактировалось Konrad, 11.12.2010 в 17:22.
Ответить с цитированием
  #5  
Старый 11.12.2010, 19:24
Аватар для erNesto
erNesto erNesto вне форума
Прохожий
 
Регистрация: 23.11.2010
Сообщения: 8
Репутация: 10
По умолчанию

Цитата:
Сообщение от Konrad
В том то и фишка что если не будет повторов то это и будет перестановка.

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


перестановка ето не только когда нет повторов... надо чтоб входили числа диапазона от 1 до n...
Ответить с цитированием
  #6  
Старый 11.12.2010, 19:42
Аватар для BoRoV
BoRoV BoRoV вне форума
Начинающий
 
Регистрация: 08.09.2008
Сообщения: 193
Репутация: 12694
По умолчанию

Код:
for i := 0 to n do
  if j[i] > n then
    // Error!
__________________
Меня греют ваши плюсы к моей репутации...
Ответить с цитированием
  #7  
Старый 11.12.2010, 20:33
Аватар для Konrad
Konrad Konrad вне форума
Эксперт
 
Регистрация: 19.03.2009
Сообщения: 1,261
Репутация: 45834
По умолчанию

Цитата:
Сообщение от erNesto
перестановка ето не только когда нет повторов... надо чтоб входили числа диапазона от 1 до n...
А я о чем писал? -
Цитата:
Сообщение от Konrad
А так же не выходят ли числа за отрезок от 0 до n ( или [1;n] ).

Чукча не читатель - чукча писатель....
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter