先來看個小故事。著名猶太曆史學家約瑟夫有過以下的故事:在羅馬人佔領喬塔帕特後,39個猶太人與約瑟夫及他的朋友躲到一個洞中。39個猶太人決定寧願死也不要被敵人抓到,於是商量了一個自殺的方式。41個人圍成一個圈,由第一個人開始報數,每報到3的那個人必須自殺,然後再由下一個重新報數,直到所有人都自殺為止。然而約瑟夫和他的朋友並不想遵從,那麼他們倆該怎麼辦呢?請先看下圖:
沒錯,聰明的約瑟夫把他和他的朋友分別安排在16和31這兩個位置,從而逃過一劫。好險!來看看如何程式設計的吧。先建立兩個角色,每個黑色圓點表示一個人,黑色線表示一把槍:
角色1的程式碼是透過克隆生成41個人,圍成一圈:
角色2是透過順時針轉圈移動來選出數到3的人:
學會了嗎?最後附上演算法版的程式碼:
執行結果如下:
別忘了點“贊”和“在看”哦