У меня есть две функции: первая генерирует случайные числа, а вторая выполняет симуляцию для аппроксимации значения числа пи.
Public Function GetRandom(ByVal Min As Integer, ByVal Max As Integer) As Double
Static Generator As System.Random = New System.Random()
Return Generator.Next(Min, Max) / (Max - Min)
End Function
Затем первая функция находится внутри второй функции для генерации случайных значений. То, что я хочу, это выборка без повторения:
Public Function aproxpi(n As Integer) As Double
Dim contador As Integer = 0
Dim vector(n, 2) As Double
For i = 0 To n
' (0, 700) is a tuning parameter, I've seen that if I choose ( 0,10000) there's a less precise approximation due to repatead values
vector(i, 1) = GetRandom(0, 700)
vector(i, 2) = GetRandom(0, 700)
If (vector(i, 1) ^ 2 + vector(i, 2) ^ 2) < 1 Then
contador = contador + 1
End If
Next
aproxpi = 4 * (contador / n)
End Function
vector(i,1)
и vector(i,2)
являются парой (x,y)
. Поэтому я не хочу, чтобы (x,y)
пар повторялись.
Итак, как я могу избежать повторяющихся значений в моем коде?
contador
? - person Neolisk   schedule 05.12.2014Random
берется из часов. Это известная слабость. stackoverflow.com/a/1654902/659190 - person Jodrell   schedule 05.12.2014