Вход через социальные сети

  • 2страниц:
  • 1
  • 2
  • 25.07.2013, 00:49
    0 up down
    Сообщение
    Возьмем точки на окружности равномерно распределенные - в каком порядке они должны быть отсортированы? Или пять кучек рядом а между ними много места - что должно быть первее?
    Просто расстояние каждый с каждым это матрица - ее посчитать в экселе проблемы для вас не составит - а вот чего вы хотите потом с этой матрицей сделать вы пока не конкретизировали.
  • 25.07.2013, 01:05
    0 up down
    Сообщение
    на самом деле точки расположены в 2мерном пространстве хаотическим образом, нужно их отсортировать последовательно по расстоянию. гм.. вот как:
    на входе: А = (0, 1)......на выходе:..A,B ;. d_1 (расстояние между точками A и B )
    ..................В = (10, 4).......................B,D ;. d_2
    ..................C = (1, 0).........................C,A ;. d_3
    ..................D = (10, 5).......................B,C ;. d_4
    .........................................................С,D ;. d_5 (..между С и D)

    т.е. пары точек должны быть сортированы по убыванию от расстояния. лучше, но не критично, чтобы А,B и B,A не дублировались.
  • 25.07.2013, 01:13
    0 up down
    Сообщение
    Допустим на входе четыре точки с кординатами в столбцах то есть таблица на входе
    № X Y
    1 0 0
    2 0 1
    3 1 5
    4 6 0

    какая таблица должна быть на выходе в этом случае?
  • 25.07.2013, 01:19
    0 up down
    Сообщение
    Пара ________ D --- расстояние между точками в паре
    1,2 _________ ____ ну здесь очевидно меньше 1
    2,1 _________ ___ (можно бы и пропускать как=то эти симметричные отрезки)
    3,4 _________ ____(т.к. расстояние между 3 и 4 мне кажется меньше, чем между 2 и 3) **
    2,3

    ** для этих целей есть формула Изображение
  • 25.07.2013, 01:21
    0 up down
    Сообщение
    agnostyc, Вам указывают на то, что в Вашей формулировке задача не определена.

    Судя по всему Вам нужно использовать алгоритм кластеризации. А алгоритмы кластеризации не сводятся к сортировке (и вообще к ней отношения не имеют).
  • 25.07.2013, 01:36
    0 up down
    Сообщение
    Для точек

    1 0 0
    2 0 1
    3 1 5
    4 6 0

    матрица взаимных расстояний будет если не ошибся такая
    1 2 3 4
    1 0 1 5.1 6
    2 1 0 4.12 6.08
    3 5.1 4.12 0 7.07
    4 6 6.08 7.07 0

    да вы отсортировав по расстоянию получите

    (1,1) (2,2) (3,3) (4,4) d = 0
    (1,2) d=1
    (2,3) d=4.12
    (1,3) d=5.1
    (1,4) d=6
    (2,4) d=6.8
    (3,4) d=7.07

    Но то ли это что нужно?

    Как это сделать в экселе не совсем понимаю - понимаю как это сделать на языке программирования
    В экселе можно сделать матрицу расстояний если задать вместо 1 2 3 4 координаты X и Y и размножить формулу расстояния
    Можно справа и снизу поставить функцию MIN от строки и столбца - тогда вы будете видеть какая точка
    ближайшая для данной и какое там мин расстояние - эти линейные цифры уже можно сортировать по идее
    В общем где то так
  • 25.07.2013, 01:37
    0 up down
    Сообщение
    ох, как всегда торможу, извините.. щас посмотрю, ... тут просто были непонятливые )


    гм.. у мну пока разовая такая штуковина, если я вам скину файл вы сможете в своих паскалях его отсортировать ? если это не сложно, я буду вам реально признателен )
  • 25.07.2013, 01:42
    0 up down
    Сообщение
    agnostyc в 25.7.2013, 1:37 написал(а): link

    подробнее чем я вряд ли можно объснить, правильнее, ... возможно.

    Значит можно наверное объяснить другими словами - мы же не англичане чтобы если нас не понимают просто говорить громче)
    Как видите в данном примере у нас разные получились ответы - значит мы не одинаково понимаем задачу.
    Кстати эту задачу сформулировать очень трудно. Может имеет смысл пояcнить откуда она берется?
  • 25.07.2013, 01:51
    0 up down
    Сообщение
    гм.. еще раз. есть точки с координатами XY
    из них можно создать пары, ну например A,B С, D etc...

    а вот эти то пары и надо отсортировать, я допер до этого в процессе написания поста sry ))

    а сортировка --------- по расстоянию между точками в паре !

    да все матрица воообще супер, Спасибо ! видимо, когда я смотрел ваш пример сам неправильно посчитал/прикинул

    опять же расстояние для каждой пары А,B -- это расстояние для отрезка AB т.е. по школьной формуле, которую я писал выше.


    вобщем приложил файл


    ex.zip
  • 25.07.2013, 02:08
    0 up down
    Сообщение
    Увы экселя у меня нет - так что дерзайте сами. Примерный код ниже, на модельном примере вроде работает. Язык - awk. Можно поставить под виндами в пакете cygwin c cygwin.org если не ошибаюсь - либо в любом линуксе должен быть. В общем дальше сами пожалуйста. awk вычисляет расстояния попарно и выводит на экран - дальше простая команда sort сортирует это дело. Бред конечно)
    Код

    $ cat data
    0 0
    0 1
    1 5
    6 0

    $ cat t.awk
    #!/bin/awk -f

    BEGIN { k = 1; }

    { x[k] = $1; y[k++] = $2; }

    END {
    for(i=1;i<k;i++) {
    for(j=i;j<k;j++) {
    print "d=" sqrt((x[i]-x[j])^2+(y[i]-y[j])^2) " " i "(" x[i] "," y[i] ") " j "(" x[j] "," y[j] ")";
    }
    }
    }

    $ cat data | ./t.awk | sort -k 1n
    d=0 1(0,0) 1(0,0)
    d=0 2(0,1) 2(0,1)
    d=0 3(1,5) 3(1,5)
    d=0 4(6,0) 4(6,0)
    d=1 1(0,0) 2(0,1)
    d=4.12311 2(0,1) 3(1,5)
    d=5.09902 1(0,0) 3(1,5)
    d=6 1(0,0) 4(6,0)
    d=6.08276 2(0,1) 4(6,0)
    d=7.07107 3(1,5) 4(6,0)

  • 2страниц:
  • 1
  • 2