Re: [請益] random()的寫法
※ 引述《sonyblue (Gloomy Bear)》之銘言:
: 標題: [請益] random()的寫法
: 時間: Sun Nov 27 01:22:43 2005
: 請問一下,random()這個函數
: 用php怎麼實做出來......
: 還是有資料可以參考一下
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 210.71.10.1
: 推 johnney:你要的是?php source 或者是線上 manual? 11/27 12:27
: 推 ottokang:請去PHP手冊搜尋"random" 11/27 19:13
: 推 sonyblue:不是用法哦,是這個函數的寫法= = 11/28 00:52
: 推 EShensh:變數=rand(最小值,最大值); 11/28 06:01
: → EShensh:實作? 想實做亂數,直接抓 Timer 如何... 11/28 06:02
//首先要有亂數表
//然後就可以從 randTest() 裡取亂數了
//當然,照慣例,以下範例都是唬爛出來的 XD
$randMapSize=256;
$randMap="3921487237584330912831029309210947281375464823209146580127401928 \
9392174382653265743812739128321473286512310928319274821657561728 \
1093701091829742187432657326518291731019823917248327655832742183 \
0121029831927418243265312381927432657102392174835091293129874321";
define('_rand_map_',$randMap);
define('_rand_map_size_',$randMapSize);
define('_rand_seed_',false);
function randTest($min=null,$max=null) {
$min=intval($min);
$max=intval($max);
$timeNow=explode(" ",microtime());
$timeNow[0]=intval(substr($timeNow[0],2));
if(empty(_rand_seed_)) {
$startPoint=($timeNow[1]-$timeNow[0]) % _rand_map_size_;
$numberLen=date("s");
}
$randNumber=substr(_rand_map_,$startPoint,$numberLen);
if($min>=0 && $max>=0 && $max>$min) {
while($randNumber < $min || $randNumber > $max) {
$startPoint--;
if($min > $randNumber) $randNumber+=$startPoint;
if($max < $randNumber) $randNumber%=$max;
}
}
return $randNumber;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.158.10
討論串 (同標題文章)
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
48
107