Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.03;
Скачать: CL | DM;

Вниз

Перестановки   Найти похожие ветки 

 
Dmitry S ©   (2008-06-17 19:25) [0]

Чтото не могу сообразить.
К примеру есть алфавит состоящий из N символов: {0, 1, 2, ...}
Нужно составить все возможные слова длиной M (M<=N), так, чтобы в слове ни один символ не повторялся.
И как посчитать количество таких слов длиной M?

Например, алфавит {0, 1} (N = 2)
При M = 1: два слова: 0, 1
При M = 2: два слова: 01, 10

Например, алфавит {0, 1, 2} (N = 3)
При M = 1: три слова: 0, 1, 2
При M = 2: шесть слов: 01, 02, 10, 12, 20, 21
При M = 3: тоже шесть слов 012, 021, 102, 120, 201, 210.


 
Dmitry S ©   (2008-06-17 19:35) [1]

Блин, форум волшебный. Стоит только запостить, как сразу ответ в голову приходит.
Кому интересно: N!/(N-M)!


 
Zeqfreed ©   (2008-06-17 20:35) [2]

Есть еще более волшебная штука :)
http://en.wikipedia.org/wiki/Permutation#Counting_permutations


 
DrPass ©   (2008-06-17 20:36) [3]

http://www.nsu.ru/mmf/tvims/chernova/tv/lec/node3.html


 
Внук ©   (2008-06-17 22:33) [4]

Да, только эта короткая красивая формула из комбинаторики плоха по двум причинам. Во-первых, из нее не сразу виден способ решения задачи, а во-вторых, она содержит лишние вычисления. Поэтому куда лучше тупо
N*(N-1)*(N-2)*...*(N-M+1) .



Страницы: 1 вся ветка

Текущий архив: 2008.08.03;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.027 c
2-1214942165
light-blr
2008-07-01 23:56
2008.08.03
Как узнать, используется ли файл другим приложением?


15-1213879771
User_1
2008-06-19 16:49
2008.08.03
El-Lib


2-1215332395
RealSwift
2008-07-06 12:19
2008.08.03
Thread creation error - Недостаточно памяти


2-1214976925
lewka-serdceed
2008-07-02 09:35
2008.08.03
ключ в реестре


2-1214932363
Pasha L
2008-07-01 21:12
2008.08.03
Есть ли аналог FillChar, работающий с шагом более единицы