웹개발 - PHP 프로그램 개발 강의
글수 707
<?
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가 더 낫네요.
그저 속도만 더 빠른 것이었나… 물론 직접 초기화한 값은 다르겠지만,
나는 귀차니스트
2004.07.30 20:25:43 (*.97.205.123)
난수 생성의 원리는 뭘까~요?
어쨋든 컴퓨터는 인공지능 따위가 없기에, 난수 생성의 원리는 난수표에 있습니다. mt_rand 함수의 난수표가 훨씬 랜덤스럽죠.
.. 따라서 mt_rand 함수가 더 랜덤하게 뽑는다고 말하는 겁니다.
어쨋든 컴퓨터는 인공지능 따위가 없기에, 난수 생성의 원리는 난수표에 있습니다. mt_rand 함수의 난수표가 훨씬 랜덤스럽죠.
.. 따라서 mt_rand 함수가 더 랜덤하게 뽑는다고 말하는 겁니다.
2004.07.30 14:03:32 (*.208.197.161)
평균이 아니라 표준편차를 비교해야지요;
그리고 어느 것이 더욱 좋은 난수를 발생하는가에 대한 물음은 "같다"라고 보시면 됩니다.
예전 버전에서는 mt_rand가 확실히 좋았습니다만 PHP가 버전업되면서
mt_rand()가 조금 빠르다 뿐이지 난수값에 있어서는 큰 차이가 없습니다.
그리고 어느 것이 더욱 좋은 난수를 발생하는가에 대한 물음은 "같다"라고 보시면 됩니다.
예전 버전에서는 mt_rand가 확실히 좋았습니다만 PHP가 버전업되면서
mt_rand()가 조금 빠르다 뿐이지 난수값에 있어서는 큰 차이가 없습니다.


