素數(shù)環(huán)「素數(shù)環(huán)問題回溯法問題分析」_第1頁
素數(shù)環(huán)「素數(shù)環(huán)問題回溯法問題分析」_第2頁
素數(shù)環(huán)「素數(shù)環(huán)問題回溯法問題分析」_第3頁
素數(shù)環(huán)「素數(shù)環(huán)問題回溯法問題分析」_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

素數(shù)環(huán)「素數(shù)環(huán)問題回溯法問題分析」素數(shù)環(huán)是一個計算機程序問題,指的是將從1到n這n個整數(shù)圍成一個圓環(huán),若其中任意2個相鄰的數(shù)字相加,結(jié)果均為素數(shù),那么這個環(huán)就成為素數(shù)環(huán)其中程序方面包括遞歸實現(xiàn)C語言和遞歸實現(xiàn)C++,以及遞歸實現(xiàn)Pascal。n=20時,下面的序列就是一個素數(shù)環(huán)1234765891013161514172011121918英文名PrimeRingProblemon=intinputquot請輸入最大數(shù)nquotlists=1#多個素數(shù)環(huán)surplusnum=listrangel,n+1#剩余的數(shù)defsumisprimex,yx與y之和是否是素數(shù)isprime=True#是否是素數(shù)s=x+y#和forioprime函數(shù)里,把條件判斷xy改為x%y其它我沒細看,有問題再告訴我吧。Ifai+ai+lltbthenbeginexchangeai+c,ai+dd=d+lelsebreak這不是排序,但需要一個一個交換比較加起來是否為素數(shù),沒有遺漏我只把主程序?qū)懥顺鰜?,其他小部分自己填充?=IbO=lifprimeRingring,b,1printfquot\n\nTheprimeringisquotfori=0iltLENi++printfquot%dquot,ringiprintfquot\nquotelseprintfquot\n\nNotfound!\nquoto其時間復(fù)雜度應(yīng)該是0!n因為需要找到滿足素數(shù)環(huán)的所有條件的取值,等價于找到2?n的其中一個排列C++的回溯素數(shù)環(huán)includeItiostreamusing namespacestdintninta20boolvist20boolisPrimeintxifo一個由自然數(shù)InnIt20素數(shù)環(huán)就是如下圖所示,環(huán)上任意兩個節(jié)點上數(shù)值之和為素數(shù)1\42\3參考資料php?problemid=1114o比如1,2,3,4,7,10,9,8,5,66,1,2,3,4,7,10,9,8,5importimportpublicclassPrimeRing求1?n素數(shù)環(huán)publicPrimeRirioif!visiispi+acurl如果i沒有用過,并且與前一個數(shù)之和為素數(shù)acur=ivisi=ldfsn,a,isp,vis,cur+lvisi=0intmaininti,n,alOO,isplOO,visl00mo你能把這個程序的算法過程解釋一遍嗎你這個程序有不少問題啊比如ifvisi—Oispi+Acurl-1第一次,你的cur為0這個時候Acurl就是Al了,這個根本就越界了問題不少啊。Inputn(o<n<20).OutputTheoutputformatisshownassamplebelow.Eachrowrepresentsa:ringbeginningfrom1clockwdselyandanticlockwisely.Theorderofirequirements.Printsolutionsinlexicographicalorder.Youaretowriteaprogramthatcompletesaboveprocess.Printablanklineaftereachcase.不清楚你是要求120所有長度的素數(shù)環(huán)還是要求長度為20的所有素數(shù)環(huán)按照后者給你改了一版程序出來需要注意的有兩點一個是由于要遞歸嘗試下一個數(shù)值,所以用來存結(jié)果的數(shù)組必須要作為參數(shù)傳進去另一個必須有一個數(shù)組。自己試試看,1到20排成一個素數(shù)環(huán),能不能擺成我的代碼結(jié)果也是0C++版includeltiostreamincludeltcmathusingnamespacestdboolb21=0inttotal=0,a21=0intpdint,intintprinto文件輸入輸出應(yīng)該不用多說吧freopenquotprimeinquot,quotrquot,stdinfreopenquotprimeoutquot,quotwquot,stdout至于算法的話,就是暴力搜索加剪枝如果當(dāng)前值與上一個值之和是一個素數(shù)才繼續(xù)向下搜索用一個stackN記錄數(shù)字深。constmax=100varaarraylmaxoflongintprocedureprintvarilongintbeginfori=lto15dowriteai3writeInendfunctionfacp,qlongintbooleanvarn,ilongintbeginn=p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論