|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ReDim arrNumbers(9)
Randomize
For arrCol = 0 To 9
arrNumbers(arrCol) = arrCol + 1
Next
Do While lngCount < 10 ' 총 6회 반복
arrIndex = Int(Rnd * (UBound(arrNumbers) + 1))
response.write CStr(arrNumbers(arrIndex)) ' 1 ~ 10 까지 중복 되지 않고 찍기....
arrNumbers(arrIndex) = arrNumbers(UBound(arrNumbers))
' 현재 구한 배열의 첨자에 맨 끝 첨자의 값을 대입함.
ReDim Preserve arrNumbers(UBound(arrNumbers) - 1)
' 맨 끝 첨자를 제거함.
lngCount = lngCount + 1
' 카운트 변수 증가
Loop
Erase arrNumbers ' 배열을 메모리상에서 제
말로 풀어보자면
배열의 갯수를 하나씩 줄여가면서
방금 발생한 랜덤 숫자를 인덱스로 하는 배열에 맨 끝 첨자의 값을 넣어준다.
ex) 랜덤 숫자 3 발생
최초 배열
배열 index |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
배열 값 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
3 : 구해지는 값 :3
배열 index | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | |
배열 값 | 1 | 2 | 10 | 4 | 5 | 6 | 7 | 8 | 9 |
3,6 : 구해지는 값 3,6
배열 index | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | ||
배열 값 | 1 | 2 | 10 | 4 | 5 | 9 | 7 | 8 |
3,6,8 구해지는 값 : 3,6,8
배열 index | 1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
배열 값 | 1 | 2 | 10 | 4 | 5 | 6 | 7 |
3 6 8 3 구해지는 값 : 3,4,8,10
배열 index | 1 | 2 | 3 | 4 | 5 | 6 | ||||
배열 값 | 1 | 2 | 7 | 4 | 5 | 6 |
3 6 8 3 1 구해지는 값 3 4 8 10 1
배열 index | 1 | 2 | 3 | 4 | 5 | |||||
배열 값 | 6 | 2 | 7 | 4 | 5 |
이런식으로 배열을 줄여가면서 줄인 배열안에 최고 배열 값을 옴겨놓아서 중복 되지 않고 1 부터 10까지의 숫자를 재배열 하는 로직
'Developer > asp' 카테고리의 다른 글
VBScript 문자형(string)으로 형변환 (0) | 2017.07.12 |
---|---|
DEXTUpload 지원 (0) | 2017.03.13 |
asp 변수 타입 확인... (0) | 2016.05.31 |
인코딩 고찰. ASP (0) | 2016.05.31 |
aspjson read.. (0) | 2016.05.23 |