問題典故:在羅馬人佔領喬塔帕特後,39 個猶太人與約瑟夫及他的朋友躲到一個洞中,39個猶太人決定寧願死也不要被敵人抓到,於是決定了一個自殺方式,41個人排成一個圓圈,由第1個人開始報數,每報數到第3人該人就必須自殺,然後再由下一個重新報數,直到所有人都自殺身亡為止


然而約瑟夫 和他的朋友並不想遵從,約瑟夫要他的朋友先假裝遵從,他將朋友與自己安排在第16個與第31個位置,於是逃過了這場死亡遊戲

 


以上列故事為例設計一程式滿足以下條件:


1.可自由設定參加總人數


2.可自由設定死亡的報數間隔


3.可自由設定存活的殘留人數


4.顯示殘留存活人數的位置號碼

 


這個問題基本上不難,程式流程大約如下:


1.首先為參加的每個人從1開始編號


2.使用迴圈搭配移位暫存器來處理報數問題


3.使用Rotate 1D Array元件使陣列內數值循環移動,符合報數位置時從陣列中剔除該數值


4.剩餘的就是殘存人數的位置號碼

 


完成的程式如下

20120221-01  

 

 

執行的結果

20120221-02  

,
創作者介紹

LabVIEW & PLC還未出師的小工程師部落格

未出師的小工程師 發表在 痞客邦 PIXNET 留言(1) 人氣()


留言列表 (1)

發表留言
  • 好

您尚未登入,將以訪客身份留言。亦可以上方服務帳號登入留言

請輸入暱稱 ( 最多顯示 6 個中文字元 )

請輸入標題 ( 最多顯示 9 個中文字元 )

請輸入內容 ( 最多 140 個中文字元 )

請輸入左方認證碼:

看不懂,換張圖

請輸入驗證碼