PHP隨機(jī)取一算法(三)
閱讀 20398 · 發(fā)布日期 2020-08-24 11:44 · 溫州優(yōu)光網(wǎng)絡(luò)科技有限公司|建站|APP小程序制作|做網(wǎng)站SEO推廣優(yōu)化
【摘要】
在前面的文章《PHP隨機(jī)取一算法(二)》中,我們詳細(xì)的為大家介紹PHP隨機(jī)取一算法的實現(xiàn)思路,也就是“公平選猴王”面試題的解決方法。下面我們就結(jié)合上述文章中的代碼方法,給大家通過Xdebug調(diào)試運行算法實現(xiàn)的過程。問題如下:一群猴子排成一圈,按1,2,…,n依次編號。然后從第1只開始數(shù),數(shù)到第m只,把它踢出圈,從它后面... 【溫州小程序開發(fā),溫州微信公眾號,平陽做網(wǎng)站,平陽網(wǎng)站建設(shè)公司,平陽小程序商城制作,昆陽萬全做網(wǎng)站,鰲江水頭小程序,蕭江騰蛟微信公眾號,山門順溪南雁海西南麂鳳臥麻步懷溪網(wǎng)絡(luò)網(wǎng)店服務(wù),政采云網(wǎng)店管理服務(wù)】...
在前面的文章《PHP隨機(jī)取一算法(二)》中,我們詳細(xì)的為大家介紹PHP隨機(jī)取一算法的實現(xiàn)思路,也就是“公平選猴王”面試題的解決方法。
下面我們就結(jié)合上述文章中的代碼方法,給大家通過Xdebug調(diào)試運行算法實現(xiàn)的過程。
問題如下:
一群猴子排成一圈,按1,2,…,n依次編號。
然后從第1只開始數(shù),數(shù)到第m只,把它踢出圈,從它后面再開始數(shù),再數(shù)到第m只,在把它踢出去…,如此不停的進(jìn)行下去,直到最后只剩下一只猴子為止,那只猴子就叫做大王。
要求編程模擬此過程,輸入m、n, 輸出最后那個大王的編號。
代碼如下:
$monkeys = range(1, $n);
//創(chuàng)建1到n數(shù)組 $i=0;
while (count($monkeys)>1) {
//循環(huán)條件為猴子數(shù)量大于1 if(($i+1)%$m==0) {
//$i為數(shù)組下標(biāo);
$i+1為猴子標(biāo)號 unset($monkeys[$i]);
//余數(shù)等于0表示正好第m個,刪除,用unset刪除保持下標(biāo)關(guān)系 }
else {
array_push($monkeys,$monkeys[$i]);
//如果余數(shù)不等于0,則把數(shù)組下標(biāo)為$i的放最后,形成一個圓形結(jié)構(gòu) unset($monkeys[$i]);
}
$i++;
//$i 循環(huán)+1,不斷把猴子刪除,或 push到數(shù)組 }
return current($monkeys);
//猴子數(shù)量等于1時輸出猴子標(biāo)號,得出猴王 }
echo king(10,3);
首先我們在第四行代碼前,創(chuàng)建一個斷點。
然后打開瀏覽器,運行此段代碼,斷點成功獲取焦點,如下。
創(chuàng)建1到n數(shù)組。
然后while循環(huán)判斷刪除元素。
以此循環(huán),最后得出“猴王”。
相關(guān)推薦:
《PHPStorm怎么配置xdebug工具并使用?(圖文+視頻教程)》那么關(guān)于PHP隨機(jī)取一算法的內(nèi)容,就介紹到這里。
大家也可以在本地自行測試。
其實也非常簡單,希望對需要的朋友有所幫助!以上就是PHP隨機(jī)取一算法(三)的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!
微信
分享相關(guān)標(biāo)簽:
PHP隨機(jī)取一算法本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
上一篇:
PHP隨機(jī)取一算法(二)
下一篇:
PHP冒泡排序算法(一)相關(guān)文章相關(guān)視頻php隨機(jī)顯示指定文件夾下圖片的方法_php技巧php隨機(jī)獲取金山詞霸每日一句的方法_php技巧PHP隨機(jī)生成唯一HASH值自定義函數(shù)_php技巧PHP隨機(jī)生成信用卡卡號的方法_php技巧PHP隨機(jī)取一算法(三)《PHP隨機(jī)取一算法(一)》2019.2.16《PHP隨機(jī)取一算法(二)》2019.2.16《PHP隨機(jī)取一算法(三)》2019.2.16 [溫州php做網(wǎng)站知識]