Function det(ByVal matrix(,) As Integer) As Double
Dim n As Integer
n = UBound(matrix, 1)
Dim c As Integer = 1 'correctie voor rij x getal
Dim i, j, e As Integer
Dim a, b As Integer
Dim d As Integer = 1
For i = 0 To n - 1
For j = i + 1 To n
'rij j reduceren via rij i
a = matrix(i, i)
b = matrix(j, i)
c *= a
If matrix(i, j) <> 0 Then
For e = i To n
matrix(j, e) = matrix(j, e) * a - matrix(i, e) * b
Next
End If
Next
Next
For i = 0 To n
d *= matrix(i, i)
Next
Return d / c
End Function
(maakt onder de hoofddiagonaal allemaal nullen, om dan keer op keer naar de 1e kolom te ontwikkelen)
nu duikt hetvolgende probleem op bij orde > 4: OverFlow error bij de variable c
hoe kan ik dit vermijden?
Het vel van de beer kunnen verkopen vraagt moeite tenzij deze dood voor je neervalt. Die kans is echter klein dus moeten we zelf moeite doen.
Ik heb ook regelmatig het probleem in vb dat een getal te groot word (vooral bij het oplossen van problemen op projecteuler.net) en ben daarom ook opzoek naar een (makkelijke) manier om toch grote getallen te gebruiken in vb. Tot nu toe heb ik de programma's die niet in vb lukte, omdat de getallen te groot werden, geprobeerd in ruby te maken (ruby kan namelijk met veel grotere getallen omgaan). Mischien dat ruby ook voor jou een oplossing is? Mocht je een manier vinden om in vb toch makkelijk met dit soort getallen om te gaan dan hoor ik het graag.