웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
rand함수와 mt_rand함수의 비교
2004.07.30 07:53
<?
for($i=0; $i<10000000; $i++) {
$rand=rand(1,2) + $rand;
$mt_rand=mt_rand(1,2) + $mt_rand;
}
$rand = $rand/10000000;
$mt_rand = $mt_rand/10000000;
echo "rand() : $rand
";
echo "mt_rand() : $mt_rand";
?>
이렇게 초기화하지 않고 실행해 보았습니다.
1.5에 가까울수록 좋…
1회(1000만번)
rand() : 1.4999938
mt_rand() : 1.499917
2회(2000만번)
rand() : 1.500004
mt_rand() : 1.4998595
3회(3000만번)
rand() : 1.4999983
mt_rand() : 1.4998941
4회(4000만번)
rand() : 1.4999975
mt_rand() : 1.5002273
5회(5000만번)
rand() : 1.4999962
mt_rand() : 1.4999263
rand 함수의 평균값 : 1.49999796 (1.5 - 0.00000204)
mt_rand 함수의 평균값 : 1.49996484 (1.5 - 0.00003516)
'mt_rand가 향상된 난수값을 발생시킨다'라고 되어 있지만 rand가 더 낫네요.
그저 속도만 더 빠른 것이었나… 물론 직접 초기화한 값은 다르겠지만,
나는 귀차니스트
for($i=0; $i<10000000; $i++) {
$rand=rand(1,2) + $rand;
$mt_rand=mt_rand(1,2) + $mt_rand;
}
$rand = $rand/10000000;
$mt_rand = $mt_rand/10000000;
echo "rand() : $rand
";
echo "mt_rand() : $mt_rand";
?>
이렇게 초기화하지 않고 실행해 보았습니다.
1.5에 가까울수록 좋…
1회(1000만번)
rand() : 1.4999938
mt_rand() : 1.499917
2회(2000만번)
rand() : 1.500004
mt_rand() : 1.4998595
3회(3000만번)
rand() : 1.4999983
mt_rand() : 1.4998941
4회(4000만번)
rand() : 1.4999975
mt_rand() : 1.5002273
5회(5000만번)
rand() : 1.4999962
mt_rand() : 1.4999263
rand 함수의 평균값 : 1.49999796 (1.5 - 0.00000204)
mt_rand 함수의 평균값 : 1.49996484 (1.5 - 0.00003516)
'mt_rand가 향상된 난수값을 발생시킨다'라고 되어 있지만 rand가 더 낫네요.
그저 속도만 더 빠른 것이었나… 물론 직접 초기화한 값은 다르겠지만,
나는 귀차니스트
댓글 6
-
플로렐라
2004.07.30 08:53
겨우 1, 2가지고는 정확도가-_-..; -
☺심심
2004.07.30 10:47
ㅡㅡ;
심심하셨군..;
(딴지아녜요) -
앳플군
2004.07.30 20:25
난수 생성의 원리는 뭘까~요?
어쨋든 컴퓨터는 인공지능 따위가 없기에, 난수 생성의 원리는 난수표에 있습니다. mt_rand 함수의 난수표가 훨씬 랜덤스럽죠.
.. 따라서 mt_rand 함수가 더 랜덤하게 뽑는다고 말하는 겁니다. -
TheMics
2004.07.30 14:03
평균이 아니라 표준편차를 비교해야지요;
그리고 어느 것이 더욱 좋은 난수를 발생하는가에 대한 물음은 "같다"라고 보시면 됩니다.
예전 버전에서는 mt_rand가 확실히 좋았습니다만 PHP가 버전업되면서
mt_rand()가 조금 빠르다 뿐이지 난수값에 있어서는 큰 차이가 없습니다. -
Pe-i
2004.08.01 21:34
평균을 비교하면...;
랜덤은 얼마나 더 평균차가 작냐보단 얼마나 더 다양하게가 중요 'ㅇ'!...
앳플군//어멋 난수표 'ㅇ'~? -
양영직
2004.11.01 03:03
안타깝게도 컴퓨터는 인간이 시키는 일만해서 스스로 난수를 생각해낼 능력이 없습니다-_-;......
제목 | 글쓴이 | 날짜 |
---|---|---|
rand함수와 mt_rand함수의 비교 [6] | 심심타 | 2004.07.30 |
트랙백 구현하기 - 4. PHP로 트랙백 핑 받기 | TheMics | 2004.07.18 |
트랙백 구현하기 - 3. PHP로 트랙백 핑 보내기 [4] | TheMics | 2004.07.18 |
히어닥 문법 활용 [14] | ☺심심 | 2004.07.13 |
++와 +=1 의 속도차이 [7] | 플로렐라 | 2004.07.12 |
<와 <=의 속도차이? [23] | 플로렐라 | 2004.07.07 |
서버가 느려졌을경우... [20] | 신상우 | 2004.06.28 |
파일업로드시 파일명 중복되지 않게 저장하기.. [8] | 페리 | 2004.06.28 |
페이지에 암호를 걸자..=_= [27] | ☺심심 | 2004.06.25 |
아이피 접근을 막고 메세지 출력하기.. [11] | ☺심심 | 2004.06.24 |
오늘의 명언을 출력해주는 함수 [10] | 김재경 | 2004.06.15 |
3. if문 [13] | 티다 | 2004.06.05 |
응용편 - BMI 측정 테스트 소스를 만들어보자 [5] | 티다 | 2004.06.04 |
게시판내용에 코멘트를 달자!! -마지막- [2] | 이혁 | 2004.06.03 |
게시판내용에 코멘트를 달자!! -2- [1] | 헉스 | 2004.06.02 |
게시판내용에 코멘트를 달자!! [3] | 헉스 | 2004.06.02 |
2. array [5] | 티다 | 2004.06.02 |
1. 연산자 [2] | 티다 | 2004.06.02 |
주식정보출력코드 [2] | 김재경 | 2004.06.01 |
윈도우계정에서 현재 남은 용량과 DB 용량 알기 [6] | 지으니 | 2004.05.31 |