powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Евклидово расстояние_ рассчёт
5 сообщений из 5, страница 1 из 1
Евклидово расстояние_ рассчёт
    #39486809
alexkay3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые форумчане!
Возникла необходимость написание программы по созданию запроса по расчёту Евклидового расстояния.

Условие: Есть некий запрос, так называемый, матрица значений. Он имеет стандартное количество столбцов (15), но может иметь разное количество строк (от 2 до 200).

Необходимо: Рассчитать матрицу расстояний по Евклиду. Для лучшего понимания, прикреплю файл EXCELL.
Как Вы видите из файла, в результате расчёта, матрица значений преобразуется в вид (кол-во строк Х кол-во строк). То есть если в запросе (матрица значений) будет к примеру 3 строки, то матрица расстояний будет иметь вид (3 х 3). Кроме того, диагональ матрицы будет равна 0.

Большая просьба, помогите либо в написании программы по расчёту, либо в построении запроса (-ов) для вычисления этой задачи. Навыков программирования практически нет.
...
Рейтинг: 0 / 0
Евклидово расстояние_ рассчёт
    #39487047
alexkay3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо Вам за внимание!
Я как бы файл excel прилепил для лучшей понимаемости вопроса :), ну да ладно, попытаюсь изложить на пальцах.
Покажу на примере матрицы 4х3, для других (больших матриц) подход такой же.

Описание и формулы в файле word
...
Рейтинг: 0 / 0
Евклидово расстояние_ рассчёт
    #39487083
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexkay3,
псевдокод
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Dim X, A
Dim rows As Integer, cols As Integer
Dim i As Integer, j As Integer

rows = 3
cols = 4

ReDim X(1 To rows, 1 To cols) As Double

' fill in X

ReDim A(1 To rows, 1 To rows) As Double

For i = 1 To rows
  For j = 1 To i
    If i = j Then
        A(i, j) = 0
    Else
        A(i, j) = euclide(X, i, j, cols)
        A(j, i) = A(i, j)
    End If
  Next j
Next i

' ============================
Function euclide(X, v1 As Integer, v2 As Integer, number_of_attributes As Integer) As Double
    Dim accum As Double, diff As Double
    Dim i As Integer, j As Integer
    accum = 0
    For i = 1 To number_of_attributes
        diff = X(v1, i) - X(v2, i)
        accum = accum + diff * diff / number_of_attributes
    Next i
    
    euclide = Sqr(accum)
End Function
...
Рейтинг: 0 / 0
Евклидово расстояние_ рассчёт
    #39487099
alexkay3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую Ваш код, позже отпишусь
...
Рейтинг: 0 / 0
Евклидово расстояние_ рассчёт
    #39487584
alexkay3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую Ваш код, позже отпишусь
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Евклидово расстояние_ рассчёт
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]