Advertisement
Guest User

Untitled

a guest
Nov 9th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Option Explicit
  2. Function prob(p) As Boolean
  3. If Rnd() < p Then
  4.         prob = 1
  5.     Else
  6.         prob = 0
  7. End If
  8. End Function
  9.  
  10. Sub coisa_gira()
  11.  
  12. Dim it As Integer
  13. Dim n As Double
  14. Dim i As Double
  15. Dim p As Double
  16. Dim x() As Double
  17. Dim estado() As Boolean
  18. Dim fim As Boolean
  19. Dim tmedio As Double
  20. 'n = InputBox("numero de elementos")
  21. n = 100000                         'modo manual
  22. ReDim x(1 To n) As Double
  23. ReDim estado(1 To n) As Boolean
  24. p = 0.8     ' probabilidade de sair
  25.  
  26. For i = 1 To n
  27. x(i) = 1
  28. estado(i) = 0
  29. Next
  30.  
  31. Do
  32. it = it + 1
  33. fim = 1
  34.  
  35. For i = 1 To n
  36.     If estado(i) = 0 Then
  37.         If prob(p) = 0 Then
  38.                 x(i) = x(i) + 1
  39.                 fim = 0
  40.             Else
  41.                 estado(i) = 1
  42.         End If
  43.     End If
  44. Next
  45.  
  46. If fim = True Then Exit Do        'usar fim = 1 dá erro de overflow.. Porquê?? Não sei.
  47. 'If it = 10 Then Exit Do
  48. Loop
  49.  
  50. For i = 1 To n
  51. tmedio = tmedio + x(i)
  52. Next
  53. tmedio = tmedio / n
  54. MsgBox (tmedio)
  55. MsgBox (it)
  56.  
  57. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement