Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail



Ответ
 
Опции темы
Старый 08.01.2017, 19:54   #1
Михаил Юрьевич
Участник клуба
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 626
Репутация: 33
По умолчанию Вычислить все комбинации

Подскажите как вычислить все комбинации с записью в memo
в одной строке цифры: 1,2,3,4 и в другой 5,6,7,8 . Нужно высчитать
все комбинации например:
1-5
1-6
1-7
1-8
2-5 и т.д.
и заканчивая
1234 - 5678
__________________
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума   Ответить с цитированием
Старый 08.01.2017, 23:34   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 21,030
Репутация: 4779
По умолчанию

обычная комбинаторика.
не вижу прниципиальных сложностей.

вот любопытно.
Цитата:
Сообщение от Михаил Юрьевич Посмотреть сообщение
1-5
1-6
1-7
1-8
2-5 и т.д.
напишите, что должно идти после строчек:

4-7
4-8
?????
?????
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 09.01.2017, 00:14   #3
kropotkina-alice
Форумчанин
 
Аватар для kropotkina-alice
 
Регистрация: 27.10.2014
Адрес: в России
Сообщений: 459
Репутация: 454
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
напишите, что должно идти после строчек:
4-7
4-8
?
Скорее всего
12-5
12-6
...
13-5
13-6
...
23-5
23-6
...
kropotkina-alice вне форума   Ответить с цитированием
Старый 09.01.2017, 00:43   #4
Михаил Юрьевич
Участник клуба
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 626
Репутация: 33
По умолчанию

1-5
1-6
1-7
1-8
1-56
1-57
1-58
1-567
1-568
1-5678
12-5
12-6
12-7
12-8
12-56
ну и так далее ,нужно найти все комбинации левой и правой стороны
от 1-5 до 1234-5678
__________________
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума   Ответить с цитированием
Старый 09.01.2017, 00:43   #5
Михаил Юрьевич
Участник клуба
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 626
Репутация: 33
По умолчанию

Цитата:
Сообщение от kropotkina-alice Посмотреть сообщение
Скорее всего
12-5
12-6
...
13-5
13-6
...
23-5
23-6
Именно так ,все цифры слева и все справа должны быть
__________________
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума   Ответить с цитированием
Старый 09.01.2017, 15:38   #6
Михаил Юрьевич
Участник клуба
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 626
Репутация: 33
По умолчанию

куда копать то, какие должны быть условия в цикле?
__________________
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума   Ответить с цитированием
Старый 09.01.2017, 18:34   #7
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 21,030
Репутация: 4779
По умолчанию

если нужны размещения (без повторений),
тогда посмотрите этот проект:
исходники: project_sources.rar
EXEшник: project_EXE.rar

процедуру генерации размещений я нагло скопипастил из книжки Окулов С.М. "Программирование в алгоритмах"


последовательность генерации получается такой:
Код:

1 - 5
1 - 6
1 - 7
1 - 8
1 - 56
1 - 57
1 - 58
1 - 65
1 - 67
1 - 68
1 - 75
1 - 76
1 - 78
1 - 85
1 - 86
1 - 87
1 - 567
1 - 568
1 - 576
1 - 578
1 - 586
1 - 587
1 - 657
1 - 658
1 - 675
1 - 678
1 - 685
1 - 687
1 - 756
1 - 758
1 - 765
1 - 768
1 - 785
1 - 786
1 - 856
1 - 857
1 - 865
1 - 867
1 - 875
1 - 876
1 - 5678
1 - 5687
1 - 5768
1 - 5786
1 - 5867
1 - 5876
1 - 6578
1 - 6587
1 - 6758
1 - 6785
1 - 6857
1 - 6875
1 - 7568
1 - 7586
1 - 7658
1 - 7685
1 - 7856
1 - 7865
1 - 8567
1 - 8576
1 - 8657
1 - 8675
1 - 8756
1 - 8765
2 - 5
2 - 6
2 - 7
2 - 8
2 - 56
2 - 57
2 - 58
2 - 65
2 - 67
2 - 68
2 - 75
2 - 76
2 - 78
2 - 85
2 - 86
2 - 87
2 - 567
......
4321 - 658
4321 - 675
4321 - 678
4321 - 685
4321 - 687
4321 - 756
4321 - 758
4321 - 765
4321 - 768
4321 - 785
4321 - 786
4321 - 856
4321 - 857
4321 - 865
4321 - 867
4321 - 875
4321 - 876
4321 - 5678
4321 - 5687
4321 - 5768
4321 - 5786
4321 - 5867
4321 - 5876
4321 - 6578
4321 - 6587
4321 - 6758
4321 - 6785
4321 - 6857
4321 - 6875
4321 - 7568
4321 - 7586
4321 - 7658
4321 - 7685
4321 - 7856
4321 - 7865
4321 - 8567
4321 - 8576
4321 - 8657
4321 - 8675
4321 - 8756
4321 - 8765


Последний раз редактировалось Serge_Bliznykov; 09.01.2017 в 18:36.
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 09.01.2017, 19:15   #8
Михаил Юрьевич
Участник клуба
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 626
Репутация: 33
По умолчанию

Огромное вам спасибо! Именно то что надо
__________________
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума   Ответить с цитированием
Старый 09.01.2017, 19:29   #9
Plague
Забанен
Форумчанин
 
Аватар для Plague
 
Регистрация: 01.11.2006
Адрес: ЯНАО
Сообщений: 354
Репутация: 376
По умолчанию

а не так должно было быть?
Код HTML:
1 - 5
1 - 6
1 - 7
1 - 8
1 - 56
1 - 57
1 - 58
1 - 67
1 - 68
1 - 78
1 - 567
1 - 568
1 - 578
1 - 678
1 - 5678
2 - 5
2 - 6
2 - 7
2 - 8
2 - 56
2 - 57
2 - 58
2 - 67
2 - 68
2 - 78
2 - 567
2 - 568
2 - 578
2 - 678
2 - 5678
3 - 5
3 - 6
3 - 7
3 - 8
3 - 56
3 - 57
3 - 58
3 - 67
3 - 68
3 - 78
3 - 567
3 - 568
3 - 578
3 - 678
3 - 5678
4 - 5
4 - 6
4 - 7
4 - 8
4 - 56
4 - 57
4 - 58
4 - 67
4 - 68
4 - 78
4 - 567
4 - 568
4 - 578
4 - 678
4 - 5678
12 - 5
12 - 6
12 - 7
12 - 8
12 - 56
12 - 57
12 - 58
12 - 67
12 - 68
12 - 78
12 - 567
12 - 568
12 - 578
12 - 678
12 - 5678
13 - 5
13 - 6
13 - 7
13 - 8
13 - 56
13 - 57
13 - 58
13 - 67
13 - 68
13 - 78
13 - 567
13 - 568
13 - 578
13 - 678
13 - 5678
14 - 5
14 - 6
14 - 7
14 - 8
14 - 56
14 - 57
14 - 58
14 - 67
14 - 68
14 - 78
14 - 567
14 - 568
14 - 578
14 - 678
14 - 5678
23 - 5
23 - 6
23 - 7
23 - 8
23 - 56
23 - 57
23 - 58
23 - 67
23 - 68
23 - 78
23 - 567
23 - 568
23 - 578
23 - 678
23 - 5678
24 - 5
24 - 6
24 - 7
24 - 8
24 - 56
24 - 57
24 - 58
24 - 67
24 - 68
24 - 78
24 - 567
24 - 568
24 - 578
24 - 678
24 - 5678
34 - 5
34 - 6
34 - 7
34 - 8
34 - 56
34 - 57
34 - 58
34 - 67
34 - 68
34 - 78
34 - 567
34 - 568
34 - 578
34 - 678
34 - 5678
123 - 5
123 - 6
123 - 7
123 - 8
123 - 56
123 - 57
123 - 58
123 - 67
123 - 68
123 - 78
123 - 567
123 - 568
123 - 578
123 - 678
123 - 5678
124 - 5
124 - 6
124 - 7
124 - 8
124 - 56
124 - 57
124 - 58
124 - 67
124 - 68
124 - 78
124 - 567
124 - 568
124 - 578
124 - 678
124 - 5678
134 - 5
134 - 6
134 - 7
134 - 8
134 - 56
134 - 57
134 - 58
134 - 67
134 - 68
134 - 78
134 - 567
134 - 568
134 - 578
134 - 678
134 - 5678
234 - 5
234 - 6
234 - 7
234 - 8
234 - 56
234 - 57
234 - 58
234 - 67
234 - 68
234 - 78
234 - 567
234 - 568
234 - 578
234 - 678
234 - 5678
1234 - 5
1234 - 6
1234 - 7
1234 - 8
1234 - 56
1234 - 57
1234 - 58
1234 - 67
1234 - 68
1234 - 78
1234 - 567
1234 - 568
1234 - 578
1234 - 678
1234 - 5678
__________________
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума   Ответить с цитированием
Старый 10.01.2017, 00:46   #10
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 21,030
Репутация: 4779
По умолчанию

Цитата:
Сообщение от Plague Посмотреть сообщение
а не так должно было быть?
у меня были сомнения по этому поводу.
И, кстати, если нужен такой вариант, то он намного проще получается.
ну, например, такой функцией его можно генерить:
Код:

function GetNextAlphaOnly(var A : TMyArray) : boolean;
var i,k:integer;
begin
  GetNextAlphaOnly := false;
  i:=m; k:=0;
  while (i>0) and (A[i]>=(n-k)) do begin Dec(i); Inc(k)  end;
  if i=0 then Exit;
  A[i] := A[i]+1;
  for k := i+1 to m do begin
    A[k]:=A[k-1]+1;
    if A[k]>n then Exit;
  end;
  GetNextAlphaOnly := true;
end;

Serge_Bliznykov вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести все комбинации чисел от 0000 до 10000 в C# ShadowInject C# (си шарп) 7 22.11.2014 15:54
Даны цифры от 1 до 38 нужно составить все возможные комбинации из 6 чисел без повторений. gector Фриланс 14 01.04.2013 20:20
Все возможные комбинации X@OC Общие вопросы по Java, Java SE 9 04.07.2011 20:34
Все возможные комбинации массива и непонятная процедура. Ksardas13 Общие вопросы Delphi 2 22.05.2011 02:04
Как вывести все комбинации чисел, состоящие из 10 единиц и 10 двоек? maribel1 Microsoft Office Excel 1 26.03.2010 17:45




03:33.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Покупайте на сайте www.skinon.ru уникальные чехлы и наклейки для телефонов.
таргетированный трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru