<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>MAWP / Drkcore</title><link>http://blog.kzfmix.com/MAWP</link><description>Programming, Music, Snowboarding</description><language>ja</language><lastBuildDate>Tue, 12 Jan 2010 11:15:33 +0919</lastBuildDate><item><title>PythonでWu-Manber</title><link>http://blog.kzfmix.com/entry/1197552786</link><description>&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51FleiIDDuL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Jon Orwant,Jarkko Hietaniemi,John MacDonald &lt;br /&gt;
Oreilly &amp; Associates Inc / ￥ 3,263 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;ビット演算を利用したアルゴリズム。&lt;a href="http://blog.kzfmix.com/entry/1197459258"&gt;Shift-ADD&lt;/a&gt;と違いdifference,insertion,deletionを考慮する。&lt;/p&gt;

&lt;p&gt;可能性を論理和として積み上げていってShift-ORみたいなアプローチで評価するとこだと思う。いまいちちゃんと理解できてないが。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;   for j in range(1,k+1):
       s[j]  = (r[j] &amp;lt;&amp;lt; 1) &amp;amp; Tc
       s[j] |= (r[j-1] | s[j-1]) &amp;lt;&amp;lt; 1
       s[j] |= r[j-1]
       s[j] |= 1
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;あと、perlで@a = @bとやれるところがpythonではa=bとできず、 b = copy.copy(a)なのね。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env python

import copy

def amatch (T,P,k=-1):

   text_length = len(T)
   pattern_length = len(P)
   po2 = map(lambda(x): 1 &amp;lt;&amp;lt; x,range(31))

   if k == -1: k = int(pattern_length/10) + 1

   Table = [0] * 256
   for i in range(pattern_length):
       Table[ord(P[i])] |= po2[i]

   r = [0] * (k+1)
   for i in range(1,k+1):
       r[i] = r[i-1] | po2[i-1]

   mb = po2[pattern_length-1]

   s = [0] * (k+1)
   for i in range(text_length):
       s[0] &amp;lt;&amp;lt;= 1
       s[0] |= 1
       Tc = Table[ord(T[i])]
       s[0] &amp;amp;= Tc

       for j in range(1,k+1):
           s[j]  = (r[j] &amp;lt;&amp;lt; 1) &amp;amp; Tc
           s[j] |= (r[j-1] | s[j-1]) &amp;lt;&amp;lt; 1
           s[j] |= r[j-1]
           s[j] |= 1

       if s[k] &amp;amp; mb:
           return i - pattern_length + 1 if i &amp;gt; pattern_length else 0
       r = copy.copy(s)
   return -1

if __name__ == '__main__':
   print "match: ", amatch("pearl","perl",1)
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Tue, 12 Jan 2010 11:15:33 +0919</pubDate><category>perl</category><category>MAWP</category><category>Python</category></item><item><title>PythonでShift-ADD</title><link>http://blog.kzfmix.com/entry/1197459258</link><description>&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51FleiIDDuL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Jon Orwant,Jarkko Hietaniemi,John MacDonald &lt;br /&gt;
Oreilly &amp; Associates Inc / ￥ 3,263 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;これもビット演算を利用したアルゴリズム。differenceを許容するけどinsertion,deletionは駄目。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env python

from math import *

def shift_ADD (T, P, k=-1):
   text_length = len(T)
   pattern_length = len(P)

   if k == -1: k = int(log(text_length)+1)
   if k == 0:  return T.find(P)
   if pattern_length == 1: return T.find(P)
   if pattern_length &amp;gt; text_length: return -1
   if pattern_length == text_length and P == T: return 0

   bits = int(log(k+1,2)) + 1 # ????
   mask = 1 &amp;lt;&amp;lt; ( bits - 1 )
   ovmask = 0

   for i in range(pattern_length):
       ovmask |= mask
       mask &amp;lt;&amp;lt;= bits

   table = [ovmask &amp;gt;&amp;gt; (bits-1)] * 256

   nmask = 1
   for i in range(pattern_length):
       table[ord(P[i])] &amp;amp;= ~nmask
       nmask &amp;lt;&amp;lt;= bits

   mask = ( 1 &amp;lt;&amp;lt; ( pattern_length * bits )) -1
   state = mask &amp;amp; ~ovmask
   ov = ovmask
   watch = ( k + 1 ) &amp;lt;&amp;lt; ( bits  * ( pattern_length - 1 ) )

   for i in range(text_length):
       state = ((state &amp;lt;&amp;lt; bits) + table[ord(T[i])]) &amp;amp; mask
       ov    = ((ov &amp;lt;&amp;lt; bits) | (state &amp;amp; ovmask))    &amp;amp; mask
       state &amp;amp;= ~ovmask
       if (state | ov) &amp;lt; watch:
           return i - pattern_length + 1

   return -1

if __name__ == '__main__':
   print shift_ADD("perlpethonxx","python",2)
&lt;/code&gt;&lt;/pre&gt;
</description><pubDate>Tue, 12 Jan 2010 11:15:15 +0919</pubDate><category>perl</category><category>MAWP</category><category>Python</category></item><item><title>PythonでShift-OR</title><link>http://blog.kzfmix.com/entry/1197374198</link><description>&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/51FleiIDDuL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Jon Orwant,Jarkko Hietaniemi,John MacDonald &lt;br /&gt;
Oreilly &amp; Associates Inc / ￥ 3,263 ()&lt;br /&gt;
在庫あり。&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Shift-ORってのはshiftしてORとって、どんどこどんどこと0を左送りにしていって最後まで0送りできた場合にパターンマッチ成功。最後がマッチしたかどうかは補数(一番左が0で残りが1)のANDをとって0が帰ってくるかどうかで判断するという文字列検索アルゴリズム。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;#!/usr/bin/env python

def shift_OR_exact (T,P):

   text_length = len(T)
   pattern_length = len(P)

   if pattern_length &amp;gt; text_length: return -1
   if pattern_length == text_length: return 0
   if pattern_length == 1: return T.find(P)

   m1b = (1 &amp;lt;&amp;lt; pattern_length ) -1
   table = [m1b] * 256

   mask = 1
   for i in range(pattern_length):
       table[ord(P[i])] &amp;amp;= ~mask
       mask &amp;lt;&amp;lt;= 1

   watch = 1 &amp;lt;&amp;lt; ( pattern_length - 1 )

   for i in range(text_length):
       i = T.find(P[0],i)
       if i == -1: return -1

       state = m1b

       while i &amp;lt; text_length:
           state = ( state &amp;lt;&amp;lt; 1 ) | table[ord(T[i])]
           if ( state &amp;amp; watch ) == 0:
               return i - pattern_length + 1

           if state == m1b: break
           i += 1

   return -1

if __name__ == '__main__':
   print shift_OR_exact("perlpypythonruby","python")
&lt;/code&gt;&lt;/pre&gt;

&lt;ul&gt;
&lt;li&gt;ビット演算はperlもpythonも似た感じ&lt;/li&gt;
&lt;li&gt;perlのindexはpythonのfind(こっちは組み込みのメソッド)&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Tue, 12 Jan 2010 11:14:41 +0919</pubDate><category>perl</category><category>MAWP</category><category>Python</category></item><item><title>今年は本をよく読んだ気がする</title><link>http://blog.kzfmix.com/entry/1198157480</link><description>&lt;p&gt;SICPからHOPへのコンボがperlを扱う上でとても役立った。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/489471163X/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51ZSMEJ9Y2L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;計算機プログラムの構造と解釈&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    ジェラルド・ジェイ サスマン&lt;br /&gt;
    ピアソンエデュケーション / 4830円 ( 2000-02 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;特にHOPは値段以上の価値があったと思ってるので満足。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1558607013/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41amviSk6nL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Higher-Order Perl: Transforming Programs with Programs&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Mark Jason Dominus&lt;br /&gt;
    Morgan Kaufmann / 5976円 ( 2005-03-28 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;そしてMAWP&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41kjrGzBGWL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jon Orwant&lt;br /&gt;
    Oreilly &amp; Associates Inc / 2716円 ( 1999-07 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;来年もこの調子で。あと、もっとコードを書く。&lt;/p&gt;</description><pubDate>Sat, 20 Dec 2008 09:46:23 +0919</pubDate><category>perl</category><category>SICP</category><category>HOP</category><category>MAWP</category></item><item><title>MAWP14章はProbability</title><link>http://blog.kzfmix.com/entry/1198157079</link><description>&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/21XX27NGMGL.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Jon Orwant,Jarkko Hietaniemi,John MacDonald &lt;br /&gt;
Oreilly &amp; Associates Inc / ￥ 4,054 (1999-07)&lt;br /&gt;
通常3～5週間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;こういうのはRに任す。&lt;a href="http://cse.naro.affrc.go.jp/takezawa/r-tips/r/60.html"&gt;確率分布&lt;/a&gt;とか充実してる。&lt;/p&gt;

&lt;p&gt;15章も統計なのでRで。&lt;/p&gt;

&lt;p&gt;16章は微分とかsmoothingとかSICPな感じなので流し読みして終了。&lt;/p&gt;

&lt;p&gt;ってことで、MAWPも終了。ソート、マトリックス、グラフ、文字列マッチング、暗号あたりが面白かった。&lt;/p&gt;
</description><pubDate>Thu, 20 Dec 2007 22:24:51 +0919</pubDate><category>perl</category><category>R</category><category>MAWP</category></item><item><title>ElGamal暗号</title><link>http://blog.kzfmix.com/entry/1198065229</link><description>&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/511%2BTGdCRjL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jon Orwant&lt;br /&gt;
    Oreilly &amp; Associates Inc / 2553円 ( 1999-07 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;位数が大きな群の離散対数問題が困難であることを安全性の根拠にした&lt;a href="http://ja.wikipedia.org/wiki/ElGamal%E6%9A%97%E5%8F%B7"&gt;暗号化方式&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://f-denshi.com/000TokiwaJPN/01daisu/020gun.html"&gt;巡回群&lt;/a&gt;を利用しているらしい。そういや、ガウス平面上の回転って数学ガールの3章で読んだなと。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797341378/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41xPYoL7N8L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;数学ガール&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    結城 浩&lt;br /&gt;
    ソフトバンククリエイティブ / 1890円 ( 2007-06-27 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;modも回転か何かで考えることが出来るのかね。&lt;/p&gt;</description><pubDate>Wed, 19 Dec 2007 20:54:09 +0919</pubDate><category>perl</category><category>MAWP</category></item><item><title>MAWP 13章はCryptography</title><link>http://blog.kzfmix.com/entry/1197983639</link><description>&lt;p&gt;アンゴウよりアンコウ+日本酒のほうが好きなんだけど。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/21XX27NGMGL.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Jon Orwant,Jarkko Hietaniemi,John MacDonald &lt;br /&gt;
Oreilly &amp; Associates Inc / ￥ 4,054 (1999-07)&lt;br /&gt;
通常3～5週間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;というより、数式を避けてただけだった。ちゃんと読んでみると暗号も面白いかも。
法とか合同をほうとかいいながら読んでた。MAWPの説明だけだと分かりにくかったので&lt;a href="http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/RSA.html"&gt;RSA暗号&lt;/a&gt;を参考にした。&lt;/p&gt;

&lt;p&gt;MAWPにあったSSLeayっていうモジュールがなかったので&lt;a href="http://search.cpan.org/perldoc?Crypt::RSA"&gt;Crypt::RSA&lt;/a&gt;で遊んだ。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;use Crypt::RSA;
use Data::Dumper;

my $rsa = new Crypt::RSA;

my ($public, $private) =
  $rsa-&amp;gt;keygen (
        Identity  =&amp;gt; 'Kzfm Ohkw &amp;lt;xxxx@gmail.com&amp;gt;', 
        Size      =&amp;gt; 1024,
        Password  =&amp;gt; 'drumnbass',
        Verbosity =&amp;gt; 1,
           ) or die $rsa-&amp;gt;errstr();

print Dumper($public);
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;公開鍵&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$VAR1 = bless( {
                 'e' =&amp;gt; 65537,
                 'n' =&amp;gt; '12390802849571403672579795755491999585878694
                         2679376999148135793744998012786068647404317033
                         4506694188629007869741465370712440443624446804
                         8813574622838502197241514075336790104367156693
                         3189856420057871502127203513391621825674392638
                         5941923712730877023358276499112454722795081438
                         05979844138326376749179360228658183',
                 'Version' =&amp;gt; '1.91',
                 'Identity' =&amp;gt; 'Kzfm Ohkw &amp;lt;xxxx@gmail.com&amp;gt;'
               }, 'Crypt::RSA::Key::Public' );
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;おー65537乗してnでmodるのか。&lt;/p&gt;
</description><pubDate>Tue, 18 Dec 2007 22:19:38 +0919</pubDate><category>perl</category><category>MAWP</category></item><item><title>MAWP 12章はNumber Theory</title><link>http://blog.kzfmix.com/entry/1197808469</link><description>&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/21XX27NGMGL.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Jon Orwant,Jarkko Hietaniemi,John MacDonald &lt;br /&gt;
Oreilly &amp; Associates Inc / ￥ 4,054 (1999-07)&lt;br /&gt;
通常3～5週間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;Modularとか。Chinese Remainder Theoremってなにがおもろいんだろうとか思ったが、&lt;a href="http://www.rsa.com/japan/content_library/chinese_rt.pdf"&gt;RSA暗号がらみ&lt;/a&gt;？そのうちちゃんと読んでみる。&lt;/p&gt;

&lt;p&gt;あとMiller-Rabinとかコラッツ予想とかそんな感じ。&lt;/p&gt;
</description><pubDate>Sun, 16 Dec 2007 21:34:42 +0919</pubDate><category>perl</category><category>MAWP</category></item><item><title>MAWP 11章はNumber System</title><link>http://blog.kzfmix.com/entry/1197723577</link><description>&lt;p&gt;perlで複素数とか極座標とか扱うって話
あまり興味がなかったので流した。&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/51kFowwH2zL._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    Jon Orwant&lt;br /&gt;
    Oreilly &amp; Associates Inc / 2960円 ( 1999-07 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;最後の例の&lt;a href="http://ja.wikipedia.org/wiki/%E3%82%BC%E3%83%BC%E3%82%BF%E9%96%A2%E6%95%B0"&gt;リーマンゼータ関数&lt;/a&gt;は面白かった。&lt;/p&gt;
&lt;p&gt;まだ2章くらいしか読んでない数学ガールにも出てくるらしい&lt;/p&gt;
&lt;p&gt;&lt;p&gt;&lt;div class="awsxom"&gt;
    &lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/4797341378/ref=nosim/kaerutyuuihou-22"&gt;
    &lt;img src="http://ecx.images-amazon.com/images/I/41xPYoL7N8L._SL160_.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
    &lt;strong&gt;数学ガール (数学ガールシリーズ 1)&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
    結城 浩&lt;br /&gt;
    ソフトバンククリエイティブ / 1890円 ( 2007-06-27 )&lt;br /&gt;
    &lt;br /&gt;
    &lt;br clear="all" /&gt;
    &lt;/div&gt;&lt;/p&gt;&lt;/p&gt;
&lt;p&gt;これも早く読みたいなぁ。&lt;/p&gt;</description><pubDate>Sat, 15 Dec 2007 22:09:23 +0919</pubDate><category>perl</category><category>MAWP</category></item><item><title>MAWP 10章はGeometric Algorithm</title><link>http://blog.kzfmix.com/entry/1197720702</link><description>&lt;p&gt;さわりだけなので、さらっとしている。&lt;/p&gt;

&lt;p&gt;&lt;div class="awsxom"&gt;
&lt;a href="http://www.amazon.co.jp/exec/obidos/ASIN/1565923987/ref=nosim/kaerutyuuihou-22"&gt;
&lt;img src="http://ecx.images-amazon.com/images/I/21XX27NGMGL.jpg" align="left" hspace="5" border="0" alt="ProductName" class="image" /&gt;
&lt;strong&gt;Mastering Algorithms With Perl&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;
Jon Orwant,Jarkko Hietaniemi,John MacDonald &lt;br /&gt;
Oreilly &amp; Associates Inc / ￥ 4,054 (1999-07)&lt;br /&gt;
通常3～5週間以内に発送&lt;br /&gt;
&lt;br clear="all" /&gt;
&lt;/div&gt;&lt;/p&gt;

&lt;p&gt;ちゃんと学びたければC++とかの本を探したほうがよいのかな？pymolとかAvogadroのソースを読むのがいいのかもしれんなぁ。&lt;/p&gt;

&lt;p&gt;ドッキングシミュレーションとか色々気に入らない部分があるので、手を加えたい部分があったりとか、&lt;a href="http://www.kzfmix.com/blosxom_archive/Computer/Informatics/Caver070712.html"&gt;Caver&lt;/a&gt;みたいなの自分で書いてみたかったりするんだけどそういう書籍はないもんかな。&lt;/p&gt;
</description><pubDate>Sat, 15 Dec 2007 22:05:12 +0919</pubDate><category>chemoinformatics</category><category>perl</category><category>MAWP</category></item></channel></rss>