Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Вниз

Скорее математический вопрос...   Найти похожие ветки 

 
Дмитрий Д.   (2001-12-17 13:28) [0]

Не подскажет ли кто алгоритм для получения всех возможных значений составленных из элементов массива(например 3х3):

q w e
a s d
z x c

то есть result может быть для первой строки:
qwe
qwd
qwc
qse
qsd
qsc

и так далее...
важен сам алгоритм, потому как значения массива могут быть как буквы так и целые слова

Заранее спасибо.


 
Виктор Щербаков   (2001-12-17 13:33) [1]

Три вложенных цикла. Один по первому столбцу, другой по второму, третий по третьему. Проблема то в чем?


 
Дмитрий Д.   (2001-12-17 13:42) [2]

это понятно
проблема в том у меня число и строк и столбцов может быть различным...
(3х3 я для примера взял)
поэтому и нужен алгоритм


 
Виктор Щербаков   (2001-12-17 13:46) [3]

Тогда рекурсивный перебор:
Функция вызывает сама себя, передавая в кач. параметра номер столбца массива. И так пока не дойдет до последнего столбца (или до первого). В самой функции получится цикл по одному столбцу.


 
Дмитрий Д.   (2001-12-17 13:59) [4]

а кусочек кода можно ?
про рекурсию я думал только никак чтото сообразить не могу


 
Виктор Щербаков   (2001-12-17 14:11) [5]

Че то типа этого (на скорую руку писал).
Массив сам заполнишь чем надо.

procedure TForm1.Button2Click(Sender: TObject);
var a: array[1..3, 1..3] of char;
CurLine: String;
procedure Proc1(Col: Integer);
var i: Integer;
begin
for i := 1 to 3 do
begin
if Col = 0 then
begin
Memo1.Lines.Add(CurLine);
exit;
end;
CurLine := CurLine + a[i, col];
proc1(Col - 1);
SetLength(CurLine, Length(CurLine) - 1);
end;
end;
begin
CurLine := "";
proc1(3);
end;





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

Форум: "Основная";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.76 MB
Время: 3.122 c
1-22179
ikar
2001-12-21 09:10
2002.01.08
Как перебрать корневые узлы в TTreeView ?


6-22290
SineD
2001-10-09 17:48
2002.01.08
Вопрос по Sockets API


14-22396
Merlin
2001-11-02 09:54
2002.01.08
Сегодня радостный день! Кроме того, что пятница...


1-22071
KAA
2001-12-19 10:48
2002.01.08
Два сервиса мешают друг другу.


6-22316
dmur
2001-09-24 20:58
2002.01.08
Перехват ошибок при соединении с помощью сокетов





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский