JAVA演算法---約瑟夫問題

 1 public class Josephus {
 2     public static int[] arrayOfJosephus( int number, int per) {   3
 4         int[] man = new int[number];
 5
 6         for(int count = 1, i = 0, pos = -1;
 7                 count <= number; count++) {
 8             do {
 9                 pos = (pos+1) % number;  // 環狀處理
10                 if(man[pos] == 0)
11                     i++;
12
13                 if(i == per) {  // 報數為3了
14                     i = 0;
15                     break;
16                 }
17             } while(true);
18
19             man[pos] = count;
20         }
21
22         return man;
23     }
24
25     public static void main(String[] args) {
26         int[] man = Josephus.arrayOfJosephus(41, 3);
27         int alive = 3;
28
29         System.out.println("約瑟夫排列:");
30         for(int i = 0; i < 41; i++)
31             System.out.print(man[i] + " ");
32
33
34         System.out.println("\nL表示3個存活的人要放的位置:");
35         for(int i = 0; i < 41; i++) {
36             if(man[i] > alive)
37                 System.out.print("D");
38             else
39                 System.out.print("L");
40
41             if((i+1) % 5 == 0)
42                 System.out.print("  ");
43         }
44
45         System.out.println();
46     }
47 }  
时间: 2024-10-25 21:21:13

JAVA演算法---約瑟夫問題的相关文章

[three.js] 解決貼圖無法重複的問題 Solving with Texture RepeatWrapping Fail Issue

有些东西,你想找的时侯,怎么也找不到, 而有些东西,不经意间,随处可见: 本以为这是生活中常见的事情, 然而在浩瀚的互联大海中,也是如此. 平时的积累是为了一时之需, 几分钟的投入, 积累起来, 也会成为汪洋大海, 载起一帆小舟, 不至搁浅. 平时注一入滴水, 需时拥有太平洋, 广告词很好, 然而它真正的意义又有几人能真正领悟呢! 附一个不错的 threejs 开源链接: https://github.com/rmx/threejs-collada [three.js] 解決貼圖無法重複的問題

java路徑問題。

本文只是基於FileOuutPut和this.getClass().getResourceAsSream()做的測試. package com.eblly.xml; import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.util.ArrayList;import java.util.List; import org.dom4j.Document;import org.do

何解決 LinqToExcel 發生「無法載入檔案或組件」問題何解決 LinqToExcel 發生「無法載入檔案或組件」問題

在自己的主機上透過 Visual Studio 2013 與 IISExpress 開發與測試都還正常,但只要部署到測試機或正式機,就是沒辦法順利執行,卡關許久之後找我協助.我發現錯誤訊息確實很「一般」,訊息是:「 無法載入檔案或組件 'LinqToExcel' 或其相依性的其中之一. 試圖載入格式錯誤的程式. 」或是英文版的「 Could not load file or assembly 'LinqToExcel' or one of its dependencies. An attempt

DevExpress的GridControl控件更新數據問題解決辦法

開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據.今天在開發時遇到一種情況,當通過GridControl中Row上Button[Command]改變行內數據,也就是binding的Detail數據已改變,這時NotifyPropertyChanged有觸發,但改變的行數據不會同步更新到UI上,目前測試有兩種方式進行解決. 1.直接new 一個新的行

[亂數] &lt;細說&gt; C/C++ 亂數基本使用與常見問題

陸陸續續寫了 EA  一.二年,以前亂數引導文回頭看時才發現,怎麼有這麼多細節的錯誤.沒系統. 這篇文章主要引導初學者使用亂數,同時附上常被翻出來討論的議題,C/C++適用,唯以 C 語言撰之. 也由於是引導初學者,所以在某些用詞上會較不正確, 像 compiler.IDE 會故意混為一談. 另外亂數原理也全都跳過 < 重點是亂數的產生原理也不只一種 >. 另本文附程式碼,不附執行結果,有興趣自己跑一遍. 最後請注意本文在區間表達裡,開區間與閉區間 括號的使用,也就是, [a, b]  ,  

大數據時代的不平等問題

一家國際著名保險公司與提供大數據的公司合作,推出一款針對不同駕車群體的保險計劃.這一計劃的要點是,由大數據公司對不同潛在客戶的駕車習慣進行分析,如果數據表明某位客戶是白天上班,路也近,而且所經過的地帶是安全路線,客戶駕車習慣良好,沒有特別情緒化舉動,那麼,給其所賣的保險可以打折:反之,如果數據表明某位客戶是上夜班,上班地點也遠,所經過的路線有風險,客戶駕車習慣也不好,常無法控制自己的行為,那麼,保險公司將提高其所繳納保費額度.從商業角度看,保險公司這樣做,是為了更精確地細分市場,賺取更高利潤,這

BT觀念分享和常見問題彙整

一. TCP/IP基本觀念 1. IP : 每台在TCP/IP網路上的電腦必須具備的一個代表號或一個地址.IP又分為private IP(192.168.x.x /10.x.x.x /172.16.x.x~172.31.x.x)和public IP(除了少數特殊IP,只要不是private IP就是public IP). 2. port : port可視為TCP/IP網路中電腦提供的某種服務的門牌號碼,號碼(port的數值)是多少不重要,號碼代表的服務才重要.例如: port80代表web的服務

繁體字顯示問題

宋體筆畫設計簡單,加之hint的作用,所以實用性很高.MingLiU筆畫很有藝術性,hint不好做,所以必須用大字號才能看清楚其細節.因為電腦顯示技術的限制,導致其在普通字體大小下,筆畫基本上是貼在一起,非常不實用.日文有很多字體,主流是哪種我也不知道,不過總體的觀感就是既美觀又實用.簡體字設置成宋體13px,已經基本上能看清楚,正文是16px,效果更好,可以打80分.繁體字設置微軟正黑體,或者宋體,在16px就差強人意了.繁體字設置成MingLiU,如果要求筆畫不發虛,拐角能看清楚,則最少需要

Unity strip engine code 遇到執行不能之問題與解決

遊戲發布在 WebGL 平台發現檔案還是太大,因此在 IL2CPP 的環境下,開啟 Strip engine code 編譯功能,嘗試看看能不能減少一些檔案容量. 但由於我們另外有載入 Scene stream assetbundles 的機制,因此遇到開啟 Strip engine code 後,無法正常執行的情形. 經過 Kelvin Lo 技術支援以及時間測試後,終究能夠正常執行,留下整件事情的經過.技術問題以及相關解法支援等等資料. 測試環境 Unity5.5.1f1,Windows 1