Option Compare Database Function PFDDoubleVoting(tau As Single, Lambda As Single, lambdaDet As Single, MTTR As Single, Beta As Single, Votinfo() As Integer) ' VotInfo: To første er hhv K og N for ytre votering ' Så kommer Indre voteringer (K1,N1), (K2,N2) osv Dim nFailures As Integer Dim n As Integer Dim p As Single Dim i As Integer Dim N0 As Integer N0 = Votinfo(2) n = 0 For i = 1 To N0 n = n + Votinfo(i * 2 + 1) Next i p = 0# For nFailures = 1 To n p = p + PFDUK(tau, Lambda, lambdaDet, MTTR, Beta, n - nFailures + 1, n) * PrXisFailure(nFailures, Votinfo) If nFailures < n Then ' Vi søkte akkurat nFailures, må trekke fra bidrag for nFailures + 1 p = p - PFDUK(tau, Lambda, lambdaDet, MTTR, Beta, n - nFailures, n) * PrXisFailure(nFailures, Votinfo) End If Next nFailures PFDDoubleVoting = p End Function Function TIFDoubleVoting(TIF As Single, Beta As Single, Votinfo() As Integer) ' VotInfo: To første er hhv K og N for ytre votering ' Så kommer Indre voteringer (K1,N1), (K2,N2) osv Dim nFailures As Integer Dim n As Integer Dim p As Single Dim i As Integer Dim N0 As Integer N0 = Votinfo(2) n = 0 For i = 1 To N0 n = n + Votinfo(i * 2 + 1) Next i p = 0# For nFailures = 1 To n p = p + TIFMooN(TIF, Beta, n - nFailures + 1, n) * PrXisFailure(nFailures, Votinfo) If nFailures < n Then ' Vi søkte akkurat nFailures, må trekke fra bidrag for nFailures + 1 p = p - TIFMooN(TIF, Beta, n - nFailures, n) * PrXisFailure(nFailures, Votinfo) End If Next nFailures TIFDoubleVoting = p End Function Function IntTest(M As Integer, n As Integer) Dim F(5) As Single Dim tau As Single, t As Single, Beta As Single, Lambda As Single Dim i As Integer Dim dx As Single Dim x As Single Dim LambdaDD As Single Dim MTTR As Single LambdaDD = 0.001 MTTR = 10 Lambda = 0.001 tau = 10 Beta = 0.05 dx = tau / 4 x = 0 For i = 1 To 5 'F(i) = PFDUK_t(x, Lambda, Beta, M, n) F(i) = DTUrI_t(x, Lambda, LambdaDD, MTTR, Beta, M, n) + _ DTUrC_t(x, Lambda, LambdaDD, MTTR, Beta, M, n) ' F(i) = x x = x + dx Next i Debug.Print BooleIntegration(F(1), F(2), F(3), F(4), F(5), 1) 'Debug.Print PFDUK(tau, Lambda, 0, 0, Beta, M, n) Debug.Print DTUr(tau, Lambda, LambdaDD, MTTR, Beta, M, n) Debug.Print "**", (BooleIntegration(F(1), F(2), F(3), F(4), F(5), 1) - _ DTUr(tau, Lambda, LambdaDD, MTTR, Beta, M, n)) / DTUr(tau, Lambda, LambdaDD, MTTR, Beta, M, n) End Function Function gg() Dim i As Integer, j As Integer For j = 1 To 4 For i = 1 To j Debug.Print i, j IntTest i, j Next Next End Function Function ShowCMoon() Dim k As Integer Dim n As Integer For n = 2 To 10 For k = 1 To n Debug.Print k, n, CMooN(k, n) Next Next End Function