난수
어떤 수들 중에서 임의로 결정된 하나의 수
rand, srand, getrandmax
난수를 발생시키기 위해서는 rand, srand, getrandmax라는 세가지 함수가 하나의 짝을 이루어 사용된다.
역할
rand | 정해진 범위에서 하나의 수를 결정하여 리턴 |
srand | 난수 발생 간격을 결정 |
getrandmax | 발생할 수 있는 난수의 최대 범위를 리턴 |
형식
저장될변수 = rand(최소값, 최대값);
예제
- <?
-
echo getrandmax(); //난수로 뽑을수 있는 최대값 출력
-
srand((double)microtime()*1000000); //백만분의 1초 간격으로 난수 발생
-
echo rand(0, 10); //0에서 10까지의 수 중에서 하나의 수를 출력
- ?>
mt_rand, mt_srand, mt_getrandmax
rand, srand, getrandmax함수 앞에 mt라는 문자를 붙여놓은 함수는 Mersenne Twister 알고리즘을 이용하여 난수를 발생시키는 함수이다.
mt_rand함수는 rand함수보다 4배 정도 빠르고 더 큰 범위의 난수를 만들어 주면, 사용형식은 rand 함수와 동일하다.
역할
mt_rand | 정해진 범위에서 하나의 수를 결정하여 리턴 |
mt_srand | 난수 발생 간격을 결정 |
mt_getrandmax | 발생할 수 있는 난수의 최대 범위를 리턴 |
형식
저장될변수 = rand(최소값, 최대값);
예제
- <?
-
echo mt_getrandmax(); //난수로 뽑을수 있는 최대값 출력
-
mt_srand((double)microtime()*1000000); //백만분의 1초 간격으로 난수 발생
-
echo mt_rand(0, 10); //0에서 10까지의 수 중에서 하나의 수를 출력
- ?>
랜덤 문자열 출력
웹서핑을 하다보면 방문할 때마다 다른 배너가 걸려 있는 것을 종종 볼 수 있다. 이렇게 배너가 변경되는 것을 난수 발생 방법으로 구현 가능한데, 이미지는 귀찮으니까 문자열로 구현해보자.
<?
//만일 이미지를 변경하고 싶다면 문자열 대신 <img src='이미지'>를 넣어주면 된다.
$a = array("무라카미하루키", "에쿠니가오리", "츠지히토나리");
mt_srand((double)microtime()*1000000);
$result = mt_rand(0, 2);
echo $a[$result];
?>
이 글은 스프링노트에서 작성되었습니다.