Алгоритм перебора точек

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[flash] ОТКЛЮЧЕН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Алгоритм перебора точек

Re: Алгоритм перебора точек

Romeo » 17 мар 2014, 14:39

Тема перемещена из раздела "С и С++".

Алгоритм перебора точек

rewweRrr » 16 мар 2014, 19:18

Есть точки:
(0,1) (0,2) ... (0,n)
(1,1) ... (1,m)
...
(L,1) (L,1) ... (L, k)
координата Y может принимать значения от 1 до n, m, ... k соответственно. А координата Х меняется от 0 до L. Мне нужно перебрать всевозможные комбинации точек (без повторений) длинной 3, 4, 5... Х так, чтобы в 1ой комбинации не повторялись точки с одинаковой координатой X.

Пример:
Даны точки:
(0,1) (0,2)
(1,1)
(2,1) (2,2) (2,3)
(3,1)

Возможные последовательности:
Из 3х точек: (0,1)(1,1)(2,1)____Из 4х точек (0,1)(1,1)(2,1)(3,1)
___________(0,1)(1,1)(2,2)_______________(0,1)(1,1)(2,2)(3,1)
___________(0,1)(1,1)(2,3)_______________(0,1)(1,1)(2,3)(3,1)
___________(0,1)(1,1)(3,1)_______________(0,2)(1,1)(2,1)(3,1)
___________(0,2)(1,1)(2,1)_______________(0,2)(1,1)(2,2)(3,1)
___________(0,2)(1,1)(2,2)_______________(0,2)(1,1)(2,3)(3,1)
___________(0,2)(1,1)(2,3)
___________(0,2)(1,1)(3,1)
___________(1,1)(2,1)(3,1)
___________(1,1)(2,2)(3,1)
___________(1,1)(2,3)(3,1)

Хочется получить хороший алгоритм. Я понимаю, что можно перебирать всевозможные комбинации по X потом, зная количество точек циклами пробегать по Y. Но эт долго и не клево =(
Есть какие-нибудь идеи?

Вернуться к началу