Создание массива из случайных целых чисел из определённого промежутка. Числа в массиве не должны повторяться - VB

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

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

Здравствуйте! Недавно занялся Visual Basic'ом и столкнулся с такой проблемой. Дан массив x(100). Ему нужно присвоить целые значения от 0 до 99, но таким образом, чтобы они были разбросаны в случайном порядке и не повторялись. Ну, например, x(0) = 21, x(1) = 16, x(2) = 95, x(3) = 50 и так далее. Но, ещё раз скажу, числа не должны повторяться. Сделал вот такой код:
Листинг программы
  1. Dim x(100) As Integer
  2. Dim a As Integer
  3. Dim b As Integer
  4. Metka1:
  5. Randomize
  6. For a = 0 To 99
  7. x(a) = Int(100 * Rnd)
  8. Next a
  9. For b = 1 To 98
  10. For a = b To 99
  11. If x(b - 1) = x(a) Then GoTo Metka1
  12. Next a
  13. Next b
  14. If x(98) = x(99) Then GoTo Metka1
Код, по идее, должен быть рабочий, но проблема в том, что значения подбираются очень долго. Когда массив состоит из малого количества значений, то такой код подойдёт, но для большого массива - нет. Можно ли как-то проще проверить уникальность всех значений массива?

Решение задачи: «Создание массива из случайных целых чисел из определённого промежутка. Числа в массиве не должны повторяться»

textual
Листинг программы
  1. Private Sub Комманда1_Click()
  2.     Dim i&, j&, a&(1 To 100)
  3.     Randomize
  4.     For i = 1 To 100
  5.         j = Int(Rnd * i + 1)
  6.         If i <> j Then a(i) = a(j)
  7.         a(j) = i - 1
  8.     Next i
  9. End Sub

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


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

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

12   голосов , оценка 4.083 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы