VB.net genera aleatoriamente 10 números menos que este número sin repetición.
Atenuar i, j
j = GetRndNotRepeat(1, 10, 10)
Si j(0) entonces
Para i = 1 a 10
MsgBox(j(i))
Entonces
Terminará si...
Finalizar conector
p>Función pública GetRndNotRepeat (ByVal NumMin es un número entero, ByVal NumMax es un número entero, ByVal n es un número entero)
Compilar: xsfhlzh
Función: Tome el valor entre NumMin y NumMax n enteros aleatorios.
Descripción: El conjunto de banderas es Byte, y cada bit representa el estado de un número entre NumMin y NumMax.
Dim arr() es un número entero
Si n & gtNumMax - NumMin + 1 entonces
ReDim arr(0)
arr ( 0) = 0
Devolver arr
Otros
ReDim arr(n)
Marcar m como un número entero
Dim b() es bytes
m = Int((NumMax - NumMin) / 8)
Radim b(m)
Banderas de entrada
Atenuar i
Etiquetar x, y, z como números enteros
Aleatorio()
arr(0) = 1
Para i = 1 an
Hacer
Encuentre la posición de X, donde y representa en qué byte de la matriz se encuentra X, z representa en qué palabra de X Festival.
x = Int(Rnd()*(NumMax-NumMin+1))+NumMin
y = x - NumMin
z = 2 ^ (y Mod 8)
y = y \ 8
Bucle cuando b(y) y z
b(y) = b(y) o z p> p>
arr(i) = x
Encuentra el número no tomado, colócalo en la matriz y configura la bandera.
Siguiente I
Terminará si...
Regresar arr
Finalizar función