Re: [心得] 寫出簡潔好程式-短碼達人的心得技法

看板C_and_CPP作者 (Domos)時間16年前 (2008/08/05 00:07), 編輯推噓14(14018)
留言32則, 13人參與, 最新討論串3/3 (看更多)
今天下午買的,已經看半本掉了 的確本書的目標是寫出最短的code 書後面就講明「一邊探討程式原始碼可以縮到多短,一 邊研究資料結構、演算法、執行環境的過程」 所以不單單只是縮行、更換變數名 要有一定的程度才有辦法理解其中一些招數 的確他有犧牲一些速度 但不是寫短碼犧牲速度還以為會跑比較快 作者很清楚會犧牲速度,範例也有給出較快速的版本 而且他也沒有說寫大型project的時候用短碼寫 只說這是一種「嗜好」 那這本書學不到東西嗎? 這樣想就錯了,可以學到一堆傳統教科書學不到的東西 要寫短碼絕對不是固定幾招 首先要對題目有深入的了解 比如說一題 //如有侵權請告知 請費式數列第n項最後4個數字 如果看不出規律,那還是寫不出真正的短碼(沒錯,答案是有周期的) 整體而言十分推薦這本書 尤其是對c語言有一定程度的人,可以學到一些不知道的事 從中汲取對自己有用的部份 新手就別試了,難以理解之外,還會讓你功力退步 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.61.227.24

08/05 00:13, , 1F
中肯
08/05 00:13, 1F

08/05 00:14, , 2F
補充:有疑問請從5-1開始看起
08/05 00:14, 2F

08/05 00:23, , 3F
不過短碼有專有名詞嗎?用Short Code跟本找不相關資料
08/05 00:23, 3F

08/05 00:24, , 4F
還是根本很少人在玩這種東西 日本人自己在玩而已?
08/05 00:24, 4F

08/05 00:25, , 5F
因為pku的judge系統會顯示code大小 才會有人在衝短碼
08/05 00:25, 5F

08/05 00:25, , 6F
uva沒有 大家最多就衝速度而已
08/05 00:25, 6F

08/05 00:55, , 7F
應該說,如果只是追求在同樣做法下的短碼,那往往就跟可讀
08/05 00:55, 7F

08/05 00:56, , 8F
性衝突。但如果是追求不同做法下的短碼,那就「有可能」可
08/05 00:56, 8F

08/05 00:57, , 9F
兼顧,而兼顧的情況確實往往是新演算法(比如找到公式解)
08/05 00:57, 9F

08/05 00:58, , 10F
。然而這也非絕對,比如有些題目用遞迴可能往往比用經驗法
08/05 00:58, 10F

08/05 00:58, , 11F
請問短碼的好處在哪?
08/05 00:58, 11F

08/05 00:59, , 12F
則來得短碼,然而效率卻是短碼的一方落敗(為暴搜加個cut
08/05 00:59, 12F

08/05 00:59, , 13F
明顯就是一個長碼卻增加效率的例子)。
08/05 00:59, 13F

08/05 01:00, , 14F
所以我想短碼並不是因為它有什麼絕對的好處,與其說是個課
08/05 01:00, 14F

08/05 01:01, , 15F
題,不如說是個練習題這樣XD
08/05 01:01, 15F

08/05 01:02, , 16F
本質上也許跟IOCCC差不到哪裡去XD
08/05 01:02, 16F

08/05 01:02, , 17F
程式是看效率,我看這本書也只是騙吃騙喝...
08/05 01:02, 17F

08/05 01:25, , 18F
IOCCC只是好玩吧
08/05 01:25, 18F

08/05 01:36, , 19F
不過如果是短碼控 或是得了不寫短碼就會憂鬱的病
08/05 01:36, 19F

08/05 01:36, , 20F
那短碼還是需要的 ~~ XD
08/05 01:36, 20F

08/05 05:36, , 21F
短碼違背了軟工之道阿XD
08/05 05:36, 21F

08/05 08:08, , 22F
找找看one liner program 跟short coding類似
08/05 08:08, 22F

08/05 09:30, , 23F
有時候在空間有限的環境 短碼還是有他的用處
08/05 09:30, 23F

08/05 09:31, , 24F
我能想到的是embedded環境以及網頁javascript的大小上限
08/05 09:31, 24F

08/05 11:34, , 25F
如果你寫 C, 那短碼跟短機械碼還是兩回事
08/05 11:34, 25F

08/05 11:34, , 26F
限制環境要的不會是短碼
08/05 11:34, 26F

08/05 11:35, , 27F
javascript 短碼則可能有點用處, 這倒是比較特殊
08/05 11:35, 27F

08/06 11:42, , 28F
我底下帶的人要是給我寫短碼一定會先巴下去再退回重寫
08/06 11:42, 28F

08/07 03:40, , 29F
你舉的例子真正差在"算法" 短碼應該是說在同樣的算法下寫
08/07 03:40, 29F

08/07 03:42, , 30F
出byte數較小的程式碼 一味的追求短碼通常失去高階語言帶
08/07 03:42, 30F

08/07 03:44, , 31F
來的便利 不過前面有人說比賽有byte數的排名 就把他當做智
08/07 03:44, 31F

08/07 03:46, , 32F
力的競賽吧 順便推一個拼短碼的遊戲:微軟的Herbert
08/07 03:46, 32F
文章代碼(AID): #18bobAcx (C_and_CPP)
文章代碼(AID): #18bobAcx (C_and_CPP)