I'm intrested to montecarlo simulation but this function is very hard to understand . Is there someone who can explain some piece of code :
Sub RandomizeArray2(Piece) Dim A1 As Array Dim A2 As Array
Dim i As Integer Dim r As Integer Dim j As Integer Dim k As Integer Dim flags As Array Dim b As Boolean Dim tmp As Double Dim n As Integer Dim nPieces As Integer Dim lo As Integer
A1 = Gvalue1
n = UBound(A1) nPieces = Floor(n/Piece) Why this ? you suggest 20 in the example why 20
ReDim (A2, n) ReDim (flags, nPieces)
For i = 0 To nPieces - 1 b = False What is b ? why should be false r = lo + Rnd(nPieces - lo - 1) What lo ? it supposes to be 0 always ? j = r
What is the meaning of all of this
If j > lo Then What's the meaning of this While (j >= 0) If Not flags[j] Then and this b = True why b should be true Exit While End If
j = j - 1 Wend End If
If Not b Then what's the meaning "if not b" j = r If j < lo Then j = lo While (j < nPieces) If Not flags[j] Then again what the meaning of this lo = j b = True Exit While End If
j = j + 1 Wend End If
If Not b Then GoTo func_end
' swap
'Print i, " -> ", j
For k = 0 To Piece - 1 A2[j * Piece + k] = A1[i * Piece + k] Next
Assert(Not flags[j]) Why this
flags[j] = True Next
func_end: For i = nPieces * Piece To n - 1 A2[i] = A1[i] Next
gvalue1 = A2 End Sub
There is some place where i can fine explanation of the codes, because it would be very useful.
Thank you
|