出版時(shí)間:2011-1-8 出版社:人民郵電出版社 作者:Ozy (著), やねうらお (監(jiān)修) 頁(yè)數(shù):338
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《短碼之美:編程達(dá)人的心得技法》主要介紹短碼編程,首先介紹了短碼編程的三要素:數(shù)據(jù)結(jié)構(gòu)和算法、執(zhí)行環(huán)境以及短碼編程的精神。書(shū)中以北京大學(xué)的pku judge online 在線評(píng)分系統(tǒng)為編程環(huán)境,選取了該系統(tǒng)中比較典型的問(wèn)題,如海貍啃木頭、旋轉(zhuǎn)拼圖、葡萄酒買(mǎi)賣(mài),利用數(shù)據(jù)結(jié)構(gòu)和算法的知識(shí)加以分析,最后編程實(shí)現(xiàn),并嘗試使用各種編程語(yǔ)言,不斷地將源代碼縮短。同時(shí)還介紹并分析了一些鉆安全漏洞的代碼,旨在通過(guò)短碼編程幫助程序員集中注意力,鍛煉忍耐力,開(kāi)拓視野?! 抖檀a之美:編程達(dá)人的心得技法》適合所有對(duì)短碼編程感興趣的人。
作者簡(jiǎn)介
作者:(日本)岡田佑一 譯者:李秀銀 賽麗娜Ozy本名同田佑一,是出生于日本大阪的一位短碼高手。他花費(fèi)相當(dāng)長(zhǎng)的時(shí)間提升短碼編程技術(shù),進(jìn)而將其發(fā)展成一種技能,曾獲得程序設(shè)計(jì)大賽的冠軍。他開(kāi)辦過(guò)程序設(shè)計(jì)方面的培訓(xùn)班,目前致力于數(shù)學(xué)教育和程序設(shè)計(jì)師的培養(yǎng)工作。李秀銀畢業(yè)于黑龍江大學(xué),高級(jí)軟件工程師,一直致力于IT行業(yè)的項(xiàng)目研發(fā)。精通各種開(kāi)發(fā)環(huán)境及語(yǔ)言,從事對(duì)日外包工作近20年,先后研發(fā)各類(lèi)軟件項(xiàng)目60佘項(xiàng),發(fā)表學(xué)術(shù)論文數(shù)十篇,多次獲省級(jí)科研項(xiàng)目獎(jiǎng)。賽麗娜,畢業(yè)于黑龍江大學(xué),軟件工程師,精通各種開(kāi)發(fā)環(huán)境及語(yǔ)言,從事對(duì)日外包工作近15年,先后研發(fā)各類(lèi)軟件項(xiàng)目40余項(xiàng)。
書(shū)籍目錄
第1章 入門(mén) 1 1.1 引言 2 1.1.1 什么是短碼編程 2 1.1.2 短碼編程的三要素 3 1.1.3 熱情、聰明的短碼編程者 4 1.1.4 短碼編程者的傳奇 4 1.2 戰(zhàn)場(chǎng):在線評(píng)分系統(tǒng) 4 1.2.1 什么是在線評(píng)分系統(tǒng) 4 1.2.2 世界各地的在線評(píng)分系統(tǒng) 4 1.2.3 pku judge online 5 1.3 動(dòng)手試試:短碼編程的基礎(chǔ) 6 1.3.1 編程環(huán)境 6 1.3.2 使用的編程語(yǔ)言和編譯器 6 1.3.3 注冊(cè)poj賬號(hào) 6 1.3.4 基本規(guī)則 7 1.3.5 微妙的規(guī)則 8 1.3.6 道德上的規(guī)則 8 1.4 熱身 10 1.4.1 關(guān)于運(yùn)行環(huán)境 10 1.4.2 首先從簡(jiǎn)單的加法運(yùn)算開(kāi)始 10 .1.4.3 不簡(jiǎn)單加法運(yùn)算 16 1.4.4 計(jì)算平均值 21 1.4.5 推出重疊的牌 24 1.4.6 開(kāi)始模仿編程 28 1.4.7 熱身結(jié)束 31 第2章 必讀!絕妙技巧 33 2.1 精通規(guī)則 34 2.1.1 醉漢看守 34 2.1.2 階段 43 2.1.3 連續(xù)數(shù)的和 49 2.2 quick sort hack 55 2.2.1 快速排序 55 2.2.2 qsort函數(shù) 55 2.2.3 hack風(fēng)暴 56 2.2.4 挑戰(zhàn)變態(tài)排序一 58 2.2.5 挑戰(zhàn)變態(tài)排序二 65 2.2.6 永遠(yuǎn)的hack 69 2.3 熟練運(yùn)用庫(kù)函數(shù) 69 2.3.1 方便的庫(kù)函數(shù) 69 2.3.2 好用的strtol函數(shù) 74 2.3.3 strtol與itoa天生一對(duì) 77 2.3.4 轉(zhuǎn)換樂(lè)園 82 2.3.5 海貍啃木頭 84 2.3.6 系繩 87 2.4 精減1字節(jié)的靠山 91 2.4.1 好用的~運(yùn)算符 91 2.4.2 好用的%運(yùn)算符 94 2.4.3 分組建立長(zhǎng)期政權(quán) 99 2.4.4 isbn碼 106 2.4.5 非?;钴S的數(shù)學(xué)問(wèn)題 110 2.5 按位運(yùn)算的超級(jí)魔法 114 2.5.1 超級(jí)魔法的二叉樹(shù) 114 2.5.2 超級(jí)魔法的密碼 119 2.5.3 超級(jí)魔法的極致 123 2.6 精通指針 129 2.6.1 短碼編程中的指針 129 2.6.2 旋轉(zhuǎn)拼圖的智力游戲 130 2.6.3 超長(zhǎng)加法 135 2.6.4 指針和數(shù)組的密切關(guān)系 138 2.7 數(shù)學(xué)問(wèn)題 142 2.7.1 不要依賴(lài)公式 142 2.7.2 越界(數(shù)列篇) 143 2.7.3 越界(排列組合篇) 146 2.7.4 與周期有關(guān)的問(wèn)題 150 2.7.5 偽隨機(jī)數(shù)的周期性 151 2.7.6 三個(gè)周期 153 2.7.7 斐波那契數(shù)列 158 2.8 活用算法 163 2.8.1 高速、節(jié)省內(nèi)存是編寫(xiě)短碼的關(guān)鍵 163 2.8.2 三角形 163 2.9 數(shù)字的新常識(shí) 171 2.9.1 關(guān)鍵在“三” 171 2.9.2 整理電話號(hào)碼 176 2.10 字節(jié)的熱情 184 2.10.1 附上答案 184 2.10.2 漢諾塔 184 第3章 短碼編程研究 193 3.1 更高的編程技巧 194 3.1.1 開(kāi)始 194 3.1.2 關(guān)于表示法 194 3.2 精簡(jiǎn)循環(huán) 194 3.2.1 精通之后就能成為頂尖的短碼編程者 194 3.2.2 簡(jiǎn)單的例子 195 3.2.3 常用結(jié)構(gòu) 197 3.2.4 短碼編程的基本類(lèi)型 197 3.2.5 重要的短碼語(yǔ)法 199 3.2.6 取數(shù)字游戲 200 3.2.7 葡萄酒買(mǎi)賣(mài) 202 3.2.8 難解:精簡(jiǎn)多層循環(huán) 204 3.3 強(qiáng)大的擴(kuò)展語(yǔ)法 208 3.3.1 對(duì)短碼編程者有用的擴(kuò)展語(yǔ)法 208 3.3.2 條件運(yùn)算符 208 3.3.3 數(shù)字根 209 3.3.4 擴(kuò)展左值 212 3.3.5 擴(kuò)展關(guān)系運(yùn)算符 213 3.4 宏能不能縮短代碼 213 3.4.1 基于短碼編程的宏 213 3.4.2 while語(yǔ)句的可能性 214 3.4.3 數(shù)組的可能性 217 3.5 神奇的main遞歸 219 3.5.1 main遞歸可以最大限度地縮短代碼 219 3.5.2 從單純循環(huán)到main遞歸 219 3.5.3 破解難題的main遞歸 220 3.5.4 基于遞歸算法的main遞歸 232 3.5.5 傳說(shuō)中的1145 233 3.5.6 小結(jié) 239 3.6 quick sort hackⅱ 240 3.6.1 征服二進(jìn)制等于征服短碼編程 240 3.6.2 縮短匯編代碼 244 3.6.3 進(jìn)一步縮短 248 3.7 作弊代碼和安全性 251 3.8 挑戰(zhàn)難題 254 3.8.1 短碼編程的靈魂 254 3.8.2 組成最強(qiáng)陣容 254 第4章 語(yǔ)言對(duì)決 277 4.1 短碼編程不限語(yǔ)言 278 4.1.1 各種程序設(shè)計(jì)語(yǔ)言 278 4.1.2 本章結(jié)構(gòu) 278 4.2 java與c 278 4.2.1 java是有缺陷的程序設(shè)計(jì)語(yǔ)言 278 4.2.2 使用java的地方 279 4.2.3 多精度時(shí)就交給java 279 4.2.4 c語(yǔ)言仍然強(qiáng)大 285 4.3 pascal與c 292 4.3.1 遇到麻煩的pascal語(yǔ)言 292 4.3.2 用pascal寫(xiě)出比c語(yǔ)言更短的代碼 293 4.3.3 復(fù)利計(jì)算 293 4.4 c++與c 294 4.4.1 不經(jīng)常使用的c++ 294 4.4.2 基本技巧 295 4.4.3 檢查順序 296 4.4.4 g++擴(kuò)展運(yùn)算符與變態(tài)gcc源代碼的對(duì)比 299 4.5 更多的挑戰(zhàn) 306 4.5.1 成為一名真正的短碼編程者 306 4.5.2 世界各地的短碼編程者的活動(dòng) 306 4.5.3 挑戰(zhàn)code golf 307 4.5.4 嘗試用所有語(yǔ)言編寫(xiě)短碼 312 第5章 磨練自己 313 5.1 致親愛(ài)的讀者 314 5.1.1 向短碼編程者學(xué)習(xí) 314 5.1.2 源代碼的可讀性 314 5.1.3 希望寫(xiě)出錯(cuò)誤少的程序 315 5.1.4 更大程度地提高 316 5.1.5 有人情味、富有魅力 317 5.2 珍貴的參考資料 318 5.2.1 珍貴的書(shū)籍 318 5.2.2 網(wǎng)站介紹 323 5.3 精明強(qiáng)干的短碼編程者 325 5.3.1 致謝 325 5.3.2 短碼高手們(敬稱(chēng)略,按字母順序) 325 5.4 最后 327 附錄 331 a.1 問(wèn)題一覽 332 a.2 ascii碼表 337 a.3 運(yùn)算符的優(yōu)先級(jí)與結(jié)合規(guī)則 338
章節(jié)摘錄
插圖:1.1.3 熱情、聰明的短碼編程者將源代碼編寫(xiě)到最短的人,稱(chēng)為短碼編程者(shortCoder)。即使只能縮短1字節(jié),短碼編程者也會(huì)為此而努力戰(zhàn)斗。當(dāng)戰(zhàn)斗結(jié)束后,短碼編程者們會(huì)相互間討論縮短源代碼過(guò)程中的想法,交換自己發(fā)現(xiàn)的黑客技巧,并會(huì)分享知識(shí),然后繼續(xù)迎接下一個(gè)新的挑戰(zhàn)。雖然大多數(shù)短碼編程者都擁有明晰的頭腦,但是通常一個(gè)人是不可能完成短碼編程的,在與其他短碼編程者切磋溝通的過(guò)程中,也就生成了最短源代碼,同時(shí)也使自己得到了鍛煉。1.1.4 短碼編程者的傳奇程序員是一邊參照設(shè)計(jì)文檔,一邊從網(wǎng)上和參考書(shū)上得到所需的信息來(lái)編寫(xiě)程序的。然而通常設(shè)計(jì)文檔本身也會(huì)有不完整的時(shí)候。就算它是完整的,可能也會(huì)在庫(kù)文件的實(shí)現(xiàn)過(guò)程中出現(xiàn)問(wèn)題。當(dāng)然,也不能保證網(wǎng)上內(nèi)容或者是參考書(shū)都是100%正確,大多數(shù)情況下都有可能包含少量的錯(cuò)誤。這時(shí)可以請(qǐng)教有經(jīng)驗(yàn)的程序員去解決問(wèn)題,去互聯(lián)網(wǎng)上檢索也肯定能找到相應(yīng)源代碼的例子。但是,不是所有的問(wèn)題都可以這樣解決的。有時(shí),會(huì)碰到不能輕易判斷出對(duì)錯(cuò)的問(wèn)題,這時(shí)候應(yīng)該怎么辦呢?本書(shū)通過(guò)熱情、快樂(lè)、認(rèn)真地描述短碼編程者勇敢挑戰(zhàn)似乎不可能完成的任務(wù)的故事,揭示出如何掌握更高的編程技巧、如何探索未知的問(wèn)題,以期培養(yǎng)編程者的熱情。
編輯推薦
《短碼之美:編程達(dá)人的心得技法》:短碼編程的尖峰時(shí)刻編程數(shù)率的極致追求北大POJAMC經(jīng)典題目解析縮短代碼的過(guò)程。是頭腦風(fēng)暴的過(guò)程。要想寫(xiě)出優(yōu)秀的短碼程序。除了要掌握數(shù)據(jù)結(jié)構(gòu).算法、運(yùn)行環(huán)境方面的豐富知識(shí)以外,還要堅(jiān)信無(wú)論什么樣的源代碼都能縮短,就算只能縮短1字節(jié),也要為之不懈地努力。在這個(gè)過(guò)程中集中注意力,磨礪意志力,提升思考力。程序人人會(huì)寫(xiě),各有巧妙不同?!抖檀a之美:編程達(dá)人的心得技法》以北京大學(xué)的在線評(píng)分系統(tǒng)為運(yùn)行環(huán)境,給出了非常多的例子,足以讓讀者體會(huì)到如何寫(xiě)短碼。作者除了詳細(xì)介紹解題思路以外,還向讀者傳授不同程序語(yǔ)言的語(yǔ)法以及深入應(yīng)用方面的知識(shí),使讀者在縮短源代碼的過(guò)程中對(duì)程序設(shè)計(jì)語(yǔ)言.函數(shù)庫(kù)和編程環(huán)境有更深入的了解。如果你想提升程序設(shè)計(jì)水平,那么《短碼之美:編程達(dá)人的心得技法》恰好適合你閱讀。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版