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

Вниз

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

 
Sam Stone ©   (2004-02-05 21:23) [0]

Доброго времени суток.
Что-то я никак не могу сладить со следующей проблемой: имеем n символов, нужно написать все комбинации определенной длины. Т.е., если у нас есть abcde и длина 3, то результатом должно быть следующее: aaa,aab,aac,...,abc,...,eee.
Помогите советом или ссылкой


 
Stilgar ©   (2004-02-05 22:31) [1]

Тут нужно делать систему счисления с основанием 5. Я этим никогда не занимался, но тут можно использовать обычную человеческую логику - проход справа налево, если цифра максимальная, ставим минимальную и увеличиваем цифру слева:

var
Chislo: string;
Times, I, J: Integer;
begin
Chislo := "aaa";
Times := основание в степени длинны комбинации;

for J := 1 to Times do
for I := Length(Chislo) downto 1 do
if Chislo[I] = "e" then
begin
Chislo[I] := "a";
Chislo[I-1] := Chr(Ord(Chislo[I-1]) + 1);
end;

end;

Еще конечно ввести проверку на переполнение, но идею я подал.
P.S. Быстродействия никакого, но для задачи подходит.



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

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

Наверх




Память: 0.46 MB
Время: 0.013 c
7-53800
maxXP
2003-12-02 19:23
2004.02.17
Как определить нажата, отпущена кокретная клавиша клавиатуры a-z


7-53780
Геннадий
2003-11-21 08:02
2004.02.17
Запуск прогаммы с привилегиями администратора


4-53804
truntaev
2003-12-14 11:18
2004.02.17
Как программно позиционировать мышь и нажимать ее кнопки на р.ст.


14-53707
pasha_golub
2004-01-29 14:20
2004.02.17
http://www.infoter.narod.ru/


4-53824
FeRR
2003-12-15 07:52
2004.02.17
Wh_Mouse & MouseHookStruct