<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    莊周夢蝶

    生活、程序、未來
       :: 首頁 ::  ::  :: 聚合  :: 管理

    群里收到的消息,過去從來不轉(zhuǎn)發(fā)這樣的消息,可這條消息我必須得占用大家一點(diǎn)時間,也許能幫上忙。

    有人求救(代轉(zhuǎn))

    為什么現(xiàn)在電視上不播報江油地震受損失的情況,我老婆現(xiàn)在7個月的身孕,沒有食物和水,,今天上午聯(lián)系了一次,已經(jīng)餓的不行了。。。
        急需求救。。。現(xiàn)在也沒有救援隊(duì)伍去江油,,電視上一次江油的災(zāi)情也沒有報,,
        我也是軍人,我們部隊(duì)現(xiàn)在待命準(zhǔn)備去四川汶川救災(zāi),我愿意貢獻(xiàn)自己全部的力量去救災(zāi)區(qū)的老鄉(xiāng)。。。
        可是我老婆確沒有人救。。。。我馬上就要出發(fā)了,也許很難聯(lián)系她,,,,雖然無論怎樣我會盡全力去搶汶川救災(zāi)區(qū)老鄉(xiāng),,,可是希望在江油的老鄉(xiāng)也能跟她帶點(diǎn)吃的,哪怕一瓶礦泉水也行,,,求求老鄉(xiāng)了,,,她現(xiàn)在在馬路灣中國電信的門口公路上的一輛貨車上。。。叫王琢,,是老師,,求各位老鄉(xiāng)幫忙,,,
    一個去汶川救災(zāi)的軍人的懇求
    知道江油肯定沒有人能見到這個帖子,希望在外的人們能聯(lián)系上江油的同胞們幫
    幫忙發(fā)下,謝謝了就1分鐘

    posted @ 2008-05-14 22:13 dennis 閱讀(1532) | 評論 (5)編輯 收藏

        本節(jié)主要講述無窮流。
    3.53,顯然
    (define s (cons-stream 1 (add-stream s s)))
    定義是2的n次方組成的無窮數(shù)列,2,4,8,16,32...

    3.54,定義階乘組成的無窮序列:
    (define (mul-streams s1 s2)
      (stream
    -map * s1 s2))
    (define factorials (cons
    -stream 1 (mul-streams factorials (stream-cdr integers))))

    3.55解答,比較有趣,也是不難的題目,列出來找出規(guī)律就成了,就是將(stream-car s)加到生成的序列中的每個元素上,通過stream-map,最后的結(jié)果就是每個元素都是前n個元素累積的結(jié)果,我的解答:
    (define (partial-sums s)
      (cons
    -stream (stream-car s) (stream-map (lambda(x) (+ x (stream-car s))) (partial-sums (stream-cdr s)))))

    3.56,有了merge就好辦了,根據(jù)條件合并起3種情況來就好:
    (define S (cons-stream 1 (merge (scale-stream s 2) (merge (scale-stream s 3) (scale-stream s 5)))))

    3.57,略過

    3.58,觀察到,num每次都與radix相乘并且radix保持不變,那么radix可以認(rèn)為是一個基數(shù),den也保持不變作為除數(shù),那么這個序列就是以radix為基數(shù)對den求整數(shù)商的序列,不明白num為什么每次要變換成余數(shù)?這個序列有啥特別的用途呢?未解。
    (expand 1 7 10)
    => 1 4 2 8 5 7 1 4 2 8

    (expand 3 8 10)
    => 3 7 5 0 0 0 0 0 0 0
    3.59解答:
    a)只要將序列通過前面定義的mul-streams與整數(shù)的倒數(shù)序列相乘:
    (define (integrate-series s)
      (mul
    -streams (stream-map (lambda(x) (/ 1 x)) integers) s))

    b)照著定義來了,cons的級數(shù)注意使用scale-stream乘以-1:
    (define sine-series
      (cons
    -stream 0 (integrate-series cosine-series)))

    (define cosine
    -series
      (cons
    -stream 1
        (scale
    -stream
          (integrate
    -series sine-series)
          
    -1)))

    3.64解答:
    (define (stream-limit s tolerance)
      (define (stream
    -limit-iter stream current)
        (cond ((
    or (stream-null? stream) (null? (stream-car stream))) #f)
              (else
               (let ((next (stream
    -car stream)))
                 (
    if (< (abs (- next current)) tolerance)
                       next
                      (stream
    -limit-iter (stream-cdr stream) next))))))
      (stream
    -limit-iter (stream-cdr s) (stream-car s)))

    習(xí)題3.65:
    (define (ln-summands n)
      (cons
    -stream (/ 1.0 n)
                   (stream
    -map - (ln-summands (+ n 1)))))
    (define ln
    -stream (partial-sums (ln-summands 1)))
    (define ln
    -stream2 (euler-transform ln-stream))
    (define ln
    -stream3 (accelerated-sequence euler-transform ln-stream))
    經(jīng)過歐拉變換加速過的級數(shù)收斂的很快,測測就知道

    posted @ 2008-05-13 23:52 dennis 閱讀(494) | 評論 (0)編輯 收藏

        在云風(fēng)的blog上看到,已經(jīng)有人做了完整的翻譯。在這里下載。那天arbow還在問我,最后兩部分怎么不翻了,今天晚上看見這blog才又想起這么回事,看了下過去的翻譯,原來也翻到第7部分虛擬機(jī)咯,不過既然已經(jīng)有了不錯的中文版了,就不獻(xiàn)丑了。我的興趣轉(zhuǎn)移的太快,前兩周還在讀cindy、mina源碼,研究nio,現(xiàn)在又對AOP產(chǎn)生了興趣,特意學(xué)了caesarj語言,這東西對習(xí)慣了Ruby的我,實(shí)在是有點(diǎn)郁悶;在目前的jvm指令架構(gòu)里,折騰open class、mixin,還是不那么自然,不過作為AspectJ的擴(kuò)展,還是有學(xué)習(xí)的價值的。自己有過想法,每年學(xué)一門新語言,caesarj算不上,那么python如何?其實(shí)我在學(xué)在用咯。不過python沒有帶來更大的驚喜,python中規(guī)中矩,感覺類似動態(tài)語言中的java,沒有像剛接觸scheme帶來的眼前一亮,而我是需要新鮮感的人,也許傳說中的很難理解的haskell是我的下一個學(xué)習(xí)對象。

    posted @ 2008-05-09 23:44 dennis 閱讀(573) | 評論 (0)編輯 收藏

        流是通過延時求值實(shí)現(xiàn)的,Ruby中實(shí)現(xiàn)stream也是可以做到,可惜就是沒有尾遞歸優(yōu)化。按照sicp,首要的是兩個函數(shù):delay和force:
    def mem_proc(exp)
      alread_run
    =false
      result
    =false
      
    lambda{
        
    if !alread_run
          result
    =exp.call
          alread_run
    =true
          result
        
    else
          result
        end
      }
    end
    def force(delayed_object)
      delayed_object.call
    end
    def delay(exp)
      mem_proc(
    lambda{exp})
    end
        delay函數(shù)返回延時對象,就是對于未來某個時間求值表達(dá)式的承諾;force函數(shù)以延時對象為參數(shù),進(jìn)行相應(yīng)的求值工作,這里的mem_proc用于記憶已經(jīng)求值過的表達(dá)式。定義stream的constructor和selector函數(shù):
    def cons_stream(a,b)
      
    return a,delay(b)
    end
    def stream_car(s)
      s[0]
    end
    def stream_cdr(s)
      force(s[
    1])
    end
    def stream_null?(s)
      s.nil? 
    or s==[]
    end
        用Ruby中的數(shù)組充當(dāng)“粘合劑”,stream_car直接返回第一個元素,而stream_cdr需要用force求值表達(dá)式,履行承諾。另外,將空數(shù)組[]作為the-empty-stream。再定義幾個高階函數(shù),map和foreach,其他如filter與此類似:
    def stream_enumerate_interval(low,high)
      
    if low>high
        
    return []
      
    else
        cons_stream(low,stream_enumerate_interval(low.succ,high))     
      end
    end
    def stream_ref(s,n)
      
    if n==0
        stream_car(s)
      
    else
        stream_ref(stream_cdr(s),(n
    -1))     
      end
    end
    def stream_map(proc,s)
      
    if stream_null?(s)
        []
      
    else
        cons_stream(proc.call(stream_car(s)),stream_map(proc,(stream_cdr(s))))    
      end
    end
    def stream_for_each(proc,s)
      
    if stream_null?(s)
        :done
      
    else
        proc.call(stream_car(s))
        stream_for_each(proc,stream_cdr(s))     
      end
    end
    def display_stream(s)
      stream_for_each(
    lambda{|item| puts item},s)
    end
    def stream_filter(pred,s)
      
    if stream_null?(s)
        []
      elsif pred.call(stream_car(s))
        cons_stream(stream_car(s),stream_filter(pred,stream_cdr(s)))
      
    else
        stream_filter(pred,stream_cdr(s))   
      end
    end

        最后,看下例子:
    puts "s:"
    s
    =stream_enumerate_interval(1,5)
    display_stream(s)
    puts 
    "odd_s:"
    odd_s
    =stream_filter(lambda{|x| x%2==1},s)
    display_stream(odd_s)
    puts 
    "ss:"
    ss
    =stream_map(lambda{|x|x*x},s)
    display_stream(ss)



    posted @ 2008-05-08 22:32 dennis 閱讀(1252) | 評論 (0)編輯 收藏

        前段時間看了這篇文章《Ropes:理論與實(shí)踐》。這兩天為了提高工作中某個系統(tǒng)對外接口的效率,才認(rèn)真學(xué)習(xí)了一番。本質(zhì)上Ropes是將字符串表示為一棵二叉樹,特別適用于長字符串的處理,貌似c++ STL庫中也有這么個實(shí)現(xiàn)。具體實(shí)現(xiàn)和原理還是看這篇paper。《Ropes:理論與實(shí)踐》一文中給出的測試數(shù)據(jù)相當(dāng)驚人,Ropes比之String和StringBuffer在append,insert,delete等操作上的效率都有一個數(shù)量級以上的差距。跑下作者給出的測試程序,其實(shí)在測試的字符串不是很長的情況下,這個差距并沒有那么大,這也從側(cè)面說明了Rope的應(yīng)用范圍:即只有在大量修改大型字符串的應(yīng)用程序中才能看到明顯的性能提升。那么是否可以用Rope替代StringBuffer做append生成字符串(比如我要的生成xml)。作者也說啦:
      “由于 Rope 的附加性能通常比 StringBuffer 好,這時使用 rope 是否有意義呢?答案還是否。不論何時將輸入的數(shù)據(jù)組合在一起形成格式化輸出時,最漂亮最有效的方法是使用模板引擎(例如 StringTemplate 或 FreeMarker)。這種方法不僅能干凈地將表示標(biāo)記與代碼分開,而且模板只進(jìn)行一次編譯(通常編譯為 JVM 字節(jié)碼),以后可以重用,從而使它們擁有極佳的性能特征。”

        我用Rope for java替代了StringBuffer做XML生成,效率提升在5%-30%左右,xml字符串不是很長,這個提升顯然有限,也帶來了不必要的復(fù)雜度。因此最后還是用Velocity模板引擎來生成XML,測試的結(jié)果效率并沒有多少改善,但是顯然更容易維護(hù)和開發(fā)了。回到Rope的話題,我用Ruby實(shí)現(xiàn)了個版本,Rubyforge上有一個Rope的實(shí)現(xiàn),但是看了源碼,與paper所述算法有點(diǎn)差異,因此照著Rope for java也實(shí)現(xiàn)了一個Rope4r。測試的結(jié)果證明在長字符串的累積操作上,Rope4r的append比之String的+=性能可以快上3倍左右,而如果采用String的<<操作,不是immutable的,當(dāng)然是最快了;比較郁悶的是slice和insert操作都比String的慢上幾倍,因?yàn)镽uby的String、Array的內(nèi)建對象都是直接用c寫成并做了優(yōu)化的,我猜測原因在這。


    posted @ 2008-05-05 18:41 dennis 閱讀(3450) | 評論 (0)編輯 收藏

        我們現(xiàn)在做的項(xiàng)目是典型的小型項(xiàng)目,整個組也就4、5個人,一個迭代周期基本在兩周左右。盡管沒有明確有“迭代”這么說法,卻是以業(yè)務(wù)人員的策劃案做分期實(shí)現(xiàn)。這個分期,按我的理解其實(shí)就是迭代。最近發(fā)現(xiàn)的一個問題是,在迭代開始后,業(yè)務(wù)人員卻沒有辦法保證需求在這個迭代周期完成前的穩(wěn)定性,甚至在各個模塊集成之前,大家就提出N多意見,并且這些意見很多時候都是前后矛盾的。特別是在客戶端的開發(fā)上,顯然,客戶端UI和操作習(xí)慣方面是最多變的地方。可憐我們公司唯一的MM程序員快陷入變更頻繁的泥潭了,改過去改回來是家常便飯。其實(shí)也是她過于老實(shí),要我來說,你們要改,可以,但是我要向業(yè)務(wù)人員確認(rèn),他是我唯一的變更來源,你們有什么需求向他反應(yīng),他來收集和甄別。在《敏捷軟件開發(fā)》中說到,迭代開始后,客戶就同意不再更改當(dāng)次迭代中的素材的定義和優(yōu)先級別,可惜這一點(diǎn)貌似很難做到了,業(yè)務(wù)人員經(jīng)常屈從于管理層或者其他小組意見的壓力。在我看來,在當(dāng)次迭代完成前的所有建議或者說需求,都可以收集起來,由業(yè)務(wù)人員負(fù)責(zé)收集、甄別和決定,放入下一個迭代版本的開發(fā),因?yàn)槲覀兊牡芷谝话阋苍趦芍茏笥遥@個周期足夠辨別這些需求的合理性和響應(yīng)需求的及時性,而不是像現(xiàn)在這樣大家七嘴八舌地提意見,技術(shù)人員疲于奔命,乃至于發(fā)脾氣(入夏真是脾氣壞的季節(jié));系統(tǒng)各部分遲遲無法進(jìn)行集成測試,造成新的修改意見沒有做完,預(yù)定的迭代版本的更無法按時完成的局面。

    posted @ 2008-04-28 21:04 dennis 閱讀(1730) | 評論 (4)編輯 收藏

        山僧昔在雙徑歸堂,未及一月,忽于睡中疑著萬法歸一,一歸河處?自此疑情頓發(fā),廢寢忘食,東西不辨,晝夜不開,開單展缽,屙屎放尿,至于一動一靜,一語一 默,總只是個一歸何處,更無絲毫異念,了不可得。正如釘釘膠粘,搖撼不動,雖在稠人廣眾之中,如無一人相似。從朝至暮,從暮至朝,澄澄湛湛,卓卓巍巍,純 清絕點(diǎn),一會萬年,境寂人忘,如癡如兀,不覺至第六日,隨眾在三塔諷經(jīng)次,抬頭看見五祖演和尚真,驀然觸發(fā)日前仰山老和尚問拖死尸句子,直得虛空粉碎,大 地平沈,物我兩忘,如鏡照境,百丈野狐,狗子佛性,青州布衫,女子出定語,從頭密舉驗(yàn)之,無不了了。般若妙用,信不誣矣。(見《古尊宿語錄》)

        想來王陽明龍場悟道的感覺也不過如此。王陽明的心學(xué)歸結(jié)就是“致良知”三個字,不說“致”,僅“良知”二字就是何等寶貴?看看安徽阜陽兒童們的命運(yùn),這個接二連三發(fā)生詭異事件的地方,當(dāng)?shù)氐墓蛡兛捎?#8220;良知”在心中?我們保留了文化傳統(tǒng),卻拋棄了傳統(tǒng)文化。

    posted @ 2008-04-28 17:33 dennis 閱讀(498) | 評論 (0)編輯 收藏

         在blogjava和javaeye上的兩個blog的頂部廣告都售出了,熱烈慶祝:) 準(zhǔn)備啥時候去綁定個支付寶,把我的一塊五毛錢取出來,剛好夠買兩個包子 。還是阿里媽媽好,來的實(shí)在,google廣告的1.2美元這輩子看來是指望不上了,人民幣還在持續(xù)升值中......

    posted @ 2008-04-23 09:38 dennis 閱讀(409) | 評論 (2)編輯 收藏

        推薦兩篇blog:
    《java NIO 類庫selector機(jī)制解析(上)》
    《java NIO 類庫selector機(jī)制解析(下)》

        有一個奇怪的現(xiàn)象引出的話題,為了Selector.wakeup功能做到跨平臺,每個Selector.open()時,在Windows會建立一對自己和自己的loopbackTCP連接;在Linux上會開一對pipepipeLinux下一般都是成對打開)。java為了跨平臺真是無所不用其極,此中冷暖誰知啊。

    posted @ 2008-04-22 18:12 dennis 閱讀(552) | 評論 (0)編輯 收藏

        最近碰到個需求,計算游戲得分的規(guī)則,類似這樣:

    游戲人數(shù)

    第一名獲得賭注

    第二名獲得賭注

    第三名獲得賭注

    第四名獲得賭注

    二人

    100%

    0%

    二人(出現(xiàn)2個第1名時)

    50%

    50%

     

     

    三人

    70%

    30%

    0%

    三人出現(xiàn)3個第1名時

    33.3333%

    33.3333%

    33.3333%

     

    三人(出現(xiàn)2個第1名時)

    50%×2

    0%

     

     

    ......
    ......
        這些獎勵規(guī)則沒有什么規(guī)律,隨著人數(shù)增多,就越發(fā)復(fù)雜了,并且業(yè)務(wù)人員可能隨時改變這些規(guī)則。
        顯然,獎勵規(guī)則可以采用策略模式,定義策略接口,根據(jù)游戲人數(shù)定義不同的規(guī)則,本質(zhì)上就是利用動態(tài)的多態(tài)調(diào)用。可以想見,還是少不了復(fù)雜的case...when語句,以及繁多的代碼。恰好最近讀《unix編程藝術(shù)》和《代碼大全2》,兩者都提到一個結(jié)論:人類閱讀復(fù)雜數(shù)據(jù)結(jié)構(gòu)遠(yuǎn)比復(fù)雜的控制流程容易,或者說數(shù)據(jù)驅(qū)動開發(fā)是非常有價值的。《代碼大全2》聲稱這個是表驅(qū)動法。因此,這個獎勵系數(shù)的計算,能否轉(zhuǎn)化成一個查表過程呢?注意到,在游戲中,名次是根據(jù)個人的積分在所有玩家中的排位來決定,大概會有這么個排序的玩家積分?jǐn)?shù)組[100,50,3],這個數(shù)組表示3個玩家,第一名100分,第二名50分,第三名才3分。依據(jù)規(guī)則,第一名的獎勵系數(shù)就是0.7,第二名就是0.3。我想到類似這樣的數(shù)組其實(shí)都有個形式表示它們的內(nèi)置結(jié)構(gòu),比如[100,50,3]數(shù)組的“結(jié)構(gòu)”是"111",代表3個位置都有一個人。將"111"作為關(guān)鍵碼去查表不就OK了?
        將每個排好序的積分?jǐn)?shù)組解碼為這樣的關(guān)鍵碼,然后去查預(yù)先寫好的獎勵系數(shù)表,這個獎勵系數(shù)表大概類似:
      @@award_rate_hash={
        :
    "2"=>{
          :
    "11"=>{:"1"=>1,:"2"=>0},
          :
    "20"=>{:"1"=>0.5,:"2"=>0.5}
        },
        :
    "3"=>{
          :
    "111"=>{:"1"=>0.7,:"2"=>0.3,:"3"=>0},
          :
    "300"=>{:"1"=>0.33},
          :
    "201"=>{:"1"=>0.5,:"3"=>0},
          :
    "120"=>{:"1"=>1,:"2"=>0}
        },
        :
    "4"=>{
          :
    "1111"=>{:"1"=>0.65,:"2"=>0.30,:"3"=>0.05,:"4"=>0},
          :
    "4000"=>{:"1"=>0.25},
          :
    "3001"=>{:"1"=>0.33,:"4"=>0},
          :
    "1300"=>{:"1"=>1,:"2"=>0},
          :
    "2020"=>{:"1"=>0.5,:"3"=>0},
          :
    "1201"=>{:"1"=>0.7,:"2"=>0.15,:"4"=>0},
          :
    "1120"=>{:"1"=>0.7,:"2"=>0.3,:"3"=>0},
          :
    "2011"=>{:"1"=>0.35,:"3"=>0.3,:"4"=>0}
        }      
      }
        一個三級hash表,首先根據(jù)玩家人數(shù)查到特定的系數(shù)表,比如要查3個玩家、積分?jǐn)?shù)組是[100,50,3]的獎勵系數(shù)表就是  @@award_rate_hash[:"3"],然后積分?jǐn)?shù)組[100,50,3]解碼為:"111",繼續(xù)查,如此規(guī)則的獎勵系數(shù)表就是@@award_rate_hash[:"3"][:"111"]——也就是 {:"1"=>0.7,:"2"=>0.3,:"3"=>0},那么查積分是100的玩家系數(shù)就是@@award_rate_hash[:"3"][:"111"][([100,50,3].index(100)+1).to_s.to_sym],也就是:"1"=>0.7[100,50,3].index(100)+1就是積分100的玩家在數(shù)組中的名次(即1),也就是:"1"指向的結(jié)果0.7。其他玩家的查表過程與此類似,不細(xì)說了。
        這樣,我們所有的獎勵規(guī)則就是維護(hù)這么一張hash表,這個表看起來復(fù)雜,其實(shí)完全可以自動生成,讓業(yè)務(wù)人員來提供樣例數(shù)據(jù),解碼樣例數(shù)據(jù)并生成這個表是很簡單的事情。積分?jǐn)?shù)組的“解碼”,我給一個Ruby版本:
       #解碼數(shù)組為字符串關(guān)鍵碼
      def decode_array(array)
        len
    =array.size
        trace_list
    =[]
        result
    =[]
        len.times do 
    |time|
          result[time]
    =0   
          trace_list[time]
    =false
        end
        array.each_with_index do 
    |item,index|
          result[index]
    =count_times(array,trace_list,index,len)
        end
        
    return result.join('').to_sym
      end
      
    def count_times(array,trace_list,index,len)
        item
    =array[index]
        result
    =0
         (index..len).each do 
    |i|
          
    if array[i]==item and !trace_list[i]
            result
    +=1
            trace_list[i]
    =true
          end
        end
        
    return result
      end


    posted @ 2008-04-17 19:50 dennis 閱讀(4202) | 評論 (1)編輯 收藏

    僅列出標(biāo)題
    共56頁: First 上一頁 26 27 28 29 30 31 32 33 34 下一頁 Last 
    主站蜘蛛池模板: 一级毛片免费播放| 2019中文字幕免费电影在线播放 | 亚洲欧洲∨国产一区二区三区| 又长又大又粗又硬3p免费视频| 国产成人精品久久亚洲| 欧美三级在线电影免费| 久久久99精品免费观看| 久久精品国产亚洲AV忘忧草18| 免费无码又爽又刺激高潮的视频 | 好吊妞788免费视频播放| 黄页网址在线免费观看| 激情综合亚洲色婷婷五月| 久久久久亚洲Av片无码v| 亚洲精品蜜桃久久久久久| 亚洲区不卡顿区在线观看| 亚洲免费视频网站| 国产精品免费久久久久久久久 | 114级毛片免费观看| 免费精品一区二区三区第35| kk4kk免费视频毛片| 免费在线观看一区| 老外毛片免费视频播放| 综合偷自拍亚洲乱中文字幕| 最新亚洲精品国偷自产在线| 久久久久久亚洲精品影院| 亚洲人成人一区二区三区| 精品国产亚洲一区二区在线观看| 精品成在人线AV无码免费看| 日本免费久久久久久久网站| 久久精品国产这里是免费| 亚洲精品无码成人| 亚洲日本VA午夜在线影院| 亚洲爆乳无码专区| 亚洲国产精品lv| 亚洲AV成人无码久久精品老人| 国产色婷婷精品免费视频| 精品熟女少妇av免费久久| 国产免费一区二区三区| 国产一级婬片A视频免费观看| 亚洲日产乱码一二三区别 | 亚洲AV永久无码精品一福利|