Вычислить определитель произвольного размера - VB
Формулировка задачи:
На форме стоит кнопка и текстовое поле. В поле вводится число от 2 до 10 (для данной программы). Программа задает рандомно определитель и вычисляет его. Результат выводит на форму.
примечание:
Время работы программы при n=10 равно 4 сек.
Поскольку время работы пропорционально n!, то
использовать программу при n>10 неразумно
(Для n=11 время будет 40 сек. Но скорее вы получите
переполнение и надо использовать другой тип чисел)
Решение задачи: «Вычислить определитель произвольного размера»
textual
Листинг программы
Function Det(A() As Double) As Double n% = UBound(A, 1) If n% = 2 Then Det = A(1, 1) * A(2, 2) - A(1, 2) * A(2, 1) Else S# = 1 For j% = 1 To n% Det = Det + A(1, j%) * Det(Minor(A(), 1, j%)) * S# S# = -S# Next j% End If End Function Function Minor(A() As Double, m As Integer, k As Integer) As Double() Dim B() As Double nn% = UBound(A, 1) ReDim B(1 To nn% - 1, 1 To nn% - 1) As Double ii% = 1 jj% = 1 For i% = 1 To nn% For j% = 1 To nn% If i% <> m And j% <> k Then B(ii%, jj%) = A(i%, j%) jj% = jj% + 1 If jj% > nn% - 1 Then ii% = ii% + 1 jj% = 1 End If End If Next j% Next i% Minor = B End Function
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д