100 The 3n+1 Problem.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
100 The 3n+1 Problem.ppt

1 100: The 3n+1 Problem ★★★☆☆ 題組: VOLUME CII 題號: 10721: Problem C-Chopsticks 解題者:陳冠男、侯沛彣 解題日期:2006年4月23日 給定一個正整數 n (n1),當n為奇數時令 n?3n+1,當n為偶數時令 n?n/2,反覆計算後此數將收斂到1。 例如22的收斂過程:22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1, cycle length(數列長度)=16。 本題為給定i, j,問[i, j]之間最大的cycle length為多少? 題意: L先生用三支筷子吃飯(兩支是平常用法,第三支用來插食物,所以普通用法的兩支筷子長度是越接近越好,而第三支筷子的長度得最長) 。他要在生日餐會上向K個朋友炫耀他的筷子用法,得準備K+8(包括他自己、老婆、兒子、女兒、爸、媽、岳父、岳母)組筷子。 目標是自N個遞增的正整數Li中,選出K+8個集合,每個集合中有3個元素A、B、C (0=K=1000;3K+24=N=5000;1=Li=32000,每個Li只能被選取一次;A=B=C),且所有集合的(A-B)2之總合最小。 題意範例: Sample Input 1 //number of cases 1 40 //K N 1 8 10 16 19 22 27 33 36 40 47 52 56 61 63 71 72 75 81 81 84 88 96 98 103 110 113 118 124 128 129 134 134 139 148 157 157 160 162 164 //Li Sample Output 23 解其中之一的9個集合:(8, 10, 16)、(19, 22, 27)、(61, 63, 75)、(71, 72, 88)、(81, 81, 84)、(96, 98, 103)、(128, 129, 148)、(134, 134, 139)、(157, 157, 160),可產生最小的(A-B)2之總合,23。 解法: Dynamic programming。 畫圖說明前置步驟。 以程式說明DP部分: for(j= 1, K+=8; j = K; j++){ for(i= UB= N-((K-j)*3+1), LB= j*2; i = LB; i--) badness[i]= badness[i-2]+square[i]; for(i= LB; i UB; i++) if(badness[i] badness[i+1]) badness[i+1]= badness[i]; badness[UB+1]= badness[UB]; } 解法範例: badness[i-2] + suqare[i] = badness’[i] 挑出最佳解 討論:   空間複雜度因為只有使用幾條一維陣列,固為O(n)。   時間複雜度部分,要找K+8個sets,每找一個set要跑2次for迴圈,又3K+24=N = K=(N-24)/3,故時間複雜度為O(n2)。 *

文档评论(0)

shbky123 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档