![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Tri |
![]()
Сообщение
#1
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 94 Регистрация: 26.10.2007 Город: Тюмень Учебное заведение: ТГНГУ Вы: студент ![]() |
Есть вот такая задача:
Цитата Напишите программу для определения при разных значениях n числа перестановок PI=(pi 1,pi 2,…,pi n) на множестве {1,2,…n}, которые обладают тем свойством, что из pi i- i = pi j-j (mod n) следует i=j. Я не совсем понимаю как реализовать условие, и что должно получиться. Подскажите, пожалуйста, решение. Вот такие наработки: Код { программа генерации перестановок N элементного множества в лексикографическом порядке } Program perms; var i, j, h, n, k, x, y: integer; a:array[0 .. 100] of integer; { массив для хранения перестановки } {процедура вывода полученной перестановки} procedure output; var i: integer; begin writeln; for i:=1 to n do write(a[i],' '); end; begin write('количество элементов перестановки: '); readln(n); fillchar(a, sizeof(a), 0); { ввод элементов начальной перестановки } for i:=1 to n do a[i]:=i; i:=n; j:=i; repeat //здесь пытаюсь проверить условие (не уверена, что оно вообще здесь должно быть) x:= a[i]-i; y:=a[j]-j mod n; if (x=y) and (i=j) then output; { вывод текущей перестановки } i:=n; while a[i-1]>a[i] do dec(i); { поиск скачка } j:=i-1; h:=a[j]; while a[i+1]>h do inc(i); { поиск первого меньшего элемента } a[j]:=a[i]; a[i]:=h; i:=j+1; k:=n; while i<k do begin { перестановка ”хвоста” } h:=a[i]; a[i]:=a[k]; a[k]:=h; inc(i); dec(k) end until j=0; end. Заранее большое спасибо! |
![]() ![]() |
creer |
![]()
Сообщение
#2
|
Студент ![]() ![]() Группа: Продвинутые Сообщений: 121 Регистрация: 28.10.2007 Город: Екатеринбург Учебное заведение: УГТУ-УПИ Вы: студент ![]() |
Перевожу на русский язык (IMG:style_emoticons/default/smile.gif).
У нас есть куча объектов какого-то класса pi, а именно числа. Чисел у нас ровно n, причем начинаются они с единицы. И мы хотим эти числа перемешать. Но кто-то захотел, чтобы при перемешивании (всеми способами) мы кое-что посчитали, а именно, сколько же всего возможно комбинаций при данном числе объектов, когда все значения выражения "текущее положение числа минус само число" будут различны, причем по модулю n. У кого есть возражения? (IMG:style_emoticons/default/smile.gif) |
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 21:15 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru