При генерации случайных точек на PictureBox появляются полосы - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Привет. Делаю программу для нахождения числа Пи методом Монте-Карло и столкнулся с такой проблемой: когда я генерирую случайные координаты для последующей точки и наношу её на PictureBox у меня проявляется странная закономерность. Из сгенерированных точек вырисовываются прямые, причем чем больше количество точек тем они отчетливее. Прикладываю скриншоты и код.
Как это можно вылечить? Я подозреваю, что проблема в генерации координат этих самых точек, так как, насколько я знаю, случайности не случайны, а генерируются по формуле.

Решение задачи: «При генерации случайных точек на PictureBox появляются полосы»

textual
Листинг программы
    Private Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
        Dim g As Graphics = PictureBox1.CreateGraphics
        g.SmoothingMode = Drawing2D.SmoothingMode.AntiAlias
        Dim p As New Pen(Color.Black, 2)
        Randomize()
        For i = 1 To 50000
            Dim random1 As Integer
            Dim random2 As Integer
            ' Randomize()
            random1 = 2 + Rnd() * 648
            ' Randomize()
            random2 = 2 + Rnd() * 648
            g.DrawEllipse(p, random1, random2, 1, 1)
            count += 1
            If ((random1 - 324) * (random1 - 324) + (random2 - 324) * (random2 - 324) > 105625) Then
                outside += 1
            Else
                inside += 1
            End If
        Next
        Label2.Text = count
        Dim pi As Single
        pi = inside / count
        Label4.Text = pi * 4
    End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.7 из 5
Похожие ответы