괴이한 랜덤수 문제
3310 단어 무작위 수
코드는 다음과 같습니다.
string strCode = "ABCDEFHIGKLMNOPQRSTUYCYZ";
System.Text.StringBuilder sb = new System.Text.StringBuilder();
for (int i = 0; i < 4; i++)
{
Random rom = new Random();
int strNum = rom.Next(1, strCode.Length);
char strArray = strCode[strNum];
sb.Append(strArray);
}
Response.Write(sb);
나는 원래 이 코드가 사실 매우 간단하다고 생각했지만, 매우 혼란스러운 것은 나중에 보니, 매번 클릭할 때마다 네 개의 같은 값을 얻는 것을 발견하였다.본능적인 반응은 프로그램 자체가 틀렸는지 확인하고 인터럽트를 설정해 디버깅을 하는 것이다.
그러나 유감스럽게도 디버깅이 맞았습니다. 정확한 4자리의 랜덤수를 정확하게 출력할 수 있었습니다. 그러나 실행할 때마다 이상한 것이 나왔습니다. 똑같은 알파벳 네 개가 나왔고 매번 똑같았습니다.
나는 오랫동안 보았는데 갑자기 나를 아는 한 학우가 정의의 랜덤 수는 더 이상 안에 순환할 수 없고 밖에 두어야 한다고 말하는 것이 생각났다.그리고 나는 이 생각에 따라 다음과 같이 실현했다.
string
strCode
=
"
ABCDEFHIGKLMNOPQRSTUYCYZ
"
;
System.Text.StringBuilder sb
=
new
System.Text.StringBuilder();
Random rom = new Random();
for
(
int
i
=
0
; i
<
4
; i
++
)
{
int
strNum
=
rom.Next(
1
, strCode.Length);
char
strArray
=
strCode[strNum];
sb.Append(strArray);
}
Response.Write(sb);
이러면 틀림없어!
사실, 지금까지도 나는 이 문제가 어디가 잘못되었는지 확실히 알 수가 없다.만약 누가 알고 있다면, 그래도 고수께서 저에게 해답을 주십시오. 저는 감격해 마지 않습니다.하지만 블로거들은 앞으로 이런 코드를 쓸 때 주의를 기울여야 한다고 조언한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby 랜덤 수 생성 방법 요약인류 관찰자에게 있어서 이 숫자들은 확실히 무작위적이다.짧은 반복 서열은 없을 뿐만 아니라, 적어도 인류 관찰자들에게는 완전히 무작위적이다.그러나 충분한 시간과 동기가 있으면 원시 피드를 발견하고 서열을 다시 만들고...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.