2015-07-11 2 views
-3

Я новичок в программировании. Я делаю заявку в VB.net. Я хочу, чтобы при загрузке определенной формы случайное число генерировалось как 1 or 2 or 3. Когда форма будет загружена в 2-й раз, случайное число будет генерироваться от 1, 2 or 3, но отличается от того, как оно генерируется как раньше. И когда форма будет загружена в 3 раза, случайное число будет генерироваться от 1, 2 or 3, но отличается от предыдущего 2 раза, то есть повторения случайных чисел.генератор случайных чисел без повторения

Например, если в первый раз нагрузка формы, случайное число равно 3, то второй раз он должен быть либо 1, либо 2. И если загрузка второго времени RN равна 2, то в третий раз нагрузка формы должна быть равна 1.

Буду благодарен, если кто-то может помочь мне написать этот код в vb.net.

+0

Создайте статический генератор случайных чисел и используйте этот экземпляр для всех форм. Обычно рекомендуется использовать только один случайный генератор для каждой нити или приложения в зависимости от дизайна. – Bauss

+0

Просто создайте стандартный генератор случайных чисел, сохраните сгенерированное число где-нибудь, затем, когда генератор снова запустится, добавьте инструкцию, чтобы проверить, равно ли число сгенерировано любым из чисел, которые вы сохранили. – tash

ответ

0

Вы можете получить следующее случайное из списка, а затем удалить его, чтобы его нельзя было выбрать снова.

Dim rndList As New List(Of Integer) From {1,2,3} 
Static rnd As New Random 
Do Until rndlist.Count = 0 
    'get the index by random 
    Dim nextValue As Integer = rnd.Next(0, rndList.Count)) 
    'this is the value at the index 
    Debug.Write(rndList(nextValue)) 
    'remove this item 
    rndList.RemoveAt(nextValue) 
Loop