Re: Перебор чисел

From
Andrew Ezhguroff ()
To
Dmitriy Gerasimenko
Date
2002-07-23T14:24:31Z
Area
RU.ALGORITHMS
From: "Andrew Ezhguroff" <eandr@com2com.ru>

Привет! "Dmitriy Gerasimenko" <gerasimenko@karelia.ru>  сообщил(а):

 DG> Ну а коли так! То цикл тут не поможет, и применять следует
 DG> ПЕРЕСТАНОВКУ!

А какое отношение это имеет к исходной задаче? Требуется найти все строки
длинной N, содержащие (в любом кол-ве) символы заданного алфавита. Где здесь
перестановка и N! ?

Требуемые M^N строк генерирует, например, такой код:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int Tab_Out[256];

int main(int argc, char **argv){
  if(argc<3)return 2;
  int Len_Out = atoi(argv[1]);
  int Cnt_Chr = strlen(argv[2]);
  while(1){
    for(int i=0; i<Len_Out; putchar(argv[2][Tab_Out[i++]]));
    putchar('\n');
    for(int i=0; (Tab_Out[i]=(Tab_Out[i]+1)%Cnt_Chr)==0;)
      if(++i>=Len_Out)return 0;
  }
}

С уважением, Андрей.


-- 
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5
 * Origin: Talk.Mail.Ru (2:5020/400)