HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Алгоритм
помогите составить алгоритм для программки
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
BioHazard
Jess Liberty C++ за 21 день

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 274

Рейтинг



Question Алгоритм

Доброго времени суток, форумчане!

Допустим у меня есть 10 переменных типа A B C D E F G H I J
Возникла надобность написать прогу, которая составляла бы все возможные парные сочетания этих переменных типа A-E, B-F итп.
и разделяла бы их на таблицы, в каждой из которых 5 пар.

Условия:


  1. в каждой табличке должны задействоваться все переменные.
  2. Переменные повторяться не должны
  3. Во всем генеральном списке может существовать только один тип пары, например B-J, но J-B уже не может.


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

Сообщить модератору | | IP: Записан
Сообщение: 47043

Старое сообщение 10-09-2009 15:57
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 34529
Нанёс повреждений: 514 ед.
Возраст: 37

Рейтинг



Награды
 
[1 награда]


Делаем последовательное заполнение табличек по 5 пар, беря буквы слева направо. Сначала берем буквы подряд, потом через 1, через 2 и т.п. Перед тем, как увеличить отступ, делаем проходы со смещением, количество которых равно (отступ+1). Как только величина отступа достигает 9 (т.е. максимум букв - 1), берем первую и последнюю буквы и прерываем расчет.

C++ Source Code:
1
буквы[10] = { A B C D E F G H I J }
2
отступ = 1
3
 
4
while (1)
5
{
6
  if (отступ == 9)
7
  {
8
    таблица.добавляем(буквы[0], буквы[9]);
9
    break;
10
  }
11
 
12
  for (проход = 0; проход < отступ+1; проход++)
13
  {
14
    for (индекс = 0; индекс < 10;)
15
    {
16
      if (индекс+проход+отступ >= 10)
17
        break;
18
 
19
      таблица.добавляем(буквы[индекс+проход], буквы[индекс+проход+отступ]);
20
      if (таблица.количествопар == 5)
21
        таблица = новая таблица;
22
      индекс += отступ+1;
23
    }
24
  }
25
  отступ++;
26
}

__________________

Сообщить модератору | | IP: Записан
Сообщение: 47045

Старое сообщение 10-09-2009 17:05
-
BioHazard
Jess Liberty C++ за 21 день

Дата регистрации: Nov 2008
Проживает: (void)
Сообщений: 274

Рейтинг



Спс!!!

Сообщить модератору | | IP: Записан
Сообщение: 47047

Старое сообщение 10-09-2009 17:37
- За что?
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 04:20. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Наш форум > Технические вопросы > Алгоритм
помогите составить алгоритм для программки
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024