-
《Java手機程式設計入門》/王森
書號:29014
頁數:約 492 頁
ISBN:957-200-527-8
出版日期:2001年08月25日
出版廠商:知城數位科技股份有限公司
訂價:380
第一章 Java 2 Micro Edition概論陣
第二章 Java程式設計簡介陣
第三章 撰寫您的第一個手機程式陣
第四章 在實體機器上執行MIDlet陣
第五章 J2ME Wireless Toolkit陣
第六章 Motorola A6288手機程式開發陣
第七章 JBuilder MobileSet陣
第八章 MIDP for Palm
第九章 MIDlet的事件處理陣
第十章 MIDP圖形使用者介面程式設計陣
第十一章 MIDP圖形處理陣
第十二章 MIDP資料庫程式設計陣
第十三章 MIDP網路程式設計陣
附錄A MID其他參考資源總整理陣
附錄B Motorola J2ME SDK
標簽:
29014
Java
2001
ISBN
上傳時間:
2016-12-01
上傳用戶:coeus
-
PCB 布線原則連線精簡原則連線要精簡,盡可能短,盡量少拐彎,力求線條簡單明了,特別是在高頻回路中,當然為了達到阻抗匹配而需要進行特殊延長的線就例外了,例如蛇行走線等。安全載流原則銅線的寬度應以自己所能承載的電流為基礎進行設計,銅線的載流能力取決于以下因素:線寬、線厚(銅鉑厚度)、允許溫升等,下表給出了銅導線的寬度和導線面積以及導電電流的關系(軍品標準),可以根據這個基本的關系對導線寬度進行適當的考慮。印制導線最大允許工作電流(導線厚50um,允許溫升10℃)導線寬度(Mil) 導線電流(A)
其中:K 為修正系數,一般覆銅線在內層時取0.024,在外層時取0.048;T 為最大溫升,單位為℃;A 為覆銅線的截面積,單位為mil(不是mm,注意);I 為允許的最大電流,單位是A。電磁抗干擾原則電磁抗干擾原則涉及的知識點比較多,例如銅膜線的拐彎處應為圓角或斜角(因為高頻時直角或者尖角的拐彎會影響電氣性能)雙面板兩面的導線應互相垂直、斜交或者彎曲走線,盡量避免平行走線,減小寄生耦合等。一、 通常一個電子系統中有各種不同的地線,如數字地、邏輯地、系統地、機殼地等,地線的設計原則如下:1、 正確的單點和多點接地在低頻電路中,信號的工作頻率小于1MHZ,它的布線和器件間的電感影響較小,而接地電路形成的環流對干擾影響較大,因而應采用一點接地。當信號工作頻率大于10MHZ 時,如果采用一點接地,其地線的長度不應超過波長的1/20,否則應采用多點接地法。2、 數字地與模擬地分開若線路板上既有邏輯電路又有線性電路,應盡量使它們分開。一般數字電路的抗干擾能力比較強,例如TTL 電路的噪聲容限為0.4~0.6V,CMOS 電路的噪聲容限為電源電壓的0.3~0.45 倍,而模擬電路只要有很小的噪聲就足以使其工作不正常,所以這兩類電路應該分開布局布線。3、 接地線應盡量加粗若接地線用很細的線條,則接地電位會隨電流的變化而變化,使抗噪性能降低。因此應將地線加粗,使它能通過三倍于印制板上的允許電流。如有可能,接地線應在2~3mm 以上。4、 接地線構成閉環路只由數字電路組成的印制板,其接地電路布成環路大多能提高抗噪聲能力。因為環形地線可以減小接地電阻,從而減小接地電位差。二、 配置退藕電容PCB 設計的常規做法之一是在印刷板的各個關鍵部位配置適當的退藕電容,退藕電容的一般配置原則是:?電電源的輸入端跨½10~100uf的的電解電容器,如果印制電路板的位置允許,采Ó100uf以以上的電解電容器抗干擾效果會更好¡���?原原則上每個集成電路芯片都應布置一¸0.01uf~`0.1uf的的瓷片電容,如遇印制板空隙不夠,可Ã4~8個個芯片布置一¸1~10uf的的鉭電容(最好不用電解電容,電解電容是兩層薄膜卷起來的,這種卷起來的結構在高頻時表現為電感,最好使用鉭電容或聚碳酸醞電容)。���?對對于抗噪能力弱、關斷時電源變化大的器件,ÈRA、¡ROM存存儲器件,應在芯片的電源線和地線之間直接接入退藕電容¡���?電電容引線不能太長,尤其是高頻旁路電容不能有引線¡三¡過過孔設¼在高ËPCB設設計中,看似簡單的過孔也往往會給電路的設計帶來很大的負面效應,為了減小過孔的寄生效應帶來的不利影響,在設計中可以盡量做到£���?從從成本和信號質量兩方面來考慮,選擇合理尺寸的過孔大小。例如¶6- 10層層的內存模¿PCB設設計來說,選Ó10/20mi((鉆¿焊焊盤)的過孔較好,對于一些高密度的小尺寸的板子,也可以嘗試使Ó8/18Mil的的過孔。在目前技術條件下,很難使用更小尺寸的過孔了(當孔的深度超過鉆孔直徑µ6倍倍時,就無法保證孔壁能均勻鍍銅);對于電源或地線的過孔則可以考慮使用較大尺寸,以減小阻抗¡���?使使用較薄µPCB板板有利于減小過孔的兩種寄生參數¡���? PCB板板上的信號走線盡量不換層,即盡量不要使用不必要的過孔¡���?電電源和地的管腳要就近打過孔,過孔和管腳之間的引線越短越好¡���?在在信號換層的過孔附近放置一些接地的過孔,以便為信號提供最近的回路。甚至可以ÔPCB板板上大量放置一些多余的接地過孔¡四¡降降低噪聲與電磁干擾的一些經Ñ?能能用低速芯片就不用高速的,高速芯片用在關鍵地方¡?可可用串一個電阻的方法,降低控制電路上下沿跳變速率¡?盡盡量為繼電器等提供某種形式的阻尼,ÈRC設設置電流阻尼¡?使使用滿足系統要求的最低頻率時鐘¡?時時鐘應盡量靠近到用該時鐘的器件,石英晶體振蕩器的外殼要接地¡?用用地線將時鐘區圈起來,時鐘線盡量短¡?石石英晶體下面以及對噪聲敏感的器件下面不要走線¡?時時鐘、總線、片選信號要遠ÀI/O線線和接插件¡?時時鐘線垂直ÓI/O線線比平行ÓI/O線線干擾小¡? I/O驅驅動電路盡量靠½PCB板板邊,讓其盡快離¿PC。。對進ÈPCB的的信號要加濾波,從高噪聲區來的信號也要加濾波,同時用串終端電阻的辦法,減小信號反射¡? MCU無無用端要接高,或接地,或定義成輸出端,集成電路上該接電源、地的端都要接,不要懸空¡?閑閑置不用的門電路輸入端不要懸空,閑置不用的運放正輸入端接地,負輸入端接輸出端¡?印印制板盡量使Ó45折折線而不Ó90折折線布線,以減小高頻信號對外的發射與耦合¡?印印制板按頻率和電流開關特性分區,噪聲元件與非噪聲元件呀距離再遠一些¡?單單面板和雙面板用單點接電源和單點接地、電源線、地線盡量粗¡?模模擬電壓輸入線、參考電壓端要盡量遠離數字電路信號線,特別是時鐘¡?對¶A/D類類器件,數字部分與模擬部分不要交叉¡?元元件引腳盡量短,去藕電容引腳盡量短¡?關關鍵的線要盡量粗,并在兩邊加上保護地,高速線要短要直¡?對對噪聲敏感的線不要與大電流,高速開關線并行¡?弱弱信號電路,低頻電路周圍不要形成電流環路¡?任任何信號都不要形成環路,如不可避免,讓環路區盡量小¡?每每個集成電路有一個去藕電容。每個電解電容邊上都要加一個小的高頻旁路電容¡?用用大容量的鉭電容或聚酷電容而不用電解電容做電路充放電儲能電容,使用管狀電容時,外殼要接地¡?對對干擾十分敏感的信號線要設置包地,可以有效地抑制串擾¡?信信號在印刷板上傳輸,其延遲時間不應大于所有器件的標稱延遲時間¡環境效應原Ô要注意所應用的環境,例如在一個振動或者其他容易使板子變形的環境中采用過細的銅膜導線很容易起皮拉斷等¡安全工作原Ô要保證安全工作,例如要保證兩線最小間距要承受所加電壓峰值,高壓線應圓滑,不得有尖銳的倒角,否則容易造成板路擊穿等。組裝方便、規范原則走線設計要考慮組裝是否方便,例如印制板上有大面積地線和電源線區時(面積超¹500平平方毫米),應局部開窗口以方便腐蝕等。此外還要考慮組裝規范設計,例如元件的焊接點用焊盤來表示,這些焊盤(包括過孔)均會自動不上阻焊油,但是如用填充塊當表貼焊盤或用線段當金手指插頭,而又不做特別處理,(在阻焊層畫出無阻焊油的區域),阻焊油將掩蓋這些焊盤和金手指,容易造成誤解性錯誤£SMD器器件的引腳與大面積覆銅連接時,要進行熱隔離處理,一般是做一¸Track到到銅箔,以防止受熱不均造成的應力集Ö而導致虛焊£PCB上上如果有¦12或或方Ð12mm以以上的過孔時,必須做一個孔蓋,以防止焊錫流出等。經濟原則遵循該原則要求設計者要對加工,組裝的工藝有足夠的認識和了解,例È5mil的的線做腐蝕要±8mil難難,所以價格要高,過孔越小越貴等熱效應原則在印制板設計時可考慮用以下幾種方法:均勻分布熱負載、給零件裝散熱器,局部或全局強迫風冷。從有利于散熱的角度出發,印制板最好是直立安裝,板與板的距離一般不應小Ó2c,,而且器件在印制板上的排列方式應遵循一定的規則£同一印制板上的器件應盡可能按其發熱量大小及散熱程度分區排列,發熱量小或耐熱性差的器件(如小信號晶體管、小規模集³電路、電解電容等)放在冷卻氣流的最上(入口處),發熱量大或耐熱性好的器件(如功率晶體管、大規模集成電路等)放在冷卻Æ流最下。在水平方向上,大功率器件盡量靠近印刷板的邊沿布置,以便縮短傳熱路徑;在垂直方向上,大功率器件盡量靠近印刷板上方布置£以便減少這些器件在工作時對其他器件溫度的影響。對溫度比較敏感的器件最好安置在溫度最低的區域(如設備的µ部),千萬不要將它放在發熱器件的正上方,多個器件最好是在水平面上交錯布局¡設備內印制板的散熱主要依靠空氣流動,所以在設計時要研究空氣流動的路徑,合理配置器件或印制電路板。采用合理的器件排列方式,可以有效地降低印制電路的溫升。此外通過降額使用,做等溫處理等方法也是熱設計中經常使用的手段¡
標簽:
PCB
布線原則
上傳時間:
2013-11-24
上傳用戶:氣溫達上千萬的
-
PCB 布線原則連線精簡原則連線要精簡,盡可能短,盡量少拐彎,力求線條簡單明了,特別是在高頻回路中,當然為了達到阻抗匹配而需要進行特殊延長的線就例外了,例如蛇行走線等。安全載流原則銅線的寬度應以自己所能承載的電流為基礎進行設計,銅線的載流能力取決于以下因素:線寬、線厚(銅鉑厚度)、允許溫升等,下表給出了銅導線的寬度和導線面積以及導電電流的關系(軍品標準),可以根據這個基本的關系對導線寬度進行適當的考慮。印制導線最大允許工作電流(導線厚50um,允許溫升10℃)導線寬度(Mil) 導線電流(A)
其中:K 為修正系數,一般覆銅線在內層時取0.024,在外層時取0.048;T 為最大溫升,單位為℃;A 為覆銅線的截面積,單位為mil(不是mm,注意);I 為允許的最大電流,單位是A。電磁抗干擾原則電磁抗干擾原則涉及的知識點比較多,例如銅膜線的拐彎處應為圓角或斜角(因為高頻時直角或者尖角的拐彎會影響電氣性能)雙面板兩面的導線應互相垂直、斜交或者彎曲走線,盡量避免平行走線,減小寄生耦合等。一、 通常一個電子系統中有各種不同的地線,如數字地、邏輯地、系統地、機殼地等,地線的設計原則如下:1、 正確的單點和多點接地在低頻電路中,信號的工作頻率小于1MHZ,它的布線和器件間的電感影響較小,而接地電路形成的環流對干擾影響較大,因而應采用一點接地。當信號工作頻率大于10MHZ 時,如果采用一點接地,其地線的長度不應超過波長的1/20,否則應采用多點接地法。2、 數字地與模擬地分開若線路板上既有邏輯電路又有線性電路,應盡量使它們分開。一般數字電路的抗干擾能力比較強,例如TTL 電路的噪聲容限為0.4~0.6V,CMOS 電路的噪聲容限為電源電壓的0.3~0.45 倍,而模擬電路只要有很小的噪聲就足以使其工作不正常,所以這兩類電路應該分開布局布線。3、 接地線應盡量加粗若接地線用很細的線條,則接地電位會隨電流的變化而變化,使抗噪性能降低。因此應將地線加粗,使它能通過三倍于印制板上的允許電流。如有可能,接地線應在2~3mm 以上。4、 接地線構成閉環路只由數字電路組成的印制板,其接地電路布成環路大多能提高抗噪聲能力。因為環形地線可以減小接地電阻,從而減小接地電位差。二、 配置退藕電容PCB 設計的常規做法之一是在印刷板的各個關鍵部位配置適當的退藕電容,退藕電容的一般配置原則是:?電電源的輸入端跨½10~100uf的的電解電容器,如果印制電路板的位置允許,采Ó100uf以以上的電解電容器抗干擾效果會更好¡���?原原則上每個集成電路芯片都應布置一¸0.01uf~`0.1uf的的瓷片電容,如遇印制板空隙不夠,可Ã4~8個個芯片布置一¸1~10uf的的鉭電容(最好不用電解電容,電解電容是兩層薄膜卷起來的,這種卷起來的結構在高頻時表現為電感,最好使用鉭電容或聚碳酸醞電容)。���?對對于抗噪能力弱、關斷時電源變化大的器件,ÈRA、¡ROM存存儲器件,應在芯片的電源線和地線之間直接接入退藕電容¡���?電電容引線不能太長,尤其是高頻旁路電容不能有引線¡三¡過過孔設¼在高ËPCB設設計中,看似簡單的過孔也往往會給電路的設計帶來很大的負面效應,為了減小過孔的寄生效應帶來的不利影響,在設計中可以盡量做到£���?從從成本和信號質量兩方面來考慮,選擇合理尺寸的過孔大小。例如¶6- 10層層的內存模¿PCB設設計來說,選Ó10/20mi((鉆¿焊焊盤)的過孔較好,對于一些高密度的小尺寸的板子,也可以嘗試使Ó8/18Mil的的過孔。在目前技術條件下,很難使用更小尺寸的過孔了(當孔的深度超過鉆孔直徑µ6倍倍時,就無法保證孔壁能均勻鍍銅);對于電源或地線的過孔則可以考慮使用較大尺寸,以減小阻抗¡���?使使用較薄µPCB板板有利于減小過孔的兩種寄生參數¡���? PCB板板上的信號走線盡量不換層,即盡量不要使用不必要的過孔¡���?電電源和地的管腳要就近打過孔,過孔和管腳之間的引線越短越好¡���?在在信號換層的過孔附近放置一些接地的過孔,以便為信號提供最近的回路。甚至可以ÔPCB板板上大量放置一些多余的接地過孔¡四¡降降低噪聲與電磁干擾的一些經Ñ?能能用低速芯片就不用高速的,高速芯片用在關鍵地方¡?可可用串一個電阻的方法,降低控制電路上下沿跳變速率¡?盡盡量為繼電器等提供某種形式的阻尼,ÈRC設設置電流阻尼¡?使使用滿足系統要求的最低頻率時鐘¡?時時鐘應盡量靠近到用該時鐘的器件,石英晶體振蕩器的外殼要接地¡?用用地線將時鐘區圈起來,時鐘線盡量短¡?石石英晶體下面以及對噪聲敏感的器件下面不要走線¡?時時鐘、總線、片選信號要遠ÀI/O線線和接插件¡?時時鐘線垂直ÓI/O線線比平行ÓI/O線線干擾小¡? I/O驅驅動電路盡量靠½PCB板板邊,讓其盡快離¿PC。。對進ÈPCB的的信號要加濾波,從高噪聲區來的信號也要加濾波,同時用串終端電阻的辦法,減小信號反射¡? MCU無無用端要接高,或接地,或定義成輸出端,集成電路上該接電源、地的端都要接,不要懸空¡?閑閑置不用的門電路輸入端不要懸空,閑置不用的運放正輸入端接地,負輸入端接輸出端¡?印印制板盡量使Ó45折折線而不Ó90折折線布線,以減小高頻信號對外的發射與耦合¡?印印制板按頻率和電流開關特性分區,噪聲元件與非噪聲元件呀距離再遠一些¡?單單面板和雙面板用單點接電源和單點接地、電源線、地線盡量粗¡?模模擬電壓輸入線、參考電壓端要盡量遠離數字電路信號線,特別是時鐘¡?對¶A/D類類器件,數字部分與模擬部分不要交叉¡?元元件引腳盡量短,去藕電容引腳盡量短¡?關關鍵的線要盡量粗,并在兩邊加上保護地,高速線要短要直¡?對對噪聲敏感的線不要與大電流,高速開關線并行¡?弱弱信號電路,低頻電路周圍不要形成電流環路¡?任任何信號都不要形成環路,如不可避免,讓環路區盡量小¡?每每個集成電路有一個去藕電容。每個電解電容邊上都要加一個小的高頻旁路電容¡?用用大容量的鉭電容或聚酷電容而不用電解電容做電路充放電儲能電容,使用管狀電容時,外殼要接地¡?對對干擾十分敏感的信號線要設置包地,可以有效地抑制串擾¡?信信號在印刷板上傳輸,其延遲時間不應大于所有器件的標稱延遲時間¡環境效應原Ô要注意所應用的環境,例如在一個振動或者其他容易使板子變形的環境中采用過細的銅膜導線很容易起皮拉斷等¡安全工作原Ô要保證安全工作,例如要保證兩線最小間距要承受所加電壓峰值,高壓線應圓滑,不得有尖銳的倒角,否則容易造成板路擊穿等。組裝方便、規范原則走線設計要考慮組裝是否方便,例如印制板上有大面積地線和電源線區時(面積超¹500平平方毫米),應局部開窗口以方便腐蝕等。此外還要考慮組裝規范設計,例如元件的焊接點用焊盤來表示,這些焊盤(包括過孔)均會自動不上阻焊油,但是如用填充塊當表貼焊盤或用線段當金手指插頭,而又不做特別處理,(在阻焊層畫出無阻焊油的區域),阻焊油將掩蓋這些焊盤和金手指,容易造成誤解性錯誤£SMD器器件的引腳與大面積覆銅連接時,要進行熱隔離處理,一般是做一¸Track到到銅箔,以防止受熱不均造成的應力集Ö而導致虛焊£PCB上上如果有¦12或或方Ð12mm以以上的過孔時,必須做一個孔蓋,以防止焊錫流出等。經濟原則遵循該原則要求設計者要對加工,組裝的工藝有足夠的認識和了解,例È5mil的的線做腐蝕要±8mil難難,所以價格要高,過孔越小越貴等熱效應原則在印制板設計時可考慮用以下幾種方法:均勻分布熱負載、給零件裝散熱器,局部或全局強迫風冷。從有利于散熱的角度出發,印制板最好是直立安裝,板與板的距離一般不應小Ó2c,,而且器件在印制板上的排列方式應遵循一定的規則£同一印制板上的器件應盡可能按其發熱量大小及散熱程度分區排列,發熱量小或耐熱性差的器件(如小信號晶體管、小規模集³電路、電解電容等)放在冷卻氣流的最上(入口處),發熱量大或耐熱性好的器件(如功率晶體管、大規模集成電路等)放在冷卻Æ流最下。在水平方向上,大功率器件盡量靠近印刷板的邊沿布置,以便縮短傳熱路徑;在垂直方向上,大功率器件盡量靠近印刷板上方布置£以便減少這些器件在工作時對其他器件溫度的影響。對溫度比較敏感的器件最好安置在溫度最低的區域(如設備的µ部),千萬不要將它放在發熱器件的正上方,多個器件最好是在水平面上交錯布局¡設備內印制板的散熱主要依靠空氣流動,所以在設計時要研究空氣流動的路徑,合理配置器件或印制電路板。采用合理的器件排列方式,可以有效地降低印制電路的溫升。此外通過降額使用,做等溫處理等方法也是熱設計中經常使用的手段¡
標簽:
PCB
布線原則
上傳時間:
2015-01-02
上傳用戶:15070202241
-
經典c程序100例==1--10 【程序1】 題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? 1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去 掉不滿足條件的排列。 2.程序源代碼: main() { int i,j,k printf("\n") for(i=1 i<5 i++) /*以下為三重循環*/ for(j=1 j<5 j++) for (k=1 k<5 k++) { if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k) }
標簽:
100
程序
10
數字
上傳時間:
2014-01-07
上傳用戶:lizhizheng88
-
算法介紹
矩陣求逆在程序中很常見,主要應用于求Billboard矩陣。按照定義的計算方法乘法運算,嚴重影響了性能。在需要大量Billboard矩陣運算時,矩陣求逆的優化能極大提高性能。這里要介紹的矩陣求逆算法稱為全選主元高斯-約旦法。
高斯-約旦法(全選主元)求逆的步驟如下:
首先,對于 k 從 0 到 n - 1 作如下幾步:
從第 k 行、第 k 列開始的右下角子陣中選取絕對值最大的元素,并記住次元素所在的行號和列號,在通過行交換和列交換將它交換到主元素位置上。這一步稱為全選主元。
m(k, k) = 1 / m(k, k)
m(k, j) = m(k, j) * m(k, k),j = 0, 1, ..., n-1;j != k
m(i, j) = m(i, j) - m(i, k) * m(k, j),i, j = 0, 1, ..., n-1;i, j != k
m(i, k) = -m(i, k) * m(k, k),i = 0, 1, ..., n-1;i != k
最后,根據在全選主元過程中所記錄的行、列交換的信息進行恢復,恢復的原則如下:在全選主元過程中,先交換的行(列)后進行恢復;原來的行(列)交換用列(行)交換來恢復。
標簽:
算法
矩陣求逆
程序
上傳時間:
2015-04-09
上傳用戶:wang5829
-
給定n 個整數a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有
0 = å
=
j
k i
k a ,則稱序列區間i i j a , a , , a +1 為一個零和區間,相應的區間長度為j-i+1。
標簽:
61516
an
整數
序列
上傳時間:
2015-07-23
上傳用戶:zhangzhenyu
-
給定n 個整數a ,a , ,an 1 2 組成的序列, a n i | |£ ,1 £ i £ n。如果對于i £ j ,有
0 = å
=
j
k i
k a ,則稱序列區間i i j a , a , , a +1 為一個零和區間,相應的區間長度為j-i+1。
標簽:
61516
an
整數
序列
上傳時間:
2013-12-21
上傳用戶:偷心的海盜
-
經典C語言程序設計100例1-10
如【程序1】
題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少?
1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去
掉不滿足條件的排列。
2.程序源代碼:
main()
{
int i,j,k
printf("\n")
for(i=1 i<5 i++) /*以下為三重循環*/
for(j=1 j<5 j++)
for (k=1 k<5 k++)
{
if (i!=k&&i!=j&&j!=k) /*確保i、j、k三位互不相同*/
printf("%d,%d,%d\n",i,j,k)
}
}
標簽:
100
10
C語言
程序設計
上傳時間:
2013-12-14
上傳用戶:hfmm633
-
Floyd-Warshall算法描述
1)適用范圍:
a)APSP(All Pairs Shortest Paths)
b)稠密圖效果最佳
c)邊權可正可負
2)算法描述:
a)初始化:dis[u,v]=w[u,v]
b)For k:=1 to n
For i:=1 to n
For j:=1 to n
If dis[i,j]>dis[i,k]+dis[k,j] Then
Dis[I,j]:=dis[I,k]+dis[k,j]
c)算法結束:dis即為所有點對的最短路徑矩陣
3)算法小結:此算法簡單有效,由于三重循環結構緊湊,對于稠密圖,效率要高于執行|V|次Dijkstra算法。時間復雜度O(n^3)。
考慮下列變形:如(I,j)∈E則dis[I,j]初始為1,else初始為0,這樣的Floyd算法最后的最短路徑矩陣即成為一個判斷I,j是否有通路的矩陣。更簡單的,我們可以把dis設成boolean類型,則每次可以用“dis[I,j]:=dis[I,j]or(dis[I,k]and dis[k,j])”來代替算法描述中的藍色部分,可以更直觀地得到I,j的連通情況。
標簽:
Floyd-Warshall
Shortest
Pairs
Paths
上傳時間:
2013-12-01
上傳用戶:dyctj
-
//Euler 函數前n項和
/*
phi(n) 為n的Euler原函數
if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i
else phi(n)=phi(n/p)*(i-1)
對于約數:divnum
如果i|pr[j] 那么 divnum[i*pr[j]]=divsum[i]/(e[i]+1)*(e[i]+2) //最小素因子次數加1
否則 divnum[i*pr[j]]=divnum[i]*divnum[pr[j]] //滿足積性函數條件
對于素因子的冪次 e[i]
如果i|pr[j] e[i*pr[j]]=e[i]+1 //最小素因子次數加1
否則 e[i*pr[j]]=1 //pr[j]為1次
對于本題:
1. 篩素數的時候首先會判斷i是否是素數。
根據定義,當 x 是素數時 phi[x] = x-1
因此這里我們可以直接寫上 phi[i] = i-1
2. 接著我們會看prime[j]是否是i的約數
如果是,那么根據上述推導,我們有:phi[ i * prime[j] ] = phi[i] * prime[j]
否則
phi[ i * prime[j] ] = phi[i] * (prime[j]-1)
(其實這里prime[j]-1就是phi[prime[j]],利用了歐拉函數的積性)
經過以上改良,在篩完素數后,我們就計算出了phi[]的所有值。
我們求出phi[]的前綴和
*/
標簽:
phi
Euler
else
函數
上傳時間:
2016-12-31
上傳用戶:gyq