導航:首頁 > 編程語言 > java編輯距離

java編輯距離

發布時間:2022-10-02 08:22:28

Ⅰ uc瀏覽器

最新版本功能介紹
UC瀏覽器魅族專版 v7.5
UC瀏覽器魅族M9專版於今日正式發布。此次發布的M9專版UC瀏覽器為UC瀏覽器7.5版for Android平台的基礎上針對M9的解析度專門進行適配,能夠高清、完美的支持魅族M9,為煤油們帶來最快、最完美的上網體驗。[2] UC瀏覽器魅族M9專版特性包括 高清、完美適配魅族M9界面;UC瀏覽器魅族專版(2張) 流量最省、速度最快、性能穩定; 原汁原味呈現wap2.0網頁,彩版/3G版看得更爽; 提供「縮放模式(壓縮)」,在完美呈現電腦般瀏覽體驗同時,做到流量更省; 更多細節設置,貼心、方便:自動鎖屏、多窗口切換、高速下載。 UC瀏覽器功能 UC瀏覽器能在市面上絕大部手機上安裝、運行,是基於客 uc瀏覽器
戶端/伺服器端架構產品,由專門客戶端負責頁面所需數據處理、壓縮工作,客戶端負責處理過數據解析,因此,在國內網路環境下,UC瀏覽器頁面載入速度要比大部分同類軟體要快,在數據壓縮技術支持下,還能節省使用流量 UC瀏覽器是一款免費網頁瀏覽軟體,主要應用在以手機為主的各種移動終端,能幫助用戶快速訪問互聯網,隨時隨地進行無線沖浪:編輯個人博客,登錄網路社區,收發電子郵件,訂閱熱點RSS…… 提供在線功能; 提供友度、優酷、土豆等海量點播視頻在線播放功能; 提供在線電台、mp3音樂播放功能; 提供不同網路帶寬下的多個版本(流暢、清晰、Q屏)。 UC桌面是一款免費的UCWEB6瀏覽器功能擴展插件,支持目前各類主流手機網路接入方式,讓您手機功能更人性化。 UC桌面主要提供以下增強功能: 在手機待機界面上動態顯示當天天氣情況和新聞熱點; 來去電信息顯示; 未接電話提醒; 自動IP撥號。UC瀏覽器PPC平台7.2正式版更新(2010年6月18日) WindowsMobile&WindowsCE平台UC瀏覽器7.2正式版主要適用於多普達、三星等廠商的WindowsMobile機型,如多普達S900等,以及部分WindowsCE機型,如魅族M8等。 以下為本次發布的主要內容: 【功能優化】 夜間模式無圖框優化 歷史記錄支持後台打開 WAP出錯頁面展現優化 首頁網址|搜索右鍵優化 【新增功能】 Flash10功能支持,手機偷菜,PC感受(僅PPC05/03支持) Post下載支持,更多選擇,更多資源 網盤上傳支持,網盤文件,靈活分享 【修改BUG】 無法下載m3u文件 下載分段設置過大導致無法下載 Chunked文件無法下載 下載大文件進度條顯示異常 手機淘寶網確認購買商品後失敗
編輯本段版本
【UC瀏覽器】全新UC瀏覽器7.6版更新上線(2011.01.30) 【UC瀏覽器】Symbian平台7.3正式版(2010.7.14) 【UC瀏覽器】WindowsMobile平台7.1正式版發布(2009.6.1) 【UC瀏覽器】Blackberry 平台7.1正式版發布啦(2009.5.19) 【UC瀏覽器】V3平台7.2beta2支持社區Flash游戲版本發布(2010.5.5) 【UC瀏覽器】7.1版登錄App Store 可訪問WAP網站 【UC瀏覽器】java 7.2正式版發布(2010.5.19) 【UC播放器】Symbian S60 V3/V5平台2.2beta2版本發布(2010.5.6) 【UC播放器】Symbian S60 V2平台2.2beta1版本發布(2010.2.2) 【UC瀏覽器】Android平台7.1beta版發布啦~(2009.5.12) 【UC瀏覽器】Android平台7.0 OPHONE專版公測版推出(2010.2.8) 【UC瀏覽器】MTK平台UC瀏覽器發布(2010.5.5) 【UC桌面】Symbian平台1.7patch2版發布啦~(2010.4.30) 【UC桌面】WindowsMobile PPC平台1.5正式版發布(2010.2.2) 【UC迅雷】Symbian S60 V2平台V1.2beta版本發布(2010.7.1) 【UC迅雷】Symbian S60 V3/V5平台V1.2beta版本發布啦~(2010.7.1)
編輯本段研發公司
2010年2月3日,北京)中國領先的移動互聯網應用服務與技術提供商UC(優視科技)日前正式發布全新UC 7.1版手機瀏覽器。作為UC 在2010年的開年之作,UC7.1不僅為廣大用戶提供了針對虎年春節的軟體主題,更在秉承其「速度」、「兼容」、「穩定」三大優勢的同時,為用戶帶來更多從外至內的手機上網新體驗。UC7.1的升級功能包括:全新的節日桌面與可選主題,全新的照片即拍即傳、書簽同步功能,更為完善的論壇瀏覽模式以及更加豐富的個人中心應用,讓手機上網好看又好玩。 外展新顏:全新「虎年春節版」界面 在中國傳統的新春佳節到來之際,UC特別設計了虎年春節的喜慶啟動界面和「紅運當頭」節慶主題,並提供多款新年手機桌面供用戶下載。讓手機上網瀏覽也變得「年」味十足。 (紅運當頭「節慶主題」, 以上為在Windows Mobile平台上的界面效果) 內秀真功:論壇模式、即拍即傳、書簽同步一個都不能少 ·更為完善的論壇模式 UC7.1延續了UC7.0的論壇模式功能,並將這一UC獨創的功能進一步完善。UC7.1的論壇模式支持包括Discuz!6.0/6.1/7.0、Phpwind 7.x 等15類論壇類型,涵蓋目前網路中80%以上論壇。正愁買票回家難的你,不如試試更多的買票方式:登陸熱門論壇,選擇論壇模式,全天候在線關注任何車票轉讓信息,絕不放過任何一張帶你回家的車票。 普通模式下,第三屏仍無法讀取論壇內帖子內容(Symbian平台) 進入論壇模式,第一屏已經可以看到論壇內帖子內容(Symbian平台) 論壇發燒友也不必擔心不守在電腦前的春節假期會讓你人氣大跌,UC7,1的論壇模式泡壇子,讓你不在電腦前也能照搶沙發。 ·即拍即傳,一時間分享你的照片 UC7.1結合手機可即時拍照的特點?開發出 「即拍即傳」的特色功能。這一最具震撼力的功能大大簡化了以前手機用戶上傳圖片的繁瑣過程,極大地降低了用戶使用門檻,並進一步填平了Web端社區與移動終端的「鴻溝」。 (以上為在Windows Mobile平台上的操作) 用戶在附件上傳的選項下選擇「拍照上傳」,就可以即時拍攝一張照片添加入上傳的附件內容。不管是過年家人、朋友聚會、美味年夜飯、或者過年旅遊途中見聞……生活中的新人新事,盡可通過手機終端輕松捕捉,並與親朋好友一起來分享屬於你的特別新年! ·更豐富用戶中心 在娛樂應用上,UC7.1繼續保持全面整合的個人用戶中心,並且聚合更多的應用與功能,滿足用戶「新奇好玩、即時聊天、個性應用」的全面需求:
在舟車勞頓的往返路途中,豐富的「小游戲」可以幫你打發無聊,或者用MSN、QQ、飛信來和家人聊天; 即使是在吃年夜飯時,「手機農場」也能幫助及時收菜; 就算沒時間關注時事,「手機微博」照樣讓你隨時不錯過最熱門的討論話題。 ·更強大的書簽同步功能 書簽網上存,習慣最順手。UC7.1的書簽同步增加功能為廣大用戶進行瀏覽的個性化管理提供了穩健的基礎。用戶可將書簽上傳到UC的用戶中心後台。如此一來,用戶可以在任何一台手機的UC瀏覽器里還原書簽,隨時隨地訪問自己的收藏網站和網頁。 目前,面向Windows Mobile,Windows CE,JAVA,Blackberry和Symbian平台的UC7.1版已經發布,Android平台的UC7.1版也將在近期推出。作為全球8000萬用戶的「移動生活伴侶」,UC把用戶需求當作自己不斷提升技術的不懈動力,並始終致力於通過更快捷、更全面的產品創新,給用戶帶來實質性的體驗升級。通過溫馨的界面設計,和貼合移動生活的升級功能,全新的UC7.1瀏覽器將進一步讓用戶獲得更為卓越的手機上網體驗。
UC:人因夢想而偉大
UC(優視科技)是中國領先的移動互聯網軟體技術及應用服務提供商。UC以技術為本,致力於為用戶提供最便捷、最經濟的移動上網產品和應用服務體系,滿足用戶對移動互聯網生活應用的需求,最終實現用戶對移動互聯網的全形態應用。自2004年創立以來,UC一直專注於推動中國移動互聯網事業,始終以卓越的市場前瞻力和技術創新力推動著中國移動互聯網領域的發展進程。 目前,優視科技公司員工超過380人,其中研發技術人員的比例接近70%,是一家注重技術積累及發展的技術型專業公司。 同時,公司已經在北美和亞洲其他地區架設了獨立伺服器,服務於全球30個以上的國家和地區。截至2009年10月,全球范圍內取得了下載量超過2億次,用戶8000萬、活躍用戶近4000萬的成績,藉此UC業已成為移動互聯網應用軟體領域的代表企業。
UC公司產品
UC(優視科技)的核心產品是UC瀏覽器,通過安裝使用UC瀏覽器,手機用戶不僅能快捷訪問WAP站點,更能暢游各類WWW站點,優秀的瀏覽體驗讓手機上網成為一種享受。 目前,UC瀏覽器已發布到7.1版本,功能日臻完善, UC瀏覽器已在全球范圍內取得了超過2億次下載量,月用戶頁面瀏覽量超過150億。藉此,公司業已成為手機瀏覽器軟體領域的事實領導者。
UC未來目標
UC(優視科技)的企業理念是幫助手機用戶方便快捷上網,打造移動生活平台,成為用戶的「移動生活伴侶」;優視科技希望能夠在5年內成為中國移動互聯網領域最大的技術服務公司。作為植根於中國市場的民族軟體企業,讓中國的每一部手機都使用UC瀏覽器是我們的理想。我們期待著,在各級政府部門的關心、指導、幫助下,能為國家的信息化建設貢獻更大的力量。
UC將在今年開拓海外市場
俞永福認為,UCWEB如果想成為第四個王朝的領袖企業,僅僅佔領中國市場顯然還很不足,而今年正是發力國際市場的最好時機。其實在這方面,挪威瀏覽器廠商Opera則早已進行布局,據其最新發布的數據顯示,截至2009年11月,Opera Mini在全球共擁有 4170萬用戶,比上月增長5.3%,與去年同期相比增長超過154%。 俞永福表示,中國的互聯網公司包含搜索、門戶、社交網站等一直都是在對國外互聯網公司進行復制,而發展周期也都晚半年至一年時間,但是中國在移動互聯網將成為全世界的主導。UCWEB目前已經開發了英文和俄文兩個產品,在小范圍的測試過程中也看到了自身產品的競爭力,所以今年在國際化方面將有比較大的動作,很快將會正式宣布。 面對在中國市場僅發展了5年,現在就忙於開拓國際市場是否有些操之過急的質疑,俞永福表示,其實今年是最好的一個timing(時間點),現在中國的互聯網公司國際化走出去基本上都是和國際巨頭在進行巷戰,但是移動互聯網則不同,目前仍然存在快速佔領的機會,而UCWEB國際化的策略也是先佔領新興市場然後再逐漸包圍成熟市場,如果等到2011年以後再國際化,那可能就會面臨和現在互聯網公司國際化一樣的難題。 他同時給出了關於中國移動互聯網自己的預測,希望到明年的這個時刻可以來印證他的預測,他認為,2010年中國的手機上網用戶將會增加一個億,達到3.1-3.3億之間,而2011年將會成為手機網民井噴的一年,用戶增長量將為1.5億,屆時中國手機用戶將達到4.5億以上並且超過互聯網用戶。
UC將在海外上市
2006年,UCWEB獲得來自董事長雷軍等人的400萬元天使投資,2007年,聯創策源風險投資公司和晨星集團向UCWEB投資了1000萬美元。2009年5月,阿里巴巴集團也對UCWEB進行了戰略投資。 對於將來是否要繼續融資,俞永福表示,UCWEB現在一點也不缺錢,如果只是投錢我們肯定不接受,但是如果會有對公司未來發展有很大幫助的投資者,UCWEB也會歡迎他們入股。 談及是否已有上市計劃,俞永福認為,除了創始人,如果員工在一個創業公司已經待了三-五年,那麼是很難堅持下去的,UCWEB未來會選擇一個好的時間點進行上市,上市地點應該是在海外。 此前,據路透社報道稱,UCWEB計劃三年內實現海外上市,上市地點應該是在香港證券交易所或者納斯達克。 雖然目前還沒有明確的上市時間點,但他透露UCWEB目前是全員持股,大家是為了一個共同的目標去奮斗,「UCWEB目前有420多名員工,並且是全員持股,在員工總數達到800人之前都將維持這個全員持股的計劃,但是超過800人以後,就不好說了。」
編輯本段管理團隊
俞永福 Mr. Yu Yongfu 優視科技CEO俞永福演講UCWEB(優視動景)執行董事、首席執行官 2006年年底加入UCWEB公司,任執行董事,首席執行官,全面負責公司的整體運營。作為優秀的團隊帶頭人,UCWEB在過去的兩年 俞永福
時間里,在戰略規劃、企業管理、人才隊伍建設、市場經營等方面都取得長足進步。 俞永福先生獲得了「2008中國年度潛力創業人物」、「2008新媒體自主創新十大人物」等榮譽。 雷軍 Mr. Leijjun UCWEB董事長(前金山公司總裁兼前CEO) 籍貫:仙桃 畢業院校:武漢大學 出生年月: 1969年2月 個人名言:人因夢想而偉大。 中國著名管理人才、經濟學專家、反病毒專家
編輯本段榮譽
2009中國互聯網大會榮譽合作夥伴 UC瀏覽器摘得「2009最佳手機瀏覽器」獎項桂冠 中國互聯網力量之星 艾瑞新營銷獎 UC瀏覽器喜獲「優秀客戶體驗獎 雷軍
新媒體(移動)行業十強 2009中國手機新媒體領軍品牌 UC(優視科技)獲新媒體殊榮 《商務周刊》中國100快公司 2009EnfoNet 移動互聯網最佳應用服務提供商 「UC瀏覽器」正式入選「中國扶貧基金會指定手機上網捐贈平台」 UC瀏覽器獲得《程序員》&CSDN 「國產軟體創新獎」 UC瀏覽器入選2008中國最有商業價值移動互聯網應用十佳 07中國手機客戶端軟體TOP50強UCmail 新媒體(移動)行業十強 摩托羅拉最佳手機應用獎 UC瀏覽器喜獲金枝大獎 2008中國手機客戶端軟體TOP10
編輯本段系統設置
顯示設置: 1、瀏覽模式 :分適應模式和縮放模式,只針對Symbian平台、PPC/SP平台、JAVA平台提供了該設置。 2、字體大小 :可調整UC瀏覽器里頁面顯示的字體大小。 3、字體平滑 :字體展示效果,類似一種視覺的過渡;只有Symbian S60 V3版本上提供此設置。 4、文字分段 :僅針對WWW頁面有效,將大頁面以分頁方式進行輸出;如頁面內容是200K,您設置分段大小為50K,那麼該200K的頁面將分4頁來顯示;適當使用,可以節省一定的運行內存,可節省一定的訪問流量。 5、文本行距調整 :即調整頁面上行與行之間的距離。在Symbian平台、PPC/SP平台有提供。 6、圖片質量 :是WWW頁面上顯示圖片的質量、清晰度。是UC瀏覽器伺服器進行壓縮的一種效果。無圖即是不顯示任何圖片,其次微縮圖片相對最不清晰,全彩圖片相對最為清晰。圖片質量越低,越能節省一定的運行空間,也越能節省一定訪問流量。 7、GIF動畫顯示 :設置為關閉,或者選擇禁止gif動畫,頁面上動態的gif圖片就顯示為靜態了。禁止了gif動畫也能在一定程度上節省運行空間、以及節省一定的流量(JAVA平台不支持)。 8、背景顏色 :在網頁沒有定義背景的情況下,對網頁未定義背景的地方添加背景顏色。對於網頁本身已經有背景顏色的,會顯示網頁原背景。該設置僅Symbian平台的支持 9、輸入框匹配 :指在適應屏幕模式下,對網頁輸入框的寬度展示。該設置僅Symbian平台的支持 10、下劃線鏈接 :指對鏈接添加下劃線顯示,方便辨認鏈接,而當字體行距設置為1時,不顯示下劃線。該設置僅在Symbian平台支持進行調整;Java客戶端是默認不顯示下劃線,PPC/SP客戶端是默認顯示下劃線,且不支持進行調整。 11、滾動條設置 :在上下滾動頁面時,屏幕右邊隨頁面上下移動的即是滾動條。

Ⅱ 用java語言, 如何實現為圖片添加邊框素材,就是把圖片和邊框素材(圖片)結合


用FrontPage2002來做吧,你點點下面的連接:

具體是:
Web頁面可用預定義模板來創建,也可不採用模板而在空白頁上自己進行設計。創建新頁面的步驟如下:
在網頁視圖下,選擇「文件」菜單中的「新建」命令,再從其子菜單中選擇「網頁」命令,將彈出「新建」對話框,如圖所示。

若用戶要新建的網頁是框架,則從「框架網頁」選項卡中選擇某種框架樣式;否則,從「常規」選項卡中選擇一種所需樣式,然後單擊「確定」按鈕。若想建立一空白網頁,可在對話框的「常規」選項卡中選擇Normal Page項,或直接單擊常用工具欄的「新建網頁」按鈕。
建議逐一試用FrontPage提供的各種模板以便熟悉它們,日後你就可以自如地利用模板創建常規Web頁面,能夠節省許多時間。
1.在網頁中插入圖形
圖片往往比大量的文字講述更具吸引力和說服力,在web頁面中適當地添加圖片會使網頁豐富多彩,但過多地加入圖片將降低頁面的下載速度,特別是對通過數據機訪問web頁的用戶。大多數圖形都是採用壓縮格式,有的數據機不具有壓縮功能,這種數據機速度更慢。因此用戶在加入圖片時,應認真選擇和進行規劃。雖然圖形可使web頁更有趣味,但應適度使用(使用較少顏色,縮小高度和寬度或裁剪圖形、降低圖形的解析度,盡可能地減少圖形文件大小,如用壓縮格式的文件類型)。
Web頁面所使用的兩種圖片格式分別為GIF和JPEG,用戶可選擇「插入」菜單中的「圖片」命令,再從其子菜單中選擇「來自文件」命令,打開「圖片」對話框,「圖片」對話框提供了「掃描」、「使用您的web例覽器來選擇網頁或文件」、「剪貼畫」和「在您的計算機上選擇一個文件」四種途徑插入圖片。
對於一些非GIF和JPEC格式的圖片,FrontPage可以自動地將這些文件轉換成GIF或JPEG格式。

2.在網頁中插入水平線

水平線可以在網頁上清晰地劃分界限,而且對用戶網頁的布局起著重要的作用。添加一條水平線,可以通過「插入」菜單中選擇「水平線」命令添加。在默認狀態下水平線是灰色的,用戶可以像改變文本顏色一樣改變水平線的顏色。改變水平線的顏色有兩種方法(必須在不加主題的情況下):
(1)雙擊該水平線,將顯示「水平線屬性」對話框。在對話框的「顏色」項,選擇下拉列表,從中選擇合適的顏色,單擊「確定」按鈕。
(2)用滑鼠右鍵單擊這條水平線,從快捷菜單中選擇「水平線屬性」命令,再從對話框中選擇一個合適的顏色。
使用框架
--------------------------------------------------------------------------------

框架是把Web瀏覽器的視窗分成幾個部分,每個部分都是獨立的Web頁面,這樣便可同時顯示多個頁面。
可以很容易地用FrontPage創建一個多框架的web頁面。為了創建具有框架的Web頁面,可從「文件」菜單的「新建」子菜單中選擇「網頁」命令,彈出「新建」對話框,選擇「框架網頁」選項卡。
在左邊的列表中可選擇不同類型的框架模板,選定模板後,按「確定」按鈕即可創建一個具有框架的網頁。
在創建有框架的Web頁面時,應注意有些web瀏覽器不支持框架。雖然使用不能顯示框架的瀏覽器的用戶已很少,為確保這些用戶仍然能夠瀏覽到Web站點上的內容,可以填上要告訴那些低版本瀏覽器的使用者的話,例如請對方更換瀏覽器等。
在新建的框架的窗口中,單擊「設置初始頁」按鈕將會彈出「創建超鏈接」對話框,可以鏈接到一個指定頁面;單擊「新建網頁」按鈕將創建一個新頁面,然後在該頁面內對該頁進行編輯。在編輯頁面時,若感覺頁面被放在一個狹窄的框架中太擁擠,可選擇「框架」菜單中的「在新窗口中打開網頁」命令,這樣便打開一個新的滿屏窗口,可以自由地在頁面中增加內容。
利用FrontPage的框架頁面模板在Web頁面上引入了框架布局,我們還可以在此基礎上,根據需要進行進一步的設計。
1、增加新框架

要給框架頁面增加新框架,就是像拆分表格的單元格一樣,把一個框架分為兩個框架。 其操作如下:
(1)按住Ctrl鍵,將滑鼠放在框架邊框上,當滑鼠變為上下箭頭時,可把邊框拖到一個新位置,當松開滑鼠按鈕時,一個新的空白內容的框架就形成了。
(2)也可以通過命令來操作:首先單擊要拆分的框架內部,選「框架」菜單中的「拆分框架」命令,在彈出的「拆分框架」對話框中單擊「拆分成列」或「拆分成行」單選按鈕,單擊「確定」按鈕即可。

2.刪除框架

若框架頁面看起來太亂,可刪除某些框架。要刪除一個框架,可先單擊該框架選擇它,再選擇「框架」菜單中的「刪除框架」命令即可。

3.改變框架屬性

在設置好框架的整體布局後,我們還可以對每一框架的具體屬性進行設置,操作如下:
(1)單擊需設置屬性的框架,選擇「框架」菜單中的「框架屬性」,則彈出「框架屬性」對活框。

(2)在對話框的「名稱」文本框中可輸入框架名,這樣便於識別不同的框架;在「選項」區域中,若選中「在例覽器中可以調大小」復選框,則客戶在瀏覽站點時,可重新定義框架尺寸,通過在「顯示滾動條」下拉列表框中選擇不同的描述項,可設置讓滾動條是否出現。
(3)在「框架大小」區域中,可設置框架大小,可以定義一個絕對像素值或相對於瀏覽器窗口的百分比,若要用瀏覽器來設置相對於該頁面中框架的尺寸,可選「相對」;在「邊距」區域中,可設置內容頁面與框架邊框分隔的像素數值。
(4)要改變開始頁面,可以在「初始網頁」文本框中輸入一個新的頁面名字或URL。
(5)單擊「框架網頁」按鈕,則彈出「網頁屬性」對話框。
(6)在該對話框的「框架」選項卡中,在「框架間距」文本框中,可輸入以像素為單位的邊框寬度;若要使框架邊框消失,則不要選中「顯示邊框」復選框。
(7)單擊「確定」按鈕,關閉「網頁屬性」對話框,再單擊「確定」按鈕,關閉「框架屬件」對話框,完成框架屬性設置。
動態網頁

--------------------------------------------------------------------------------

DHTML是動態網頁的意思,它其實並不是一個標準的術語。事實上沒有一種技術叫作DHTML。DHTML是利用CSS(層疊樣式表),JavaScript,HTML等技術而建立的能與訪問者產生互動的網頁。比如在動態網頁里,當訪問者單擊了某一張圖片後,這張圖片會自動的移動,這就是DHTML效果。也就是說,當網頁下載完畢後,它無需再與伺服器連接就能產生變化了。FrontPage2000提供了一套容易製作動態網頁的方法,你可以建立起屬於自己特色的動態網頁。

1、使用DHTML的基本步驟

1).在頁面點選需要使用DHTML的對象,比如文本,圖片。對於文本需要拖曳滑鼠選定;

2).在DHTML工具欄,選擇通過開啟的下拉列表選擇一種事件,文本和圖片所具有的事件是不同的;接下來再應用下拉列表選擇一種效果;最後選擇該效果的的實現方法;

3).當你為對象使用了DHTML後,保存該頁面並預覽,你會發現你選定的對象按照你設置的DHTML的效果出現;

4).如果想刪除某一個對象的DHTML效果,先選定該對象,然後單擊DHTML工具欄上的刪除效果圖標即可。

2、DHTML的事件

在DHTML製作中,我們聽得最多的是「事件」這個術語。什麼是「事件」呢,顧名思義,就是發生的一件事情,比如你用手打開門,那麼這就是一個事件。換到網頁製作中,開門變成了單擊,也就是說,訪問者單擊了一個鏈接,那麼出現了事件的結果,門被打開了。

在FrontPage2000中,當我們打開DHTML效果工具欄後,點選文本或者圖片會產生不同事件。但它們的施用方法是一樣的,下面我們以文本舉例:

我們先在編輯器里輸入一段文本,比如:網頁陶吧,然後繼續下面的三個步驟:

選定一段需要產生DHTML效果的文本,這里是:網頁陶吧。從DHTML效果工具欄的開啟下拉列表選擇一個事件。這里對於文本我們只有「網頁載入」這個事件。「網頁載入」就是當網頁第一次裝入的時侯發生的事件,它不需要用戶利用滑鼠去觸發它,而只需要訪問者利用瀏覽器打開它的時侯就會產生預設的動態效果。

選擇好事件後,我們要在應用下拉列表裡選擇一個該事件的應用效果。在該列表下有七種可以採用的效果,我們選擇飛入。

對於應用效果會有不同的方法產生。比如當你選擇的應用效果是「飛入」的時侯,文本可以從底部飛入,可以從左邊飛入,也可以從右邊飛入,這些就是方法。在這個下拉列表裡並沒有註明這個術語。有的應用效果是沒有方法的,比如波動。我們這里選擇從底部飛入。

最後保存該頁面並預覽,你會發現網頁陶吧這個四個字在網頁第一次載入後從底部飛入。當然,你也可以嘗試其它DHTML效果。對於選定圖片,你會在DHTML效果工具欄的開啟下拉列表看到新的事件,單擊和滑鼠懸停,它們會有各自的應用效果和實現方法。你可以每一個嘗試一下,這樣你就能明白這些事件和應用效果和方法之間的關系。

3、DHTML的小技巧

DHTML兼容性

利用FrontPage2000製作的DHTML網頁只能被InternetExplorer4.0或以上版本完全正常瀏覽。對於圖片的DHTML效果,Netscape Communicator 4.0或以上版本也可以瀏覽。

禁止DHTML

如果想禁用DHTML效果,點選菜單工具/網頁選項,在打開的對話框里選擇兼容性標簽,取消動態HTML前的復選框里勾,這樣DHTM效果被禁用。

快速使用DHTML

一般情況,在你沒有選定某一個對象的情況下,你只需要把滑鼠移動到對象的左邊或者右邊單擊一下就可以使用DHTML效果了。

4、網頁過渡

網頁過渡是指當你進入或者離開一個網頁的時侯所產生的效果的這個過程。比如你從某一頁進入另一頁,你會發現當前頁慢慢向中間合攏,同時出現了另一個新的頁面,直到當前頁合攏消失而最後出現新的頁面。如果你想使用網頁過渡,可以按照以下步驟:

1).打開想使用過渡效果的頁面,或者新建立一個頁面。點選菜單格式/網頁過渡,打開網頁過渡對話框;

2).在事件下拉列表裡選擇一個事件,我們選擇進入網頁。大家要注意,當你為某頁和站點都設置了過渡效果時,網頁將比站點過渡效果優先;

3).在周期文本框里輸入持續的時間,然後在過渡效果列表框里點選一個效果,單擊確定。利用瀏覽器打開該頁面,因為我們選擇的網頁過渡是進入網頁,所以當你打開該頁時你就能看到過渡效果了。

利用DHTML效果的確是吸引訪問者的有力利器,但如果你不願意和復雜的代碼打交道,那麼FrontPage2000為你預設了許多DHTML的效果。你要做的僅僅是選定需要動態效果的對象,比如文字,圖片,然後利用「傻瓜」式的操作就可以讓你的網頁動起來。
Web頁有自己的一組屬性,通過選擇「文件」菜單中的「屬性」或通過滑鼠右鍵單擊頁內任何位置,選擇快捷菜單中的「網頁屬性」命令,可以打開「網頁屬性」對話框,在「常規」選項卡中,各項設置含義如下:

·位置:指出頁的完整URL。

·標題:顯示的頁標題,即在HIML中顯示在<head>元素中的<tit1e>標簽內。

·基位置:在此位置可輸入一個URL,可將這頁中使用的相對URL的超鏈接總指向同一正確的目標,通過對一個URL的說明,可以在不移動相對URL中所有目標的情況下,移動這個頁。

·默認的目標框架:定義不規定框架的頁中所有超鏈接的默認框架。

·背景音樂:加入背景音樂,當瀏覽器打開該頁時,會同時播放音樂。

在其它選項卡中還可對頁邊距、語言等系統參數進行設置。
建立超鏈接

--------------------------------------------------------------------------------

超鏈接(HyperLink)的出現使網上瀏覽變得更加便捷,只須用滑鼠輕輕點擊,便能輕松地從一個頁面跳轉到另一個頁面,從一個Web站點跳到另一個Web站點,從一個國家跳到另一個國家。超鏈接就是一些特殊的文本或圖像,是其它頁面的入口。
1.與當前web站點的頁面建立超鏈接
(1)在FrontPage中打開要建立超鏈接的頁面(若是新建頁面,則要肯定該頁面己被保存),選中超鏈接源,超鏈接源可以是一個字元、一個單詞、一句話或一幅圖片等。
(2)選擇「插入」菜單中的「超鏈接」命令,或單擊「常用」工具欄的「超鏈接」按鈕,則彈出「創建超鏈接」對話框(如圖),在該對話框中列出了當前FrontPage中打開的Web站點中的文件夾和文件。

(3)在該對話框的文件列表中,選擇要建立鏈接的目標文件。
(4)單擊「確定」按鈕,超鏈接建成。

2.與本機中的其它文件建立超鍵接
(1)選擇超鏈接源,打開「創建超鏈接」對話框。
(2)在該對話框中單擊「製作一個鏈接到您計算機上文件的超鏈接」按鈕,然後從彈出的對話框中找到自己所要鏈接的文件,選中它。
(3)單擊「確定」按鈕,超鏈接建成。

3.與world wide web上某一站點建立超鏈接
(1)在FrontPage中打開欲建超鏈接的頁面,選定超鏈接源。
(2)選「插入」菜單中的「超鏈接」或單擊常用工具欄的「超鏈接」按鈕,彈出「創建超鏈接」對話框。
(3)在「URL」文本框中,輸入超鏈接目標的URL。
(4)單擊「確定」按鈕。
格式化文本

--------------------------------------------------------------------------------

1.輸入文本
從總體而言,文本仍是網頁中的主體內容,在FrontPage中輸入文本與在Word中輸入文本非常類似。
(1).需要加入空行或換段時才使用Enter鍵,當輸入文本達到所定義的右邊界時,將自動換行。若錄入文字有錯可按Backspace鍵清除錯誤,重新錄入。
(2).可在文本中任意位置處插入新文本內容,操作時把滑鼠指針定位到欲加文本處即可添加文本。
(3).可進行覆蓋式錄入,即先用滑鼠選中要替換的文本,然後直接錄入文本。
(4).可通過單擊常用工具欄的「顯示所有」按鈕,讓段落標記在屏幕上顯示或隱藏,藉助段落標記可清楚地看到段與段之間的空行。

2.文本的選擇

(1).選擇一個單詞或多個單詞:選擇一個單詞只需在該單詞上雙擊滑鼠即可,按住滑鼠左鍵在要選單詞上拖動即可選擇多個單詞。選擇字與選擇多個單詞的方法相同。
(2).選擇一行文字:一行文字就是在屏幕上占據一行空間的文本。將滑鼠箭頭移到行的最左邊,當游標箭頭變為指向左邊時,單擊滑鼠左鍵,便可選擇該行。
(3).選擇一個段落:將滑鼠箭頭移到該段落的最左邊,當游標箭頭變為指向左邊時,雙擊滑鼠左鍵,或按下ALT鍵,再用滑鼠單擊想要選擇的段落,即可選擇該段落。

3.刪除、拷貝和移動文本或圖片

(1).刪除:刪除插入點左側的一個字元,按Backspace鍵;刪除插入點右側的一個字元,按Delete鍵;刪除插入點右側的一個單詞,按Ctrl+De1ete鍵;剪切所選內容並保行到「剪貼板」,按Ctrl+X鍵;刪除所選內容按De1e1e鍵或選擇「編輯」菜單中的「刪除」命令。
(2).拷貝:拷貝所選文本或圖形到剪貼板,方法是:選中文本或圖形,然後按Ctrl+C鍵或從菜單上選擇「編輯」菜單中的「復制」菜單命令,也可直接單擊工具欄中的「復制」按鈕。
(3).移動文本或圖片:選擇想要移動的文本或圖片,再拖曳到要插入的位置,釋放滑鼠,所選對象就移到目的地。如果先將選擇的文本或圖片「剪切」,然後再「粘貼」到指定區域,也可將其移動。
(4).通過「撤銷」取消誤操作:如果用戶在不小心的情況下錯誤地執行操作,單擊工具欄上的「撤銷」命令按鈕,可以取消用戶執行過的操作,或從菜單欄選擇「編輯」菜單中的「撤銷」菜單命令,或按Cir1+Z鍵。

4.加入標題

出於頁面內容層次的需要,有時在頁面中要加入一些小標題。 HTML語言規范採用6級標題,各級標題採用文字不同字型大小來區分,其中標題1為大標題,其它依次為中小標題。要設定某一級標題,可以在FrontPage格式工具欄中的「樣式」下拉列表中選中一個標題等級,然後在游標處輸入標題文字即可;或者先輸入文字,並選定該文字,然後在「樣式」下拉列表中選定某一級標題。標題結束後,將下拉列表中的格式改回原來的「普通」,再進行其它內容的輸入。

5.改變字體及設置字體效果
FrontPage在通常情況下,字體為「Times New Roman」。若用戶的操作系統是中文Windows95/98或Windows NT,中文默認字體為「宋體」,文字大小採用默認的字型大小。若要設定不同的字體,可先選擇要改變的文字,然後在格式工具欄里的「字體」下拉菜單中選擇一種字體,或從菜單欄選擇「格式」菜單中的「字體」菜單命令,通過「字體」對話框來設置,並可設定字體樣式、大小等。當字體改變後,形式將一直保持,直到用戶又重新設置新的字體為止。
(1).設置字體顏色:選中文字,單擊格式工具欄上的「文本顏色」按鈕的下拉箭頭,就會彈出其下拉列表,在「標准顏色」中選擇所需顏色;若沒有,可選擇「更多的顏色」命令,然後從彈出的對話框中選擇。
(2).設置字體樣式:要對需要的文字進行粗體、斜體和下劃線處理,只要選擇要處理的文字,從格式工具欄上單擊「加粗」、「斜體」或「下劃線」按鈕即可。想解除此效果,可以選中文字,再次按相應的按鈕就可以解除效果,恢復到正常字體。在製作網頁時,一般不採用「下劃線」效果,因為下劃線在一些網頁中都表示有超鏈接。
(3).字體加線效果:共有兩種:「下劃線」可以在選中的文字下面劃一條線;「刪除線」在文字中間貫穿劃一條線。
(4).特殊的文字風格:當選中的文字需要使用某些特殊風格,如「閃爍」風格,可通過選擇「字體」對話框中「字體」選項卡(如圖)的「效果」區域的所需選項,但有的文字特殊效果只有在瀏覽器中才能體現出來。

6.文本的縮進
文本的縮進就是使文本左邊、右邊顯示空白,這種效果有利於對關鍵段落加強說明。要對一個已有的段落運用縮進的方式,首先選中段落,然後在格式工具欄上單擊「增加縮進」按鈕,段落左邊和右邊分別縮進一段距離,連續按「增加縮進」按鈕,縮進將進一步加大。這種在文字兩邊同時縮進的方式也稱之為雙向縮進。若縮進的空間太大,可以通過單擊「減少縮進」按鈕來減少縮進的空間。

7.文本對齊方式
若輸入的文字是從該頁的左邊距開始,並逐漸向右延伸,且到了行滿以後又折回下行左邊(左邊距處)重新開始,這就是左對齊。有些文字需要居中方式,比如標題之類的文字;而有些文字需要放到右邊,這些可通過格式工具欄上的「向左對齊」、「居中」和「向右對齊」按鈕來實現:,不同的對齊方式可以使文本呈現不同的顯示樣式,而且可以清楚地表明用戶想要說明的問題,使網頁整體保持協調。 要設定文本的居中、左齊或右齊方式,須先選擇好要設置的文本,再單擊相應按鈕即可。如果用戶想回到原始狀態的對齊的方式,應先選定該文本,再單擊格式工具欄上相應的對齊按鈕。

8、加入項目符號或列表編號

有一些列表前面有加圓點的符號,說明一條條的列表內容,這在專業排版中稱為項目符號,在Web頁面中加入項目符號或列表編號可使內容有條理、更清楚,可以通過列表把大量內容簡要地描述出來,便於讀者抓住重點。還有另外一種形式即列表編號,可以用來描述一個問題的處理步驟和順序,這兩種處理形式在FrontPage中運用起來很方便。
加入項目符號或列表編號與在Word中的操作很類似。先選定文本,用戶可以在格式工具欄按相應的按鈕,或選「格式」菜單中的「項目符號和編號方式」命令,打開項目符號和編號方式對話框(如圖),從中選定不同格式的列表項目。

在FrontPage中新建的兩個文本行之間都有一個空行,如果用戶在輸入或添加項目時不想每兩行之間都出現一個空行,可以在格式工具欄上單擊「項目符號」或「編號方式」按鈕。該按鈕為下凹狀後同時出現第一個項目符號,輸入需要的文字後,按「回車」鍵,然後在自動出現的下一個項目符號後繼續輸入。
FrontPage還可以通過提供列表編號或項目符號的方式對列表項進行排列。操作方法與上一段所述相同。
如果在所有項目輸入完畢後,以下的內容不再希望添加編號或項目符號,可兩次回車,則停止編號或停止添加項目符號。若想改變編號的形式或不想從1開始,可通過在列表符號上單擊滑鼠右鍵,在彈出的快捷菜單上選擇「列表屬性」命令,在彈出的「列表屬性」對話框中選擇「號碼」選項卡,選擇所需的編號風格,再在右邊的「初始號碼」微調器中調整起始編號,在調好之後單擊「確定」按鈕即可。

Ⅲ java 生成pdf 怎麼設置下劃線

xunjiePDF編輯器工具-----選擇「自定義工具欄」,選擇想要顯示的工具,然後可以拖動到菜單欄下方,方面以後或多次使用。

1、文字版PDF:清晰度比較高,文件小,可以單獨選擇復制每個文字,也可以選中具體的文字和段落,比較方便。
注釋----選下劃線類型,比如波浪線、下劃直線、文本標注,選中想要劃下劃線的那些文字。
在下劃線條區域,滑鼠變成「黑三角",右鍵---屬性,可以改變顏色,但好像不能改粗細,也不能保持默認。本人也納悶。
2、掃描版PDF:網上這類文件居多,清晰度有好有壞,文件比較大,就是通過掃描上來的圖片,不能選中,需要專門的文字識別軟體,識別並導出文字word。
注釋------繪圖------在想要的文本下,畫線條、橢圓等圖形,在線條區域,右鍵---屬性------可以改變顏色、粗細。 也可以進行文本標注

Ⅳ 字元串距離

又稱Levenshtein距離,是編輯距離(edit distance)的一種。指兩個字串之間,由一個轉成另一個所需的最少編輯操作次數。許可的編輯操作包括將一個字元替換成另一個字元,插入一個字元,刪除一個字元。

一種局部敏感hash,它也是Google公司進行海量網頁去重使用的主要演算法
傳統的Hash演算法只負責將原始內容盡量均勻隨機地映射為一個簽名值,原理上僅相當於偽隨機數產生演算法。傳統的hash演算法產生的兩個簽名,如果原始內容在一定概率下是相等的;如果不相等,除了說明原始內容不相等外,不再提供任何信息,因為即使原始內容只相差一個位元組,所產生的簽名也很可能差別很大。所以傳統的Hash是無法在簽名的維度上來衡量原內容的相似度,而SimHash本身屬於一種局部敏感哈希演算法,它產生的hash簽名在一定程度上可以表徵原內容的相似度。
我們主要解決的是文本相似度計算,要比較的是兩個文章是否相似,當然我們降維生成了hash簽名也是用於這個目的。看到這里估計大家就明白了,我們使用的simhash就算把文章中的字元串變成 01 串也還是可以用於計算相似度的,而傳統的hash卻不行。

流程

在資訊理論中,兩個等長字元串之間的漢明距離(英語:Hamming distance)是兩個字元串對應位置的不同字元的個數。換句話說,它就是將一個字元串變換成另外一個字元串所需要替換的字元個數。
漢明重量是字元串相對於同樣長度的零字元串的漢明距離,也就是說,它是字元串中非零的元素個數:對於二進制字元串來說,就是1的個數,所以11101的漢明重量是4。
例如:
1011101與1001001之間的漢明距離是2

xlturing/simhashJava

Ⅳ 哪個高手幫幫忙,急用!.

「斐波那契數列」的發明者,是義大利數學家列昂納多·斐波那契(Leonardo Fibonacci,生於公元1170年,卒於1240年。籍貫大概是比薩)。他被人稱作「比薩的列昂納多」。1202年,他撰寫了《珠算原理》(Liber Abaci)一書。他是第一個研究了印度和阿拉伯數學理論的歐洲人。他的父親被比薩的一家商業團體聘任為外交領事,派駐地點相當於今日的阿爾及利亞地區,列昂納多因此得以在一個阿拉伯老師的指導下研究數學。他還曾在埃及、敘利亞、希臘、西西里和普羅旺斯研究數學。
斐波那契數列指的是這樣一個數列:1,1,2,3,5,8,13,21……
這個數列從第三項開始,每一項都等於前兩項之和。它的通項公式為:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(又叫「比內公式」,是用無理數表示有理數的一個範例。)【√5表示根號5】
很有趣的是:這樣一個完全是自然數的數列,通項公式居然是用無理數來表達的。
[編輯本段]【該數列有很多奇妙的屬性】
比如:隨著數列項數的增加,前一項與後一項之比越逼近黃金分割0.6180339887……
如果你看到有這樣一個題目:某人把一個8*8的方格切成四塊,拼成一個5*13的長方形,故作驚訝地問你:為什麼64=65?其實就是利用了斐波那契數列的這個性質:5、8、13正是數列中相鄰的三項,事實上前後兩塊的面積確實差1,只不過後面那個圖中有一條細長的狹縫,一般人不容易注意到。
5、-2.4、2.6、0.2、2.8、3、5.8、8.8、14.6……等,你將發現隨著數列的發展,前後兩項之比也越來越逼近黃金分割,且某一項的平方與前後兩項之積的差值也交替相差某個值。如果所有的數都要求是自然數,能找出被任意正整數整除的項的此類如果任意挑兩個數為起始,比如5、-2.4,然後兩項兩項地相加下去,形成數列,必然是斐波那契數列的某項開始每一項的倍數,如4,6,10,16,26……(從2開始每個數的兩倍)。
斐波那契數列的第n項同時也代表了集合{1,2,...,n}中所有不包含相鄰正整數的子集個數。
斐波那契數列(f(n),f(0)=0,f(1)=1,f(2)=1,f(3)=2……)的其他性質:
1.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1
2.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)-1
3.f(0)+f(2)+f(4)+…+f(2n)=f(2n+1)-1
4.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)
5.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1
6.f(m+n)=f(m-1)·f(n-1)+f(m)·f(n)
7.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)
8.f(2n-1)=[f(n)]^2-[f(n-2)]^2
9.3f(n)=f(n+2)+f(n-2)
在楊輝三角中隱藏著斐波那契數列
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
……
過第一行的「1」向左下方做45度斜線,之後做直線的平行線,將每條直線所過的數加起來,即得一數列1、1、2、3、5、8……
(1)細察下列各種花,它們的花瓣的數目具有斐波那契數:延齡草、野玫瑰、南美血根草、大波斯菊、金鳳花、耬斗菜、百合花、蝴蝶花。
(2)細察以下花的類似花瓣部分,它們也具有斐波那契數:紫宛、大波斯菊、雛菊。
斐波那契數經常與花瓣的數目相結合:
3………………………百合和蝴蝶花
5………………………藍花耬斗菜、金鳳花、飛燕草
8………………………翠雀花
13………………………金盞草
21………………………紫宛
34,55,84……………雛菊
(3)斐波那契數還可以在植物的葉、枝、莖等排列中發現。例如,在樹木的枝幹上選一片葉子,記其為數0,然後依序點數葉子(假定沒有折損),直到到達與那息葉子正對的位置,則其間的葉子數多半是斐波那契數。葉子從一個位置到達下一個正對的位置稱為一個循回。葉子在一個循回中旋轉的圈數也是斐波那契數。在一個循回中葉子數與葉子旋轉圈數的比稱為葉序(源自希臘詞,意即葉子的排列)比。多數的葉序比呈現為斐波那契數的比。
(4)斐波那契數列與黃金比值
相繼的斐波那契數的比的數列:
它們交錯地或大於或小於黃金比的值。該數列的極限為。這種聯系暗示了無論(尤其在自然現象中)在哪裡出現黃金比、黃金矩形或等角螺線,那裡也就會出現斐波那契數,反之亦然。
[編輯本段]【與之相關的數學問題】
1.排列組合.
有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?
這就是一個斐波那契數列:登上第一級台階有一種登法;登上兩級台階,有兩種登法;登上三級台階,有三種登法;登上四級台階,有五種登法……
1,2,3,5,8,13……所以,登上十級,有89種
2.數列中相鄰兩項的前項比後項的極限.
就是問,當n趨於無窮大時,F(n)/F(n+1)的極限是多少?
這個可由它的通項公式直接得到,極限是(-1+√5)/2,這個就是所謂的黃金分割點,也是代表大自然的和諧的一個數字。
3.求遞推數列a(1)=1,a(n+1)=1+1/a(n).的通項公式.
由數學歸納法可以得到:a(n)=F(n+1)/F(n).將菲波那契數列的通項式代入,化簡就得結果。
[編輯本段]【斐波那契數列別名】

斐波那契數列又因數學家列昂納多·斐波那契以兔子繁殖為例子而引入,故又稱為「兔子數列」。
斐波那契數列
一般而言,兔子在出生兩個月後,就有繁殖能力,一對兔子每個月能生出一對小兔子來。如果所有兔都不死,那麼一年以後可以繁殖多少對兔子?
我們不妨拿新出生的一對小兔子分析一下:
第一個月小兔子沒有繁殖能力,所以還是一對;
兩個月後,生下一對小兔民數共有兩對;
三個月以後,老兔子又生下一對,因為小兔子還沒有繁殖能力,所以一共是三對;
------
依次類推可以列出下表:
經過月數:---0---1---2---3---4---5---6---7---8---9--10--11--12
兔子對數:---1---1---2---3---5---8--13--21--34--55--89-144-233
表中數字1,1,2,3,5,8---構成了一個數列。這個數列有關十分明顯的特點,那是:前面相鄰兩項之和,構成了後一項。
這個特點的證明:每月的大兔子數為上月的兔子數,每月的小兔子數為上月的大兔子數,即上上月的兔子數,相加。
這個數列是義大利中世紀數學家斐波那契在<算盤全書>中提出的,這個級數的通項公式,除了具有a(n+2)=an+a(n+1)/的性質外,還可以證明通項公式為:an=1/√[(1+√5/2) n-(1-√5/2) n](n=1,2,3.....)
[編輯本段]【斐波那挈數列通項公式的推導】
斐波那契數列:1,1,2,3,5,8,13,21……
如果設F(n)為該數列的第n項(n∈N+)。那麼這句話可以寫成如下形式:
F(0) = 0,F(1)=F(2)=1,F(n)=F(n-1)+F(n-2) (n≥3)
顯然這是一個線性遞推數列。
通項公式的推導方法一:利用特徵方程
線性遞推數列的特徵方程為:
X^2=X+1
解得
X1=(1+√5)/2, X2=(1-√5)/2.
則F(n)=C1*X1^n + C2*X2^n
∵F(1)=F(2)=1
∴C1*X1 + C2*X2
C1*X1^2 + C2*X2^2
解得C1=1/√5,C2=-1/√5
∴F(n)=(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}【√5表示根號5】
通項公式的推導方法二:普通方法
設常數r,s
使得F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
則r+s=1, -rs=1
n≥3時,有
F(n)-r*F(n-1)=s*[F(n-1)-r*F(n-2)]
F(n-1)-r*F(n-2)=s*[F(n-2)-r*F(n-3)]
F(n-2)-r*F(n-3)=s*[F(n-3)-r*F(n-4)]
……
F(3)-r*F(2)=s*[F(2)-r*F(1)]
將以上n-2個式子相乘,得:
F(n)-r*F(n-1)=[s^(n-2)]*[F(2)-r*F(1)]
∵s=1-r,F(1)=F(2)=1
上式可化簡得:
F(n)=s^(n-1)+r*F(n-1)
那麼:
F(n)=s^(n-1)+r*F(n-1)
= s^(n-1) + r*s^(n-2) + r^2*F(n-2)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) + r^3*F(n-3)
……
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)*F(1)
= s^(n-1) + r*s^(n-2) + r^2*s^(n-3) +……+ r^(n-2)*s + r^(n-1)
(這是一個以s^(n-1)為首項、以r^(n-1)為末項、r/s為公差的等比數列的各項的和)
=[s^(n-1)-r^(n-1)*r/s]/(1-r/s)
=(s^n - r^n)/(s-r)
r+s=1, -rs=1的一解為 s=(1+√5)/2, r=(1-√5)/2
則F(n)=(√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
[編輯本段]【C語言程序】

main()
{
long fib[40] = {0,1};
int i;
for(i=2;i<40;i++)
{
fib[i ] = fib[i-1]+fib[i-2];
}
for(i=0;i<40;i++)
{
printf("F%d==%d\n", i, fib);
}
return 0;
}
[編輯本段]【C#語言程序】
public class Fibonacci
{
//NormRen
static void Main(string[] args)
{
int x = 0, y = 1;
for (int j = 1; j < 10; j++, y = x + y, x = y - x)
Console.Write(y + " ");
}
}
[編輯本段]【Java語言程序】
public class Fibonacci
{
public static void main(String[] args)
{
int x=1,y=1;
System.out.println(x+" ");
for(int i=1;i<=20;i++)
{
System.out.println(y+" ");
y=x+y;x=y-x;
}
}
}
[編輯本段]【Pascal語言程序】
遞推:
var
fib: array[0..40]of longint;
i: integer;
begin
fib[0] := 1;
fib[1] := 1;
for i:=2 to 39 do
fib[i ] := fib[i-1] + fib[i-2];
for i:=0 to 39 do
write('F', i, '=', fib[i ]);
end.
遞歸:
function fib(n:integer):longint;
begin
if (n=1) then exit(0);
if (n=2) then exit(1);
fib:=fib(n-2)+fib(n-1);
end;
[編輯本段]【PL/SQL程序】
declare i number :=0;
j number :=1;
x number :=1;
begin
while x<1000
loop
dbms_output.put_line(x);
x:=i+j;
i:=j;
j:=x;
end loop;
end;
[編輯本段]【數列與矩陣】
對於斐波那契數列1,1,2,3,5,8,13…….有如下定義
F(n)=f(n-1)+f(n-2)
F(1)=1
F(2)=1
對於以下矩陣乘法
F(n+1) = 1 1 * F(n)
F(n) 1 0 F(n-1)
它的運算就是
F(n+1)=F(n)+F(n-1)
F(n)=F(n)
可見該矩陣的乘法完全符合斐波那契數列的定義
設1 為B,1 1為C
1 1 0
可以用迭代得到:
斐波那契數列的某一項F(n)=(BC^(n-2))1
這就是斐波那契數列的矩陣乘法定義.
另矩陣乘法的一個運演算法則A¬^n(n為偶數)=A^(n/2)* A^(n/2).
因此可以用遞歸的方法求得答案.
時間效率:O(logn),比模擬法O(n)遠遠高效。
代碼(PASCAL)
{變數matrix是二階方陣, matrix是矩陣的英文}
program fibonacci;
type
matrix=array[1..2,1..2] of qword;
var
c,cc:matrix;
n:integer;
function multiply(x,y:matrix):matrix;
var
temp:matrix;
begin
temp[1,1]:=x[1,1]*y[1,1]+x[1,2]*y[2,1];
temp[1,2]:=x[1,1]*y[1,2]+x[1,2]*y[2,2];
temp[2,1]:=x[2,1]*y[1,1]+x[2,2]*y[2,1];
temp[2,2]:=x[2,1]*y[1,2]+x[2,2]*y[2,2];
exit(temp);
end;
function getcc(n:integer):matrix;
var
temp:matrix;
t:integer;
begin
if n=1 then exit(c);
t:=n div 2;
temp:=getcc(t);
temp:=multiply(temp,temp);
if odd(n) then exit(multiply(temp,c))
else exit(temp);
end;
procere init;
begin
readln(n);
c[1,1]:=1;
c[1,2]:=1;
c[2,1]:=1;
c[2,2]:=0;
if n=1 then
begin
writeln(1);
halt;
end;
if n=2 then
begin
writeln(1);
halt;
end;
cc:=getcc(n-2);
end;
procere work;
begin
writeln(cc[1,1]+cc[1,2]);
end;
begin
init;
work;
end.
[編輯本段]【數列值的另一種求法】
F(n) = [ (( sqrt ( 5 ) + 1 ) / 2) ^ n ]
其中[ x ]表示取距離 x 最近的整數。
[編輯本段]【數列的前若干項】
1、 1
2 、1
3 、2
4 、3
5 、5
6 、8
7 、13
8 、21
9 、34
10、 55
11 、89
12 、144
13 、233
14 、377
15 、610
16 、987
17 、1597
18 、2584
19 、4181
20 、6765
......
斐波那契弧線
斐波那契弧線,第一,此趨勢線以二個端點為准而畫出,例如,最低點反向到最高點線上的兩個點。三條弧線均以第二個點為中心畫出,並在趨勢線的斐波納契水平:38.2%, 50%和61.8%交叉。
斐波納契弧線,是潛在的支持點和阻力點水平價格。斐波納契弧線和斐波納契扇形線常常在圖表裡同時繪畫出。支持點和阻力點就是由這些線的交匯點得出。
要注意的是弧線的交叉點和價格曲線會根據圖表數值范圍而改變因為弧線是圓周的一部分,它的形成總是一樣的。
斐波那契扇形線
斐波那契扇形線,例如,以最低點反向到最高點線上的兩個端點畫出的趨勢線。然後通過第二點畫出一條「無形的(看不見的)」垂直線。然後,從第一個點畫出第三條趨勢線:38.2%, 50%和61.8%的無形垂直線交叉。
這些線代表了支撐點和阻力點的價格水平。為了能得到一個更為精確的預報,建議和其他斐波納契工具一起使用。
[編輯本段]【斐波那契數列的應用】
一位魔術師拿著一塊邊長為8英尺的正方形地毯,對他的地毯匠朋友說:「請您把這塊地毯分成四小塊,再把它們縫成一塊長13英尺,寬5英尺的長方
形地毯。」這位匠師對魔術師算術之差深感驚異,因為商者之間面積相差達一平方英尺呢!可是魔術師竟讓匠師用圖2和圖3的辦法達到了他的目的!
這真是不可思議的事!親愛的讀者,你猜得到那神奇的一 平方英尺究竟跑到哪兒去呢?
斐波那契數列在自然科學的其他分支,也有許多應用。例如,樹木的生長,由於新生的枝條,往往需要一段「休息」時間,供自身生長,而後才能萌發新枝。所以,一株樹苗在一段間隔,例如一年,以後長出一條新枝;第二年新枝「休息」,老枝依舊萌發;此後,老枝與「休息」過一年的枝同時萌發,當年生的新枝則次年「休息」。這樣,一株樹木各個年份的枝椏數,便構成斐波那契數列。這個規律,就是生物學上著名的「魯德維格定律」。
另外,觀察延齡草,野玫瑰,南美血根草,大波斯菊,金鳳花,耬斗菜,百合花,蝴蝶花的花瓣.可以發現它們花瓣數目具有斐波那契數:3,5,8,13,21……
斐波那契螺旋
具有13條順時針旋轉和21條逆時針旋轉的螺旋的薊的頭部
具有13條逆時針旋轉和21條逆時針旋轉的螺旋的薊的頭部
這些植物懂得斐波那契數列嗎?應該並非如此,它們只是按照自然的規律才進化成這樣。這似乎是植物排列種子的「優化方式」,它能使所有種子具有差不多的大小卻又疏密得當,不至於在圓心處擠了太多的種子而在圓周處卻又稀稀拉拉。葉子的生長方式也是如此,對於許多植物來說,每片葉子從中軸附近生長出來,為了在生長的過程中一直都能最佳地利用空間(要考慮到葉子是一片一片逐漸地生長出來,而不是一下子同時出現的),每片葉子和前一片葉子之間的角度應該是222.5度,這個角度稱為「黃金角度」,因為它和整個圓周360度之比是黃金分割數0.618033989……的倒數,而這種生長方式就決定了斐波那契螺旋的產生。向日葵的種子排列形成的斐波那契螺旋有時能達到89,甚至144條。

Ⅵ 自然語言處理中的N-Gram模型詳解

N-Gram(有時也稱為N元模型)是 自然語言 處理中一個非常重要的概念,通常在NLP中,人們基於一定的語料庫,可以利用N-Gram來預計或者評估一個句子是否合理。另外一方面,N-Gram的另外一個作用是用來評估兩個字元串之間的差異程度。這是模糊匹配中常用的一種手段。本文將從此開始,進而向讀者展示N-Gram在自然語言處理中的各種powerful的應用。
基於N-Gram模型定義的字元串距離
利用N-Gram模型評估語句是否合理
使用N-Gram模型時的數據平滑演算法

歡迎關注白馬負金羈的博客 http://blog.csdn.net/mafujinji ,為保證公式、圖表得以正確顯示,強烈建議你從該地址上查看原版博文。本博客 主要關注方向 包括:數字圖像處理、 演算法 設計與分析、 數據結構 、 機器學習 、數據挖掘、統計分析方法、自然語言處理。
基於N-Gram模型定義的字元串距離
在自然語言處理時,最常用也最基礎的一個操作是就是「模式匹配」,或者稱為「字元串查找」。而模式匹配(字元串查找)又分為 精確匹配 模糊匹配 兩種。

所謂精確匹配,大家應該並不陌生,比如我們要統計一篇文章中關鍵詞 「 information 」 出現的次數,這時所使用的方法就是精確的模式匹配。這方面的演算法也比較多,而且應該是計算機相關專業必修的基礎課中都會涉及到的內容,例如KMP演算法、BM演算法和BMH演算法等等。
另外一種匹配就是所謂的模糊匹配,它的應用也隨處可見。例如,一般的文字處理軟體(例如,Microsoft Word等)都會提供拼寫檢查功能。當你輸入一個錯誤的單詞,例如 「 informtaion 」 時,系統會提示你是否要輸入的詞其實是 「 information 」 。將一個可能錯拼單詞映射到一個推薦的正確拼寫上所採用的技術就是模糊匹配。
模糊匹配的關鍵在於如何衡量兩個長得很像的單詞(或字元串)之間的「差異」。這種差異通常又稱為「距離」。這方面的具體演算法有很多,例如基於編輯距離的概念,人們設計出了 Smith-Waterman 演算法和Needleman-Wunsch 演算法,其中後者還是歷史上最早的應用動態規劃思想設計的演算法之一。現在Smith-Waterman 演算法和Needleman-Wunsch 演算法在生物信息學領域也有重要應用,研究人員常常用它們來計算兩個DNA序列片段之間的「差異」(或稱「距離」)。甚至於在LeetCode上也有一道 「No.72 Edit Distance」 ,其本質就是在考察上述兩種演算法的實現。可見相關問題離我們並不遙遠。
N-Gram在模糊匹配中的應用
事實上,筆者在新出版的 《演算法之美——隱匿在數據結構背後的原理》 一書中已經詳細介紹了包括Needleman-Wunsch演算法、Smith-Waterman演算法、N-Gram演算法、Soundex演算法、Phonix演算法等在內的多種距離定義演算法(或模糊匹配演算法)。而今天為了引出N-Gram模型在NLP中的其他應用,我們首先來介紹一下如何利用N-Gram來定義字元串之間的距離。
我們除了可以定義兩個字元串之間的編輯距離(通常利用Needleman-Wunsch演算法或Smith-Waterman演算法)之外,還可以定義它們之間的N-Gram距離。N-Gram(有時也稱為N元模型)是自然語言處理中一個非常重要的概念。假設有一個字元串 s
,那麼該字元串的N-Gram就表示按長度 N 切分原詞得到的詞段,也就是 s
中所有長度為 N 的子字元串。設想如果有兩個字元串,然後分別求它們的N-Gram,那麼就可以從它們的共有子串的數量這個角度去定義兩個字元串間的N-Gram距離。但是僅僅是簡單地對共有子串進行計數顯然也存在不足,這種方案顯然忽略了兩個字元串長度差異可能導致的問題。比如字元串 girl 和 girlfriend,二者所擁有的公共子串數量顯然與 girl 和其自身所擁有的公共子串數量相等,但是我們並不能據此認為 girl 和girlfriend 是兩個等同的匹配。
為了解決該問題,有學者便提出以非重復的N-Gram分詞為基礎來定義 N-Gram距離這一概念,可以用下面的公式來表述:
|GN(s)|+|GN(t)|−2×|GN(s)∩GN(t)|

此處,|GN(s)|
是字元串 s
的 N-Gram集合,N 值一般取2或者3。以 N = 2 為例對字元串Gorbachev和Gorbechyov進行分段,可得如下結果(我們用下畫線標出了其中的公共子串)。

有興趣的讀者可以在引用相關JAR包之後在Eclipse中執行上述Java程序,你會發現,和我們預期的一樣,字元串Gorbachev和Gorbechyov所得之距離評分較高(=0.7),說明二者很接近;而girl和girlfriend所得之距離評分並不高(=0.3999),說明二者並不很接近。
利用N-Gram模型評估語句是否合理
從現在開始,我們所討論的N-Gram模型跟前面講過N-Gram模型從外在來看已經大不相同,但是請注意它們內在的聯系(或者說本質上它們仍然是統一的概念)。
為了引入N-Gram的這個應用,我們從幾個例子開始。首先,從統計的角度來看,自然語言中的一個句子 s
可以由任何詞串構成,不過概率 P(s)
有大有小。例如:
s1
= 我剛吃過晚飯
s2
= 剛我過晚飯吃

顯然,對於中文而言 s1
是一個通順而有意義的句子,而s2
則不是,所以對於中文來說,P(s1)>P(s2)
。但不同語言來說,這兩個概率值的大小可能會反轉。
其次,另外一個例子是,如果我們給出了某個句子的一個節選,我們其實可以能夠猜測後續的詞應該是什麼,例如
the large green __ . Possible answer may be 「mountain」 or 「tree」 ?
Kate swallowed the large green __ . Possible answer may be 「pill」 or 「broccoli」 ?

顯然,如果我們知道這個句子片段更多前面的內容的情況下,我們會得到一個更加准確的答案。這就告訴我們,前面的(歷史)信息越多,對後面未知信息的約束就越強。
如果我們有一個由 m
個片語成的序列(或者說一個句子),我們希望算得概率 P(w1,w2,⋯,wm)
,根據鏈式規則,可得
P(w1,w2,⋯,wm)=P(w1)P(w2|w1)P(w3|w1,w2)⋯P(wm|w1,⋯,wm−1)

這個概率顯然並不好算,不妨利用馬爾科夫鏈的假設,即當前這個詞僅僅跟前面幾個有限的詞相關,因此也就不必追溯到最開始的那個詞,這樣便可以大幅縮減上訴算式的長度。即P(wi|w1,⋯,wi−1)=P(wi|wi−n+1,⋯,wi−1)

特別地,對於 n
取得較小值的情況當 n=1
, 一個一元模型(unigram model)即為P(w1,w2,⋯,wm)=∏i=1mP(wi)

當 n=2
, 一個二元模型(bigram model)即為P(w1,w2,⋯,wm)=∏i=1mP(wi|wi−1)

當 n=3
, 一個三元模型(trigram model)即為P(w1,w2,⋯,wm)=∏i=1mP(wi|wi−2wi−1)

接下來的思路就比較明確了,可以利用最大似然法來求出一組參數,使得訓練樣本的概率取得最大值。
對於unigram model而言,其中c(w1,..,wn)
表示 n-gram w1,..,wn
在訓練語料中出現的次數,M
是語料庫中的總字數(例如對於 yes no no no yes 而言,M=5
)P(wi)=C(wi)M

對於bigram model而言,P(wi|wi−1)=C(wi−1wi)C(wi−1)

對於n
-gram model而言,P(wi|wi−n−1,⋯,wi−1)=C(wi−n−1,⋯,wi)C(wi−n−1,⋯,wi−1)

來看一個具體的例子,假設我們現在有一個語料庫如下,其中<s1><s2>
是句首標記,</s2></s1>
是句尾標記:
<s1><s2>yesnonononoyes</s2></s1><s1><s2>nononoyesyesyesno</s2></s1>

下面我們的任務是來評估如下這個句子的概率:<s1><s2>yesnonoyes</s2></s1>

我們來演示利用trigram模型來計算概率的結果P(yes|<s1><s2>)=12,P(no|<s2>yes)=1P(no|yesno)=12,P(yes|nono)=25P(</s2>|noyes)=12,P(</s1>|yes</s2>)=1

所以我們要求的概率就等於:12×1×12×25×12×1=0.05

再舉一個來自文獻[1]的例子,假設現在有一個語料庫,我們統計了下面一些詞出現的數量

下面這個概率作為其他一些已知條件給出:P(i|<s>)=0.25P(english|want)=0.0011P(food|english)=0.5P(</s>|food)=0.68

,則可以算得P(s1)=P(i|<s>)P(want|i)P(english|want)P(food|english)P(</s>|food)=0.25×0.33×0.0011×0.5×0.68=0.000031

使用N-Gram模型時的數據平滑演算法
有研究人員用150萬詞的訓練語料來訓練 trigram 模型,然後用同樣來源的 測試 語料來做驗證,結果發現23%的 trigram 沒有在訓練語料中出現過。這其實就意味著上一節我們所計算的那些概率有空為 0,這就導致了數據稀疏的可能性,我們的表3中也確實有些為0的情況。對語言而言,由於數據稀疏的存在,極大似然法不是一種很好的參數估計辦法。
這時的解決辦法,我們稱之為「平滑技術」(Smoothing)或者 「減值」 (Discounting)。其主要策略是把在訓練樣本中出現過的事件的概率適當減小,然後把減小得到的概率密度分配給訓練語料中沒有出現過的事件。實際中平滑演算法有很多種,例如:▸ Laplacian (add-one) smoothing▸ Add-k smoothing▸ Jelinek-Mercer interpolation▸ Katz backoff▸ Absolute discounting▸ Kneser-Ney
對於這些演算法的詳細介紹,我們將在後續的文章中結合一些實例再來進行討論。
A Final Word
如果你能從前面那些繁冗、復雜的概念和公式中挺過來,恭喜你,你對N-Gram模型已經有所認識了。盡管,我們還沒來得及探討平滑演算法(但它即將出現在我的下一篇博文里,如果你覺得還未過癮的話),但是其實你已經掌握了一個相對powerful的工具。你可以能會問,在實踐中N-Gram模型有哪些具體應用,作為本文的結束,主頁君便在此補充幾個你曾見過的或者曾經好奇它是如何實現的例子。
Eg.1 搜索引擎 (Google或者Bai)、或者輸入法的猜想或者提示。你在用網路時,輸入一個或幾個詞,搜索框通常會以下拉菜單的形式給出幾個像下圖一樣的備選,這些備選其實是在猜想你想要搜索的那個詞串。再者,當你用輸入法輸入一個漢字的時候,輸入法通常可以聯系出一個完整的詞,例如我輸入一個「劉」字,通常輸入法會提示我是否要輸入的是「劉備」。通過上面的介紹,你應該能夠很敏銳的發覺,這其實是以N-Gram模型為基礎來實現的,如果你能有這種覺悟或者想法,那我不得不恭喜你,都學會搶答了!

Eg.2 某某作家或者語料庫風格的文本自動生成。這是一個相當有趣的話題。來看下面這段話(該例子取材自文獻【1】):
「You are uniformly charming!」 cried he, with a smile of associating and now and then I bowed and they perceived a chaise and four to wish for.

你應該還沒有感覺到它有什麼異樣吧。但事實上這並不是由人類寫出的句子,而是計算機根據Jane Austen的語料庫利用trigram模型自動生成的文段。(Jane Austen是英國著名女作家,代表作有《傲慢與偏見》等)
再來看兩個例子,你是否能看出它們是按照哪位文豪(或者語料庫)的風格生成的嗎?
This shall forbid it should be branded, if renown made it empty.
They also point to ninety nine point six billion dollars from two hundred four oh three percent of the rates of interest stores as Mexico and Brazil on market conditions.

答案是第一個是莎士比亞,第二個是華爾街日報。最後一個問題留給讀者思考,你覺得上面兩個文段所運用的n-gram模型中,n應該等於多少?
推薦閱讀和參考文獻:
[1] Speech and Language Processing. Daniel Jurafsky & James H. Martin, 3rd. Chapter 4[2] 本文中的一些例子和描述來自 北京大學 常寶寶 以及 The University of Melbourne 「Web Search and Text Analysis」 課程的幻燈片素材

Ⅶ eclipse中的java文本編輯器英文間距太大怎麼辦

調整字體啊

Ⅷ 如何將Java源代碼進行分行麻煩告訴我

一些企業在招聘程序員的時候,總會特意提出一個要求,即要求具有良好的編碼規范。確實現在程序開發人員已經不在是單槍匹馬的單干,而是講究團體作戰。此時就要求團隊內的乘員都可能夠恪守代碼的編寫規范,這對於乘員之間共享代碼、排錯等作業都具有非常現實的意義。這在Java語言中當然也不例外。筆者借這次機會,就跟大家分享一下Java源代碼的折行規則。雖然這基本不涉及到功能層面的內容,但是對於提高代碼的閱讀性卻有不可替代的作用。
一、代碼的最大長度。
雖然在Java的編譯器中對於代碼的最大長度沒有硬性的規定。但是如果代碼的長度太長,超過了編譯器的最當行寬,顯然閱讀起來比較麻煩。為此根據筆者的經驗,通常情況下Java源代碼的行長度不應該大於80個字元。如果超過這個長度的話,在一些開發工具和編輯器上就無法很好的顯示。如需要通過滾動條來顯示後面部分的代碼。當其他項目成員閱讀這超長的代碼時,就會看得眼花繚亂。當人的溫飽問題解決了之後,就需要開始注意美觀方面的問題。所以程序開發人員在開發應用程序的時候,要盡量避免書寫長的代碼。如果代碼的每行長度確實需要超過80個字元的話(最好將每行代碼的長度控制在70個字元左右),那麼就需要對代碼進行分行。
二、在恰當的地方對代碼進行分行。
筆者建議將Java源代碼每行的長度控制在70個字元、最大不超過80個字元。當超過這個字元長度的時候,開發人員就需要考慮在恰當的地方對他們進行分行處理。不過這個分行也不是說開發人員想在哪裡進行分行就在哪裡進行分行。這個分行是有一定技巧的。雖然這些技巧大部分並不是強制性的規定,但是都是一些專家們的經驗總結,可以提高代碼的閱讀性。為此筆者希望各位程序開發能夠嚴格的遵守。
技巧一:高層折行優於低層折行。
這個技巧是說,在考慮對代碼進行折行處理的時候,需要注意代碼的層次性。如某段代碼涉及到混合四則運算,而四則運算又有明顯的運算順序,此時對代碼進行折行時就最好能夠在四則運算的關鍵順序上進行折行處理。如現在有如下的一段代碼:
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
如果要對這段代碼進行折行的話,該在哪個地方加入一個折行符號呢?如果是筆者處理的話,筆者會按如下的格式對代碼進行折行處理。
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)
+8*mynum5
這主要是根據四則運算的運算層次來進行折行的。顯然,*符號的優先順序要比+符號要高。所以在+號前面對其進行折行處理,那麼就可以一目瞭然的反應出代碼的運算層次。可以大幅度的提高代碼的閱讀性。所以代碼折行的第一個技巧就是高層折行優於低層折行。如此的話,可以使得應用程序的結構代碼更加的清晰,更容易被團隊成員所理解。
技巧二:在運算符前面進行折行處理。
其實在如上的折行技巧中,還隱藏著一個規則,即在運算符之前進行折行。如上例所示,筆者就是在+號前面進行折行,而不是在+號後面進行折行處理。這主要也是考慮到代碼的可讀性。如上面這個例子中,如果在+號後面進行折行處理的話,則下一行就會給人一種憑空多出來的感覺,顯得代碼很不連貫。跟這個規則類似,如果在折行處理的時候遇到逗號時,那麼最好能夠在逗號後面進行折行。如在一個方法中,需要傳入5個參數。此時如果代碼行比較長,那麼就需要在幾個參數之間進行折行處理。此時最理想的折行位置,就是在某個參數的逗號後面。注意,使在逗號後面進行折行,而不是在逗號前面。因為一個參數一個逗號是匹對的。而如果一個逗號加一個參數,則讓人看起來很不舒服。
技巧三:這行代碼的對起方式。
當不得已對代碼進行折行處理時,下一行的代碼應該與其同等級的代碼行左對齊。如上例所示,在+號前面將某一段四則運算公式進行折行處理的時候,其+號符號已經採取縮進處理。其縮進後的效果就是要與其同等級的代碼行左對齊。如此的話,明眼人一看就知道這段代碼採取過折行處理;而且跟上一行代碼的層次關系。當一段代碼被分割成三行甚至跟更多行數的時候,這個規則會非常的有用。如果能夠嚴格遵守這個規則,即使將代碼分割成多行,看起來也不會覺得那麼混亂。反而給人一種比較有層次的感覺。
另外在採取縮進處理的時候,可以利用Tab鍵來提高縮進處理的效率。因為直接按空格的話,有可能空格字元數量不一致,會讓人覺得層次不起,產生比較大的混亂。一般情況下,當代碼行兩側距離頁邊的距離比較大,看其來不怎麼舒服時,可以在代碼行中通過插入TAB鍵(會在代碼行中連續插入8個字元)來提高代碼的閱讀性,讓代碼的縮進實現統一。
技巧四:為變數尋找一個合適的位置。
在編寫應用程序時,盡量將變數聲明放置在一個代碼塊的開始處,也就是說{}花括弧的開始位置。雖然說可以在需要使用變數的時候再對其進行聲明。但是筆者不同義如此操作。因為如果在的呢感到使用變數的時候再來聲明變數時,會降低代碼的可讀性。同理,也需要避免低層聲明與高層聲明重復,這樣會引起代碼混亂並可能引發程序功能性錯誤。而且這種錯誤在後續的排錯中很難被發現。為此要在應用程序開發的時候就要盡量避免這種錯誤。
在聲明變數的時候,有時候可能代碼很簡單,生命變數的行總共加起來也不會超過十個字元。此時能否把多個變數的聲明寫在同一行呢?從就技術上來說,這是可行的。也就是說,Java編譯器允許將多個變數定義在同一行上。但是從閱讀性上來說,這並不是很好的做法。筆者的建議是,即使變數定義再簡單,或者變數比較多,也最好分行進行變數的聲明。也就是說,一行聲明一個變數。這可以提高代碼的可閱讀性。而且有時候往往需要對變數加一個注釋說明變數的用途,如果以行定義一個變數,添加行注釋也相對簡單許多。
總之,以上的這些折行的規則基本上不會影響到代碼的運行。但是,對於代碼的維護與後續的排錯、升級、二次開發等等具有不可忽視的作用。而且現在基本上應用程序開發式團隊開發,故大家都遵守同樣的代碼編寫規范是非常重要的。筆者在開發一個應用程序的時候,事先都會花一定的時間,跟項目成員強調這些折行的規則。目的只有一個,就是提高代碼的可讀性,便於後續代碼的共享與維護。畢竟後續面對這些代碼的,並不是客戶,而是我們自己。我們程序員在編寫代碼的時候,不能夠搬起石頭砸自己的腳。筆者認為,現在一個合格的程序人員,不僅技術功底上要過得硬,而且還必須要遵守這些無形規則的約束。難怪現在這么多企業在挑選程序開發人員的時候,都會註明良好的編碼規范。現在對於這些無形中的條條框框,項目經理已經開始重視起來。

閱讀全文

與java編輯距離相關的資料

熱點內容
壓縮文件時報錯 瀏覽:611
圖的演算法有什麼用 瀏覽:793
櫃式空調壓縮機在哪裡 瀏覽:724
創建多級文件夾視頻講解 瀏覽:195
計算機有很多空文件夾能刪嗎 瀏覽:486
android44w下載 瀏覽:248
測排卵app哪個好用 瀏覽:622
平時解壓方法圖解 瀏覽:56
php多長時間能學會 瀏覽:308
apex伺服器選什麼好 瀏覽:595
nds編譯 瀏覽:110
各個擊破法動態規劃法貪婪演算法 瀏覽:533
柱端部為什麼要加密 瀏覽:891
c單鏈表排序演算法 瀏覽:362
python鄰接鏈表 瀏覽:369
外國解壓的視頻說話助眠 瀏覽:115
查看php擴展版本 瀏覽:239
社保卡加密機放在信息中心 瀏覽:95
python3爬取網頁數據 瀏覽:621
超級主升幅圖公式源碼 瀏覽:22