Добрый день. Возникла очередная сумашедшая проблема.
Есть задача алгоритмизировать расчет маршрутов м/у объектами. Для этого хочу выстроить таблицу расстояний объектов: каждого-с-каждым (а чтобы сделать ее линейной, пытаюсь присобачить следующее: http://www.planetaexcel.ru/tip.php?aid=87)
помогите подогнать под мои условия:
-- много Объектов(около 300) на некоторой территории -- территория поделена на районы -- для каждого района есть матрица расстояний между объектами в нем. -- в каждом районе есть по 3 (пока по 3) "точки выброса" из района --= между этими точками считается расстояние м/у районами -- от каждого объекта просчитано расстояние до точек выброса -- проставлены в соотв-е матрицы -- между точками выбросов всех районов проставлены расстояния в соотв-й матрице (это типа расстояние м/у районами) -- некоторые объекты могут присутствовать в нескольких районах одновременно (районы не пересекаются) все это на листе "данные" нужно на лист "то что надо" выстроить плоскую таблицу от-каждого-к-каждому объекту по правилам: если есть пересечение объектов в какой-либо из матриц (ну то есть просчитано расстояние м/у ними) берем его, если нет, то: расстояние считается как: от объекта до точки выброса из района + между районами + от точки выброса до района. Понятно что при этом вариантов м.б. несколько, тогда берем первые три из них.
ошибся {quote}{login=ABZAC}{date=06.07.2011 05:43}{thema=Сложная задача подсчета и сведения в таблицу расстояний между множеством объектов}{post}-- некоторые объекты могут присутствовать в нескольких районах одновременно (РАЙОНЫ ПЕРЕСЕКАЮТСЯ)
Спасибо, но не совсем то -- я не ищу значение на некотором пересечении двух объектов в матрице. Пытаюсь получить ВСЕ пересечения (и значения на пересечениях) -- т.е. то же самое но не для одной пары объектов, а для всех пар. путь с этой формулой мне показался тупиковым.
есть массив объектов (а, б, в, г ... я). Как получить все возможные уникальные пары объектов этого массива (а*б, а*в... и т.д.) кроме пары с самим собой (а*а), кроме аналогичной пары, но в обратной последоват-ти (а*б и б*а)
nerv, такой вопрос я тоже хотел задать, но постеснялся:)
не количество возможных пар, а именно сами пары т.е. из одномерного массива в одном столбце (а,б,...), получить массив о двух столбцах с парами (в первом столбце одна буква, во втором -- вторая)
Кстати Ваша формула для посчета кол-ва с моими условиями не канает: из массива с пятью объектами будет 10 уникальных пересечений, а по Вашей формуле 15
Ёк, как? труда уже составило. макросом взять значение n(1) и пересекать со всеми нижележащими? потом сдвигаться на один (--> n(2)) и снова перебирать все нижележащие? может существует более гуманный способ?
{quote}{login=ABZAC}{date=07.07.2011 05:08}{thema=ПОДЗАДАЧА}{post}Хорошо, такая подзадача:
есть массив объектов (а, б, в, г ... я). Как получить все возможные уникальные пары объектов этого массива (а*б, а*в... и т.д.) кроме пары с самим собой (а*а), кроме аналогичной пары, но в обратной последоват-ти (а*б и б*а){/post}{/quote} А как нужно, макросом или формулами? (формулами сложнее)
{quote}{login=ABZAC}{date=07.07.2011 05:42}{thema=}{post}Кстати Ваша формула для посчета кол-ва с моими условиями не канает: из массива с пятью объектами будет 10 уникальных пересечений, а по Вашей формуле 15{/post}{/quote} Формула для расчета количества должна быть такой: 1+2+3+...+(n-1)
{quote}{login=ABZAC}{date=07.07.2011 05:44}{thema=}{post}Ёк, как? труда уже составило. макросом взять значение n(1) и пересекать со всеми нижележащими? потом сдвигаться на один (--> n(2)) и снова перебирать все нижележащие? может существует более гуманный способ?{/post}{/quote} макросом, как то так:
Sub unik() Dim i%, j%, k% For i = 1 To 31 For j = i + 1 To 32 k = k + 1 Cells(k, 1) = Chr(223 + i): Cells(k, 2) = Chr(223 + j) Next j, i End Sub
{quote}{login=MCH}{date=07.07.2011 06:03}{thema=Re: }{post}{quote}{login=ABZAC}{date=07.07.2011 05:42}{thema=}{post}Кстати Ваша формула для посчета кол-ва с моими условиями не канает: из массива с пятью объектами будет 10 уникальных пересечений, а по Вашей формуле 15{/post}{/quote} Формула для расчета количества должна быть такой: 1+2+3+...+(n-1){/post}{/quote}Вообще-то такой: =n*(n-1)/2 зы. старая школьная задача на число рукопожатий :)
{quote}{login=}{date=07.07.2011 06:27}{thema=Re: Re: }{post}Вообще-то такой: =n*(n-1)/2 зы. старая школьная задача на число рукопожатий :){/post}{/quote} Действительно, что то сразу не вспомнил про сумму ряда арифметической прогрессии
{quote}{login=ABZAC}{date=07.07.2011 05:42}{thema=}{post}Кстати Ваша формула для посчета кол-ва с моими условиями не канает: из массива с пятью объектами будет 10 уникальных пересечений, а по Вашей формуле 15{/post}{/quote}можно пример в файле (с 5-ю объектами)?
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
{quote}{login=ABZAC}{date=07.07.2011 05:44}{thema=}{post}Ёк, как? труда уже составило. макросом взять значение n(1) и пересекать со всеми нижележащими? потом сдвигаться на один (--> n(2)) и снова перебирать все нижележащие? может существует более гуманный способ?{/post}{/quote}если бы вы прикрепили файл и ОЧЕНЬ подробно и ВНЯТНО объяснили, что Вам нужно, думаю, что Ваша задача уже была решена : )
Чебурашка стал символом олимпийских игр. А чего достиг ты? Тишина - самый громкий звук
{quote}{login=nerv}{date=07.07.2011 06:54}{thema=Re: }{post}{quote}{login=ABZAC}{date=07.07.2011 05:44}{thema=}{post}Ёк, как? труда уже составило. макросом взять значение n(1) и пересекать со всеми нижележащими? потом сдвигаться на один (--> n(2)) и снова перебирать все нижележащие? может существует более гуманный способ?{/post}{/quote}если бы вы прикрепили файл и ОЧЕНЬ подробно и ВНЯТНО объяснили, что Вам нужно, думаю, что Ваша задача уже была решена : ){/post}{/quote} проктика показывает что ОЧЕНЬ ПОДРОБНОЕ описание задачи не способствует решению (см пост 1) в принципе проблема решена МСН, еще правда не разбирался