Генератор случайных чисел выдает одни и те же значения - Visual Basic .NET
Формулировка задачи:
Вопрос по генератору случайных чисел! Скачал где-то код, подправил под свои нужды, но...
Задача. Необходимо разместить 19 чисел (от 1 до 19) случайным образом. Повторения исключены и чисел должно быть именно 19. Каждое число записывается в отдельную переменную. При следующем обращении в этих переменных уже другие числа из заданного диапазона. Все работает, только генерируются 18 чисел и одно повторяется два раза. И еще не знаю, как этот массив разбить по разным переменным. Вот сам код
Листинг программы
- Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim flag(19) As Boolean
- Dim a(20), j, x As Integer
- Randomize()
- a(0) = 1
- For i = 1 To 19
- j = Int(i * Rnd())
- a(i) = a(j)
- a(j) = i
- flag(i) = False
- Next
- For i = 1 To 19
- Do
- x = Int(19 * Rnd())
- If flag(x) = False Then
- a(x) = i
- flag(x) = True
- TextBox1.Text = TextBox1.Text & " " & a(x)
- End If
- Loop Until a(x) = i
- Next
- For i = 1 To 19
- TextBox2.Text = TextBox2.Text & " " & a(i)
- Next
- End Sub
Решение задачи: «Генератор случайных чисел выдает одни и те же значения»
textual
Листинг программы
- Dim i, j, arr(18) As Integer
- Randomize
- For i = 0 To 18
- j = Int(Rnd * i)
- arr(i) = arr(j)
- arr(j) = i+1
- Next i
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д