導航:首頁 > 編程語言 > 約瑟夫集合java

約瑟夫集合java

發布時間:2025-02-24 23:46:39

『壹』 java中「index=-1」是什麼意思

某些查詢方法中,如果沒有查找到你想要的結果,就會返回-1,表示沒有查找到。

『貳』 java循環單鏈表實現約瑟夫環,我的代碼出列順序不正確

你的remove方法不對,你的方法每次刪掉的是從head開始第m個位置的節點,
但約瑟夫環需要的內是容要刪掉每次循環數到m的位置的節點。
remove方法可以去掉,再把out方法改一下就可以了。
public void out(int m) throws Exception {
Node p = head;
Node pre = null;
int count = 1;
while (curlen > 0) {
if (count == m) {
System.out.print(p.getData() + " ");
if(pre != null){
pre.setNext(p.getNext());
}
p = p.getNext();
curlen = curlen - 1;
count = 1;
} else {
pre = p;
p = p.getNext();
count++;
}
}
}

『叄』 java編程17人編號為0-16圍成一圈,0號人開始從1報數,凡是報數為3倍數的人離開圈子,繼續到一個,問他編號

這是一個約瑟夫環的問題
解答如下:
依據提議,可以將題目等價變換為:「n(n=17)人編號為0到(n-1)圍成一圈,0號人開始從0報數,凡是報數為m-1 (m=3)倍數的人離開圈子,繼續到一個,問他編號」
一開始的狀態
0,1,2,3,4,5 ..... (n-2), (n-1) 【n個人】
第一個人被踢之後 設第一個被踢的人的編號為k, 則 k = m%n-1 【當n=17,m=3時,k=2。也就是說編號為2的人離開了圈子】
這時候的狀態
0, .... (k-1), (k+1) ,(k+2)...(n-2),(n-1) 【(n-1)個人,當n=17,m=3時: 0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16】
將這時候的編號做轉換. 因為是圍城一個圈子,下一個開始數的是(k+1).所以也可以表示為
(k+1),(k+2) ... (n-2),(n-1),0....(k-1) 【(n-1)個人,當n=17,m=3時: 3,4,5,6,7,8,9,10,11,12,13,14,15,16,0,1】
重新編號。得到:
0,1,2,3,4...(n-3),(n-2)【(n-1)個人】 這個時候 ,這里重新構成了一個約瑟夫環。也就是說,這是一個遞推的關系。
這里我們進行了重新編號。那麼 (n-1)個人和 n個人之間的編號不一樣的。但是兩者之間有一定的關系,可以沖新編號推導出老的
公式如下: i' = (i+k)%(n-1) 【比如,當n=17,m=3時 . 新的環編號是 (n-2),我要求他在老的環中的編號,那麼編號是 i' = ( (n-2) + k ) % (n-1) = 17%16 = 1,就是老的換種編號為1的那一個 】
反過來有 :i = (i'+m)%n
有了上面的推斷,可以代碼如下:

int ysf(int n,int m){
if(n==1){
return 0; //當環內只有一個人的時候,就是他自己
}
return (ysf(n-1,m) + m ) % n ;
}

------------------完整代碼---------------------
public class Test{
public static void main(String[] args){
int a = 17;
int b = 3;
System.out.println(ysf(a,b));
}

static int ysf(int n,int m){
if(n==1){
return 0;
}
return (ysf(n-1,m) +m) % n;
}
}

閱讀全文

與約瑟夫集合java相關的資料

熱點內容
如何把圖片放進這個文件夾 瀏覽:530
誰有qq認證圖標復制 瀏覽:881
2014年web伺服器測試工具 瀏覽:192
win7鏡像文件怎麼用 瀏覽:983
多數據can怎麼發送 瀏覽:997
什麼是夏威夷果種植技術app 瀏覽:160
上海學習編程哪個地方好 瀏覽:958
股票軟體與交易編程軟體哪個好 瀏覽:216
linux如何查看一個文件的位置 瀏覽:911
c頭文件無法打開源文件stdafx 瀏覽:750
蘋果x的桌面上可以建文件夾 瀏覽:368
ug8532位破解版安裝教程 瀏覽:490
電腦網路如何重新驅動 瀏覽:125
win10連接伺服器命令 瀏覽:228
盧克raid活動20升級卷 瀏覽:969
機票預訂什麼網站好 瀏覽:690
讀寫xml配置文件 瀏覽:153
java爬蟲解析html 瀏覽:861
約瑟夫集合java 瀏覽:275
我的ie8網站顯示不居中 瀏覽:423

友情鏈接