Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Ihor Bobak                           2:5020/400     01 Jun 2001  11:54:09
 To : All
 Subject : Re: Hомер перестановки
 -------------------------------------------------------------------------------- 
 
 
 > Возник вот такой вопрос:
 > есть некоторая перестановка чисел из множества.
 > (очевидно, количество этих перестановок N! - факториал)
 > Как бы так задать нумерацию этих перестановок,
 > чтобы для данной перестановки, быстро определить ее
 > порядковый номер, и, что главнее, чтобы для кажодго
 > номера быстро определить перестановку,
 
 var
   n,i,j,l,Res: longint;
   a, Fact: array[0..12] of longint;
 
 begin
   readln(n);
   for i:=1 to n do read(a[i]);
 
   Fact[0] := 1;
   for i:=1 to 12 do
     Fact[i] := Fact[i-1]*i;
 
   res := 1;
   for i:=1 to n do
   begin
     l := 0;
     for j:=1 to i-1 do
       if a[j]<a[i] then inc(l);
     Res := Res + (a[i]-1-l)*Fact[n-i];
   end;
 
   writeln(Res);
 end.
 --- ifmail v.2.15dev5
  * Origin: MTU-Intel ISP (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Hомер перестановки   Alex Bachin   30 May 2001 16:58:24 
 Hомер перестановки   Evgenij Masherov   30 May 2001 20:15:55 
 Hомер перестановки   Max Alekseyev   31 May 2001 22:49:08 
 Re: Hомер перестановки   Ihor Bobak   01 Jun 2001 11:54:09 
Архивное /ru.algorithms/910438d6a9b4.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional