Создание массива из случайных целых чисел из определённого промежутка. Числа в массиве не должны повторяться - VB
Формулировка задачи:
Здравствуйте! Недавно занялся Visual Basic'ом и столкнулся с такой проблемой.
Дан массив x(100). Ему нужно присвоить целые значения от 0 до 99, но таким образом, чтобы они были разбросаны в случайном порядке и не повторялись. Ну, например, x(0) = 21, x(1) = 16, x(2) = 95, x(3) = 50 и так далее. Но, ещё раз скажу, числа не должны повторяться.
Сделал вот такой код:
Код, по идее, должен быть рабочий, но проблема в том, что значения подбираются очень долго. Когда массив состоит из малого количества значений, то такой код подойдёт, но для большого массива - нет.
Можно ли как-то проще проверить уникальность всех значений массива?
Листинг программы
- Dim x(100) As Integer
- Dim a As Integer
- Dim b As Integer
- Metka1:
- Randomize
- For a = 0 To 99
- x(a) = Int(100 * Rnd)
- Next a
- For b = 1 To 98
- For a = b To 99
- If x(b - 1) = x(a) Then GoTo Metka1
- Next a
- Next b
- If x(98) = x(99) Then GoTo Metka1
Решение задачи: «Создание массива из случайных целых чисел из определённого промежутка. Числа в массиве не должны повторяться»
textual
Листинг программы
- Private Sub Комманда1_Click()
- Dim i&, j&, a&(1 To 100)
- Randomize
- For i = 1 To 100
- j = Int(Rnd * i + 1)
- If i <> j Then a(i) = a(j)
- a(j) = i - 1
- Next i
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д