PHP佇列 選舉引發的一場血案

2021-06-09 01:12:47 字數 879 閱讀 3000

「花果山選舉引發的一場血案」

「自花果山美猴王齊天大聖孫悟空被如來壓在五指山下,花果山無人管理,受盡周邊惡霸的欺負,長老們意識到花果山不能一日無主,於是決定選舉一位臨時大王,由於猴子猴孫水平都不相上下,推選誰都難以平眾憤,長老們無計可施~~~乙隻聰明的猴子急中生智,提議:猴孫們圍成一圈,按順時針順序1~n編號,由德高望重的猴博士隨機選出乙個數字m,從編號1的猴子開始從1報數,報數為m的猴子退出選舉,再由下乙隻猴子從1報數,下乙隻報數為1的猴子也退出選舉……,以此類推,直到只剩下乙隻猴子結束報數,這只猴子就是臨時大王。雖然這個提議得到長老們一致認同,但是花果山有成千上萬的猴孫們,等選舉出新大王時都已猴年馬月了,此時猴博士拿出神器iphon8,google了一下,找到一款類似的決策應用軟體,終於輕鬆地解決了這個問題~~」(娛樂結束!)

如果你是這款應用的開發者,你該怎麼實現它?

1.演算法思想:利用佇列實現(想必還有更好的解決方案,不放說出來大家學習學習!),這裡採用順序儲存結構,即定義乙個長度為n的陣列data[n],陣列第乙個元素為隊頭front,最後乙個元素為隊尾rear,反覆操作入隊出隊。

1)先將編號1~n入隊,若佇列不止乙個元素,反覆操作2);

2)出隊乙個元素,若為第m次出隊,將剛出隊元素記錄到退出記錄陣列;否則,將剛出隊的元素再次入隊。

2.對應演算法如下:

<?php

function outputking($n,$m)

while (count($data)>1)else

}return current($data); //返回最終餘下的元素,即選舉出來的大王編號

}?>

3.應用網頁設計

一場大雨引發的思考

昨日傍晚時分京城突降大雨,恰逢與同事去公司附近學校食堂吃晚飯,於是我一路狂奔,不過同事倒是淡定,慢慢悠悠,我就問他你不怕挨淋啊,他回答道,走得快走的慢,距離一樣,淋的雨一樣多啦。這回答讓我一愣,心裡有些犯嘀咕。等到食堂開吃時,我的程式設計師病就犯了 打個傘就不淋了,非要鑽牛角尖。於是我再次提出這個問...

使用訊息佇列後引發的血案

我們公司有乙個專案,用到了訊息佇列,經常會遇到很多坑,難以排查,下面我詳細描述一下心路歷程。首先介紹一下這個專案,簡單的講,有a,b兩個工程組成,a工程輪訓監聽資料庫,一旦有改動就推訊息給b,然後b工程會接受到這條訊息後處理自己的邏輯,最後寫入資料庫。然後出現的問題有好幾個。首先第乙個是我們的測試環...

一場娛樂節目引發的腦補

今天看了乙個 節目叫什麼偶像,關於節目本身我不怎麼了解,我只想對我看到的第二期節目表達下自己的看法。第二期的節目內容是中國的四名隊員和南韓的四名隊員,兩兩組隊,然後進行pk,獲得票數最多的組合奪冠。我分別來介紹下我關注到的地方 第一組 薛之謙 宋閔浩 直到最後的表演,兩位都沒有一塊搭檔表演過。原因是...