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


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Politov                       2:5015/176.18  21 Mar 2002  07:24:53
 To : "Vasily Ushakoff"
 Subject : Re^2:  Сочетания K из N, где имеет значение порядок
 -------------------------------------------------------------------------------- 
 
 
 До меня дошли слухи, что *20.03.02* *18:18:28* пролетало сообщение
 от Vasily к *Alexander Krotoff* про *"Re: Сочетания K из N, где имеет значение
 порядок"*. И я решил вмешаться.
 
  >> VU> Полазил по Googl'у, но видел только алгоритмы, где порядок не имеет
  U> значения...
  >> Так помножь результат на количество перестановок из K элементов ;-) А еще
  >> лучше возми формулу и выполни умножение и сокращение ;-)
 
  U> Да мне не количество нужно, а сами варианты!
 
   Вот вроде рабочий вариант. Сначала генерятся сочетания, а по ним размещения:
 
 {$A+,B-,D+,E+,F-,G+,I+,L+,N+,O-,P-,Q-,R-,S-,T-,V+,X+,Y+}
 {$M 16384,0,655360}
 var
   n,k: integer;
   a,o: array[0..10] of byte;
 procedure init;
 begin
   assign(output, 'a.out'); rewrite(output);
   assign(input, 'a.in'); reset(input);
   read(n,k);
   close(input);
 end;
 procedure gen;
 var i,j,s: integer;
 begin
   a:= o;
   while true do
   begin
     for i:= 1 to k do write(a[i]);
     writeln;
     i:= k; j:= k;
     while(a[i]<a[i-1])do dec(i);
     while(a[j]<a[i-1])do dec(j);
     if i=1 then break;
     s:= a[i-1]; a[i-1]:= a[j]; a[j]:= s;
     for j:= 1 to (k-i+1)shr 1 do
     begin
       s:= a[i+j-1];
       a[i+j-1]:= a[k-j+1];
       a[k-j+1]:= s;
     end;
   end;
 end;
 procedure rec(p: integer);
 var i: integer;
 begin
   for i:= o[p-1]+1 to n-k+p do
   begin
     o[p]:= i;
     if p=k then gen else rec(p+1);
   end;
 end;
 procedure run;
 begin
   o[0]:= 0;
   rec(1);
 end;
 procedure done;
 begin
   close(output);
 end;
 begin
   init;
   run;
   done;
 end.
 
 np: Helloween - Save Us
 
 Искренне Ваш
                Sergey Politov
 --- WP/95 Rus 1.78 Релиз 1  Reg.
  * Origin: Metal Invaders. (2:5015/176.18)
 
 

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

 Тема:    Автор:    Дата:  
 Сочетания K из N, где имеет значение порядок   Vasily Ushakoff   20 Mar 2002 17:05:21 
 Сочетания K из N, где имеет значение порядок   Max Alekseyev   20 Mar 2002 15:34:02 
 Re: Сочетания K из N, где имеет значение порядок   Alexander Krotoff   20 Mar 2002 19:10:14 
 Re: Сочетания K из N, где имеет значение порядок   Vasily Ushakoff   20 Mar 2002 19:18:28 
 Re^2: Сочетания K из N, где имеет значение порядок   Sergey Politov   21 Mar 2002 07:24:53 
 Re: Сочетания K из N, где имеет значение порядок   Andrew Doroshev   21 Mar 2002 14:47:41 
Архивное /ru.algorithms/39914d42c397.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional