В Visual Basic генерация случайных чисел без повторения может быть полезным требованием в различных сценариях, таких как создание уникальных идентификаторов, перетасовка данных или проведение рандомизированного моделирования. В этой статье мы рассмотрим несколько методов достижения этой функциональности, каждый из которых имеет свои преимущества и особенности. Итак, давайте углубимся и узнаем, как генерировать случайные числа без повторения в Visual Basic!
Метод 1: использование структуры данных списка.
Один подход заключается в использовании структуры данных списка для хранения сгенерированных случайных чисел. Вот пример реализации этого метода:
Dim random As New Random()
Dim numbers As New List(Of Integer)()
For i As Integer = 1 To 10
Dim randomNumber As Integer
Do
randomNumber = random.Next(1, 100)
Loop While numbers.Contains(randomNumber)
numbers.Add(randomNumber)
Console.WriteLine(randomNumber)
Next
Метод 2: использование алгоритма Фишера-Йейтса
Алгоритм Фишера-Йейтса — популярный метод случайного перетасовки элементов. Применяя этот алгоритм к последовательному списку чисел, мы можем добиться желаемого эффекта генерации случайных чисел без повторения. Вот пример реализации:
Dim random As New Random()
Dim numbers As New List(Of Integer)()
For i As Integer = 1 To 10
numbers.Add(i)
Next
For i As Integer = numbers.Count - 1 To 1 Step -1
Dim j As Integer = random.Next(i + 1)
Dim temp As Integer = numbers(i)
numbers(i) = numbers(j)
numbers(j) = temp
Next
For Each number As Integer In numbers
Console.WriteLine(number)
Next
Метод 3: использование битового массива
Если вы имеете дело с большим диапазоном чисел и эффективность использования памяти вызывает беспокойство, вы можете использовать BitArray для отслеживания сгенерированных случайных чисел. Вот пример реализации:
Dim random As New Random()
Dim bitArray As New BitArray(100)
For i As Integer = 1 To 10
Dim randomNumber As Integer
Do
randomNumber = random.Next(1, 100)
Loop While bitArray(randomNumber - 1)
bitArray(randomNumber - 1) = True
Console.WriteLine(randomNumber)
Next
В этой статье мы рассмотрели три метода генерации случайных чисел без повторения в Visual Basic. Используя структуру данных List, применяя алгоритм Фишера-Йейтса или используя BitArray, вы можете достичь желаемого результата в соответствии с вашими конкретными потребностями. При выборе наиболее подходящего метода для вашего приложения не забудьте учитывать такие факторы, как производительность, использование памяти и диапазон чисел, с которым вы работаете.