Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Option Explicit
- Function prob(p) As Boolean
- If Rnd() < p Then
- prob = 1
- Else
- prob = 0
- End If
- End Function
- Sub coisa_gira()
- Dim it As Integer
- Dim n As Double
- Dim i As Double
- Dim p As Double
- Dim x() As Double
- Dim estado() As Boolean
- Dim fim As Boolean
- Dim tmedio As Double
- 'n = InputBox("numero de elementos")
- n = 100000 'modo manual
- ReDim x(1 To n) As Double
- ReDim estado(1 To n) As Boolean
- p = 0.8 ' probabilidade de sair
- For i = 1 To n
- x(i) = 1
- estado(i) = 0
- Next
- Do
- it = it + 1
- fim = 1
- For i = 1 To n
- If estado(i) = 0 Then
- If prob(p) = 0 Then
- x(i) = x(i) + 1
- fim = 0
- Else
- estado(i) = 1
- End If
- End If
- Next
- If fim = True Then Exit Do 'usar fim = 1 dá erro de overflow.. Porquê?? Não sei.
- 'If it = 10 Then Exit Do
- Loop
- For i = 1 To n
- tmedio = tmedio + x(i)
- Next
- tmedio = tmedio / n
- MsgBox (tmedio)
- MsgBox (it)
- End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement