Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 01.12.2018
Сообщений: 3

Какая здесь логика работы "get' и "set"

19.06.2022, 17:08. Показов 296. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как за счет get и set в этом коде происходят операции? Должен ли быть какой то отдельный метод для инициализации Матриц ABC ?? Не понятна функция работы первых 10 строк







C#
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// A quadratic assignment problem.
  public class Qap {
    // A (flow matrix).
    public double[][] A { get; set; }
    // B (distance matrix).
    public double[][] B { get; set; }
    // C (linear costs).
    public double[][] C { get; set; }
    // Constant term.
    public double Shift { get; set; }
 
    // Size of (A, B, C) matrices.
    public int Size {
      get { return A == null ? 0 : A.Length; }
    }
 
    // Compute tr AXBX' + CX', where the permutation matrix X is determined by p.
    public double Evaluate(int[] p) {
      double obj = this.Shift;
      for (int i = 0; i < A.Length; i++) {
        obj += this.C[i][p[i]];
        for (int j = 0; j < A[i].Length; j++) {
          obj += this.A[i][j] * this.B[p[i]][p[j]];
        }
      }
      return obj;
    }
 
 private static Qap Reduce(Qap qap, int i, int j) {
      Qap r = new Qap();
 
      r.A = Reduce(qap.A, i, i);
      r.B = Reduce(qap.B, j, j);
      r.C = Reduce(qap.C, i, j);
 
      // Tack on: 2 a'_i b'_j (where a'_i is row i of A, with element i removed)
      for (int ii = 0; ii < r.Size; ii++) {
        for (int jj = 0; jj < r.Size; jj++) {
          r.C[ii][jj] += 2 * qap.A[i][ii < i ? ii : ii + 1] * qap.B[jj < j ? jj : jj + 1][j];
        }
      }
 
      r.Shift = qap.Shift + qap.A[i][i] * qap.B[j][j] + qap.C[i][j];
 
      return r;
    }
 
    private static double[][] Reduce(double[][] M, int i, int j) {
      double[][] R = LinearAlgebra.NewMatrix(M.Length - 1);
      for (int ii = 0; ii < R.Length; ii++) {
        for (int jj = 0; jj < R[ii].Length; jj++) {
          R[ii][jj] = M[ii < i ? ii : ii + 1][jj < j ? jj : jj + 1];
        }
      }
      return R;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.06.2022, 17:08
Ответы с готовыми решениями:

Какая здесь логика вывода переменных?
Всем привет. Подскажите пожалуйста, как здесь рассуждать. Вот уже 30 минут думаю и пытаюсь найти какую-то логику, но не выходит....

какая здесь ошибка?
задание: для заданного целочисленного одномерного массива А длиной 10, посчитать количество простых чисел в нем. у меня получилось вот...

Какая здесь ошибка?
Вот задача: Описати функцію DigitCount (K) цілого типу, яка знаходить кількість цифр цілого позитивного числа K. Використовуючи цю функцію,...

1
 Аватар для ViterAlex
8952 / 4864 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
19.06.2022, 21:41
Конретнно здесь работа операторов get/set никак не реализована. Они лишь указывают, что A, B, C, Shift это свойства.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.06.2022, 21:41
Помогаю со студенческими работами здесь

Какая здесь нормальная форма?
Друзья, подскажите. Какая на данной схеме нормальная форма базы данных? Честно пытался вникнуть сам, но так и не понял как определять.

Какая сортировка здесь использована?
какая сортировка здесь использована????? #include &lt;stdio.h&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include &lt;conio.h&gt; ...

Какая ошибка здесь присутствывает?
Есть задание, найти ошибку в тексте программы, что здесь может быть? static void Main(string args) { const int months = 10; ...

Подскажите пожалуйста какая ошибка здесь
b:array of integer; i,j,k,kon,min,r:integer; begin for r := 0 to 10 do b:=strtoint(Memo1.Lines); for i := 0 to 9 do...

Какая здесь формула для графика?
Переменной z присвоить значение 1, если точка (х,у) принадлежит зарисованной площади, и 0 в другом случае.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Программный отбор элементов справочника Номенклатура по группе 1С
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника Сотрудники по перечислениям 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru