Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.10.2009, 16:00   #1
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
Вопрос Анаграммы

Для данного слова длиной до 12 символов подсчитать число различных анаграмм (слов полученных перестановкой его букв).
Пример. лото Ответ: 12
Примечание. Имеются в виду слова: лото, лоот, лтоо, оолт, олот, олто, тоол, толо, тлоо, оотл, отло, отол
Паскалька^^ вне форума Ответить с цитированием
Старый 25.10.2009, 16:03   #2
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Решение таких задач есть в разделе комбинаторика или чтото такое.
Такчто смотреть в ту сторону.. Элементарно всё.
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 25.10.2009, 16:08   #3
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
По умолчанию

я себе уже всю голову сломала...
а можно ссылочку на раздел?
Паскалька^^ вне форума Ответить с цитированием
Старый 25.10.2009, 16:27   #4
Вавел из ГМТУ
Форумчанин
 
Регистрация: 19.06.2009
Сообщений: 896
По умолчанию

Возьмем m белых карточек, занумерованныхот 1 до m, и n черных
карточек, занумерованных от 1 до n. Всего имеется (m+n)! перес-
тановок этих карточек. Возьмем произвольно одну из таких перес-
тановок. На белой карточке напишем букву Б, а на черной - букву
Ч. Получим анаграмму слова, состоящего из m букв Б и n букв Ч.
Одна и та же анаграмма может возникнуть у нас m!*n! способами,
поэтому различных анаграмм этого слова имеется

Код:
                                   (m+n)!
                      С(m,n) = -------
                                      m! n!
Тема называется комбинаторика. Формулу я привёл.
В задаче используется факториал, и имено поэтому стоит ограничение "до 12 символов".
Вавел из ГМТУ вне форума Ответить с цитированием
Старый 25.10.2009, 16:40   #5
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

когда-то делал подобное оооо-очень давно, поделюсь (алгоритм во сне решил )...
Код:
  USES CRT;
 LABEL 1,2;
 const T=1.111111111;
function fak(b:integer):Longint;
var
p:Longint;
j:integer;
begin
writeln('Программа перебора вариантов из букв слова...');
p:=1;
for j:=2 to b do p:=p*j;
fak:=p;
END;
VAR A:ARRAY[1..50] OF string;{'INTEGER;'}
    M,X1,k,Q,X,Y,I,U:Longint;
    n:Longint;
    w,j,nz,z:integer;
    H:REAL;
    B:ARRAY[1..50] OF INTEGER;
    s:string;
BEGIN
 WRITE('Введите слово...'); readln(s);
 z:=length(s);
 nz:=trunc(80/(z+1));
 j:=nz;
 w:=0;
 M:=z;
 Q:=1;
 FOR I:=1 TO M-1 DO  Q:=Q*10;
 X:=TRUNC(T*Q);
 REPEAT
  1: {'ПРОД.'};
    X:=X+1;
    X1:=X;
    FOR I:=1 TO M DO
     BEGIN
      H:=X1/10;Y:=(X1 MOD 10);
      X1:=TRUNC(H);
      B[I]:=y;
     END;
    FOR I:=1 TO M DO IF (B[i]>M) OR (B[I]=0) THEN GOTO 1;
    FOR U:=1 TO M-1 DO FOR I:=U+1 TO M DO IF (B[U]=B[I]) THEN GOTO 1;
    IF (B[1]>M) THEN GOTO 2;
    FOR I:=1 TO M DO WRITE(s[b[i]]);
    w:=w+1;
    if j=w then
     begin
      WRITEln;
      j:=j+nz;
     end   else WRITE(' ');
    n:=n+1;
 UNTIL (n>fak(z));
2: writeln; writeln(n-1);
  WRITELN(' Конец... ');
 readln;
END.
Вложения
Тип файла: zip perebor.zip (6.3 Кб, 25 просмотров)
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.10.2009, 16:49   #6
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
По умолчанию

Вавел из ГМТЭ, я уже решала эту задачу с факториалом, но у меня не получается посчитать буквы, которые повторяются в слове и сделать их отдельными переменными.

raxp, а ваша программа не исключает повторы анаграмм
Паскалька^^ вне форума Ответить с цитированием
Старый 25.10.2009, 16:54   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
raxp, а ваша программа не исключает повторы анаграмм
- повторы в программе исключены... единственно, последний элемент на экране - повторяет первую комбинацию
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 25.10.2009 в 17:07. Причина: повторов нет
raxp вне форума Ответить с цитированием
Старый 25.10.2009, 16:57   #8
Паскалька^^
Пользователь
 
Регистрация: 25.11.2008
Сообщений: 53
По умолчанию

raxp, такую программу как у Вас я написала в более кратком варианте, а вот именно исключение вызвало у меня затруднения
Паскалька^^ вне форума Ответить с цитированием
Старый 25.10.2009, 17:01   #9
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
var s:string;
      
   a:array ['a'..'z'] of Integer;
   i,dl:Integer;
   k:Char;
   begin
     s:='loto';
     dl:=Length(s);
     for k:='a' to 'z' do
      a[k]:=0;
     for i:=1 to length(s) do
       Inc(a[s[i]],1);
     for i:=1 to length(s) do
     if a[s[i]]>1 then begin
          dl:=dl-a[s[i]]+1;
          a[s[i]]:=0;
          end;
     Writeln(dl);// кол-во символов без повторов плюс повторы по 1 разу
     Readln;
  end.
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 25.10.2009 в 17:05.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 25.10.2009, 17:06   #10
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
а вот именно исключение вызвало у меня затруднения
- вот исключения у меня исключаются, пробуйте exe-ник
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 25.10.2009 в 17:09.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите (фразы анаграммы) Leopold666 Помощь студентам 5 09.08.2007 18:22