PHP猴子選大王問題

2021-09-08 03:22:40 字數 442 閱讀 9218

問題簡介:

n只猴子圍坐成乙個圈,按順時針方向從1到n編號。然後從1號猴子開始沿順時針方向從1開始報數,報到m的猴子出局,再從剛出局猴子的下乙個位置重新開始報數,如此重複,直至剩下乙個猴子,它就是大王.

這裡使用乙個遞推公式:

f[i]表示有i只猴子時,每次剔除m只猴子,最後剩下的大王座標(座標從0開始),只有1只猴子時,大王座標為0,依次遞推,即可求得有i只猴子時最後的大王座標

123

<?php

4function monkeyking($n, $m)

9return$s;

10}1112

echo monkeyking(6, 2);

13 ?>

1415

頁面輸出

猴子選大王問題

猴子選大王 亞瑟夫換 的問題是資料結構和演算法中常見的一類問題。可以使用迴圈佇列實現,也可以使用鍊錶實現。還可以使用陣列的回溯法實現。m只猴子要選大王,選舉辦法如下 所有猴子按1,2 n編號圍成一圈,從第一號開始順序1,2 m,凡是報m號的退出圈外,如此迴圈報數直到圈內只剩乙隻猴子時這只猴子就是大王...

猴子選大王問題

創立乙個記錄編號的陣列,用指標在這個陣列迴圈移動計數,當計數為m時將這個元素做移除標記,直到剩下最後乙個元素。1 intmain 211 int p v 0 12 int z 0,x 1,co 1 z為剔除元素個數,x為元素在陣列中位置,co為計數 13for 1423 p 24 x 25 26if...

PHP程式設計 猴子選大王

猴子選大王 17個猴子圍成一圈,從某個開始報數1 2 3 1 2 3 報 3 的猴子就被淘汰,遊戲一直進行到圈內只剩乙隻猴子它就是猴大王了 程式設計思路 如果猴子被淘汰則unset 否則array push 不停迴圈 直至陣列中只有乙個元素 假如5個猴子 每報乙個數 陣列的值 初始陣列 array ...