<?xml version="1.0" encoding="UTF-8" ?><rdf:RDF 
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xml:lang="ja">
  <channel rdf:about="http://www28.atwiki.jp/fmemo/">
    <title>fmemo</title>
    <link>http://www28.atwiki.jp/fmemo/</link>
    <description>fmemo</description>

    <dc:language>ja</dc:language>
    <dc:date>2012-04-09T20:10:41+09:00</dc:date>

    <items>
      <rdf:Seq>
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/21.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/65.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/32.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/67.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/2.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/64.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/66.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/34.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/1.html" />
                <rdf:li rdf:resource="http://www28.atwiki.jp/fmemo/pages/13.html" />
              </rdf:Seq>
    </items>
	
		
    
  </channel>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/21.html">
    <title>HDF4/HDF5</title>
    <link>http://www28.atwiki.jp/fmemo/pages/21.html</link>
    <description>
      #contents

このページは書きかけである。

* HDF4

**インストール

*** fink

 $ fink install hdf

HDF4は自己記述型のファイルである。hdpコマンドを使えばヘッダを読んだり、バイナリにダンプしたりできる。

** hdp

HDFファイルをダンプするためのコマンド

*** ヘッダを書き出したいとき

 $ hdp dumpsds -h inputfile.hdf 

*** 2番目のデータを書き出したいとき

 $ hdp dumpsds -i 2 -d inputfile.hdf

*** アスキーではなくバイナリで書き出したいとき

 $ hdp dumpsds -b inputfile.hdf

(工事中)

参考: http://ryuiki.agbi.tsukuba.ac.jp/~nishida/MEMO/HDF.html

* HDF5

HD5はそれ以前のHDF4と互換性がないことに注意。

** インストール

*** fink

 $ fink install hdf5

*** ソースから

 $ sudo mkdir /usr/local/hdf5-1.8.3-g95
 $ wget ftp://ftp.hdfgroup.org/HDF5/current/src/hdf5-1.8.3.tar.gz
 $ tar xvzf hdf5-1.8.3.tar.gz
 $ cd hdf5-1.8.3
 $ ./configure --prefix=/usr/local/hdf5-1.8.3-g95 --enable-fortran F9X=g95 
 $ make
 $ sudo make install
 $ sudo ln -s /usr/local/hdf5-1.8.3-g95 /usr/local/hdf5

** h5dump

h5dumpはHDF5を読むためのコマンド。

*** ヘッタを書き出したい

 $ h5dump -H filename.h5 &gt; header.txt

*** ヘルプを読みたい

 $ h5dump -h 

*** データ/Data/variable1をバイナリで書き出し、hoge.binという名前にしたい。

 $ h5dump -d /Data/variable1 -b -o hoge.bin hoge.h5

***　環境変数
 $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/hdf5-X.X.X/lib

*** コンパイルオプション

 $ g95 -I/usr/local/hdf5-1.8.3-g95/include -L/usr/local/hdf5-1.8.3-g95/lib \
 &gt; -L/usr/local/zlib-1.2.3/lib -lhdf5 -lhdf5_fortran -lhdf5_hl -lhdf5hl_fortran  -lz  h5ex_d_alloc.f90


----    </description>
    <dc:date>2012-04-09T20:10:41+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/65.html">
    <title>Google英文ライティング</title>
    <link>http://www28.atwiki.jp/fmemo/pages/65.html</link>
    <description>
      #html2(){{{{{{
&lt;iframe src=&quot;http://rcm-jp.amazon.co.jp/e/cm?t=fff000-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4770041241&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr&quot; style=&quot;width:120px;height:240px;&quot; scrolling=&quot;no&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
}}}}}}

*検索をおこなう際のコツ(P.30)
**ダブルクォーテーション

検索語をダブルクォーテーションで囲むと、その単語をその順番で含む場合にのみヒットするようになる。例えば、「tradition has it that」は、「言い伝えによると〜」という慣用表現だが、これを使った例文を探したいときは以下のように前後をダブルクォーテーションで囲んで検索する。
 &quot;tradition has it that&quot;

以下のような単語はダブルクォーテーションなしで入力すると無視される。
-it, thatなどの代名詞
-a, theなどの冠詞
-for, at, in, onなどの前置詞
-@,\,%,=,?などの記号

**ワイルドカード

ダブルクォーテーションで囲んだ検索語の途中にアスタリスクを含めると、その場所には任意の語数の任意の単語が入ってよいという意味になる。例えば、&quot;rumor has it that * bankruptcy&quot;で検索すると「噂によれば〜倒産」という文章をさがすことができる。

* うまくヒットしないとき (P.68)
ヒット数が多すぎるときは語数を増やす。逆に、ヒット数が少なすぎるときは語数を減らす。検索語数は3-6語位が適当。

*表現に自信がないとき
前後にダブルクォーテーションをつけて検索する。ヒット数が多ければ使われているということ。

*複数の候補があるとき
ヒット数を使用頻度の目安にする。

*盗作(plagiarism)を避けるために注意すべきこと (P.150)

-まったく同じ単語を使うときは最長で５words程度までなら許容される。
-他者の文章を引用するときは、地の文と明確に区別できるようにする。
-Common knowledgeならば5words以上でも許容される。Common knowledgeとは、慣用的な表現、諺、常套句、一般的な概念のこと。    </description>
    <dc:date>2011-01-19T21:19:52+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/32.html">
    <title>その他</title>
    <link>http://www28.atwiki.jp/fmemo/pages/32.html</link>
    <description>
      #contents

*パスワード認証によるアクセス制限

**.htaccessファイルをつくる。

 AuthUserFile /home/user/pass/.htpasswd
 AuthGroupFile /dev/null
 AuthName &quot;please enter your ID and password&quot;
 AuthType Basic
 require valid-user

認証をかけたいディレクトリに上記のようなファイルをおく。
-1行目はパスワードファイルの置き場所を絶対パスで指定する。

**.htpasswd

コマンドプロンプトからhtpasswdコマンドを使ってパスワードファイルを作成する。
 $ htpasswd -cb .htpasswd username password
既存のパスワードファイルに追記したいときは、cオプションを省いて以下のようにする。
 $ htpasswd -b .htpasswd username2 password2

パスワードファイルはwebから見えない場所においておくこと。

** パーミッション

.htaccessと.thpasswdのパーミッションは604(-rw----r--)にしておく。

*MS-DOSプロンプトで半角/全角を押しても日本語入力に切り替わらないとき
「Alt」+「半角/全角」で切り替わる。

*configure, make, make installについて
アプリケーションをソースファイルからインストールするときの一般的な手順について記述する。GNUのcoreutilsを例に挙げる。まず、ソースファイルはtarでアーカイブされた後、gzip、bzip2、もしくはxzで圧縮された状態で配布されていることが多い。これをダウンロードしてきて解凍、展開する。

 $ wget ftp://ftp.gnu.org/gnu/coreutils/coreutils-7.4.tar.xz
 $ xzcat coreutils-7.4.tar.xz |tar xvf -  

次に、今展開したディレクトリに降りて、INSTALL, READMEなどを読む。

 $ cd coreutils-7.4
 $ less INSTALL
 $ less README

次にconfigureをする。これはマシンの環境にあわせてMakefileを作成するためのコマンドである。このときに適用可能なオプションは./configure --helpで確認できることが多い。

 $ ./configure --help

configureの時によく使われるオプションとしてprefixがある。これは、インストール先のディレクトリを陽に指定するオプションである。これがない場合は、/usr/local/以下にインストールされる。

 $ ./configure --prefix=/usr/local/coreutils-7.4 

そして次にmakeコマンドでソースをコンパイルする。

 $ make

make test または、make check で、実際にmakeを実行せずに、エラーが出ないかどうかを確認できることが多い。

 $ make check
 $ make test

makeに失敗したあとや異なる環境でmakeをやり直すときはmake cleanとすると初期化できることが多い。

 $ make clean

makeが成功したら、make installでソースファイルをインストール先のディレクトリにコピーする。この作業はroot権限下でおこなう必要がある。

 $ sudo mkdir /usr/local/coreutils-7.4
 $ sudo make install
 $ sudo ln -s /usr/local/coreutils-7.4 /usr/local/coreutils

最後に、インストール先のディレクトリをパスに追加する。bashを使っているならば.bashrcに次のような行を追加する。
 
 $ export PATH=$PATH:/usr/local/coreutils

*ちょっとした計算をしたいときにはどのコマンドがよい？

irb(インタラクティブruby)をお勧めする

 $ irb
 &gt;&gt; 1+2
 =&gt; 3


* 一行野郎(ワンライナ)たち

** 母音(aeiou)を含まない英単語を調べ、長い順に20個表示させる

 $ grep -iv &#039;[aeiou]&#039; /usr/share/dict/words | awk &#039;{print length($1),$1}&#039; | sort -k1nr | head -20

参考: [[無精で短気で傲慢なプログラマ&gt;http://68user.blog27.fc2.com/blog-entry-36.html]]

** QWERTY配列のQがある段を使ってできる英単語を調べ、長い順に20個表示させる

 $ grep &#039;^[qwertyuiop]*$&#039; /usr/share/dict/words | awk &#039;{print length($1), $1}&#039; | sort -k1nr  | head -20

参考: [[kikulog&gt;http://www.cp.cmc.osaka-u.ac.jp/~kikuchi/weblog/]]

** 英単語の単語の長さのヒストグラム

 $ awk  &#039;{hash[length($1)]++}END{for(i=1; i&lt;=25; i++)print i,hash[i]}&#039;  /usr/share/dict/words 

** あるディレクトリの下にあるファイル属性のハッシュ値をファイルに書き込む。

 $ find /Users/name -type f -exec ls -1d {} \; | xargs openssl dgst -md5 &gt; outputfile

参考: http://sawano.members.icraft.jp/wp/2009/02/27/1255.html

* Perl

** Unixコマンドの処理結果を変数に代入

バッククォートを使う
 $VAR=`date`

** Unixコマンドをperlから実行

system関数、exec関数を使う

** 一行野郎(ワンライナ)

以下の例はperlでHello, World!を出力する一行野郎である。
 $ perl -le &#039;print &quot;Hello, World!&quot;&#039;
 Hello, World!
- lオプション: 自動的に改行する。 
- eオプション: 後ろに一行野郎のプログラムがあることを示す。　

* google

** ドメイン指定

検索するときに site:**.**でドメイン指定できる。

教育機関のみから探したいとき
 hoge site:ac.jp

* イーモバイルの設定(for Mac OSX 10.5)

システム環境設定=&gt;ネットワーク=&gt;左側のプラスボタンで新しいサービスを追加(ダイヤルアップ)
構成名=em, 電話番号=*99***1#, アカウント名em, パスワードem 
詳細=&gt;PPPで必要なときに自動的に接続にチェックを入れる

* word

**Macのwordで上部が隠れてしまい、ウインドウを移動できない

文章を少し変更したのちに、「閉じる」を選ぶと上の部分が降りてきて見えるようになるので
そこでウインドウを少し移動させて、「キャンセルを選べば良い」


----    </description>
    <dc:date>2011-01-14T15:11:23+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/67.html">
    <title>make</title>
    <link>http://www28.atwiki.jp/fmemo/pages/67.html</link>
    <description>
      makeは依存関係にある処理をおこなうときにつかわれるコマンドである。その処理は、通常Makefileと呼ばれるファイルに書かれる。

(書きかけ)    </description>
    <dc:date>2011-01-11T10:56:43+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/2.html">
    <title>メニュー</title>
    <link>http://www28.atwiki.jp/fmemo/pages/2.html</link>
    <description>
      // 検索
* サイト内検索
#javascript(){{
&lt;script type=&quot;text/javascript&quot; charset=&quot;UTF-8&quot; src=&quot;http://www28.atwiki.jp/fmemo/js/search&quot;&gt; &lt;/script&gt;
}}
* メニュー
- [[トップページ]]
- [[メールフォーム]]
**計算機関係
- [[AWK]]
- [[BASH]]
- [[Emacs_tips]]
- [[Emacsの基本コマンド]]
- [[Fortran]]
- [[GMT]]
- [[gnuplot]]
- [[GNU_Screen]]
- [[GrADS]]
- [[HDF4/HDF5]]
- [[ImageMagick]]
- [[.irbrc]]
- [[LAPACK on MAC OS X]]
- [[lftp]]
- [[MacOSX]]
- [[make]]
- [[Perl]]
- [[Tcsh/csh]]   
- [[Thunderbird]]
- [[Unixコマンド]]
- [[vim(vi)_tips]]
- [[vim(vi)の基本コマンド]]
- [[.vimrc]]
- [[Zsh]]
- [[.zshrc]]
- [[シェル比較]]
- [[その他]]
**IDL
- [[IDL-インストール方法]]
- [[IDL-基本事項]]
- [[IDL-変数]]
- [[IDL-Window操作]]
- [[IDL-画像]]
- [[IDL-1次元グラフ]]
- [[IDL-HDF5]]
- [[IDL-データの入出力]]
- [[IDL-参考サイト]]
- [[IDL-落ち穂拾い]]
- [[IDL-未整理事項]]

**読書ノート

-[[Google英文ライティング]]


**趣味

- [[ブラックジャック]]
- [[バカラ]]

//-[[プラグイン紹介&gt;プラグイン]]
//-[[まとめサイト作成支援ツール]]
//#javascript(){{
//&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
//amazon_ad_tag = &quot;fff000-22&quot;; amazon_ad_width = &quot;160&quot;; amazon_ad_height = &quot;600&quot;;//--&gt;&lt;/script&gt;
//&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.assoc-amazon.jp/s/ads.js&quot;&gt;&lt;/script&gt;
//}}
// アマゾンリンク
#javascript(){{
&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
amazon_ad_tag = &quot;fff000-22&quot;; amazon_ad_width = &quot;160&quot;; amazon_ad_height = &quot;600&quot;; amazon_ad_exclude = &quot;グレゴリオ&quot;;//--&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.assoc-amazon.jp/s/ads.js&quot;&gt;&lt;/script&gt;
}}
* 更新履歴
#recent(30)
// 忍者アクセス解析
#javascript(){{
&lt;script type=&quot;text/javascript&quot; src=&quot;http://x6.shichihuku.com/ufo/080377800&quot;&gt;&lt;/script&gt;
}}
// 忍者滞在時間
#javascript(){{
&lt;script type=&quot;text/javascript&quot; src=&quot;http://st1.shinobi.jp/s/0037130.js&quot;&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href=&quot;http://www.ninja.co.jp/&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;http://st1.shinobi.jp/ns/0037130&quot; alt=&quot;忍者滞在時間&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;/noscript&gt;
}}
// 忍者カウンター　
#javascript(){{
&lt;script type=&quot;text/javascript&quot; src=&quot;http://ct2.nukenin.jp/sc/1278364&quot;&gt;&lt;/script&gt;
}} 
// 時計
&amp;fclock()
// 通常カウンター
合計&amp;counter(total)
今日&amp;counter(today)
昨日&amp;counter(yesterday)
// googleアクセス解析
#javascript(){{
&lt;script type=&quot;text/javascript&quot;&gt;
var gaJsHost = ((&quot;https:&quot; == document.location.protocol) ? &quot;https://ssl.&quot; : &quot;http://www.&quot;);
document.write(unescape(&quot;%3Cscript src=&#039;&quot; + gaJsHost + &quot;google-analytics.com/ga.js&#039; type=&#039;text/javascript&#039;%3E%3C/script%3E&quot;));
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
try {
var pageTracker = _gat._getTracker(&quot;UA-5779426-5&quot;);
pageTracker._trackPageview();
} catch(err) {}&lt;/script&gt;
}}
//　忍者時計
//#javascript(){{
//&lt;script type=&quot;text/javascript&quot; src=&quot;http://fmemo.clk1.shinobi.jp/js/&quot; charset=&quot;UTF-8&quot;&gt;&lt;/script&gt;
//}}
// 忍者滞在者数
//#javascript(){{
//&lt;script type=&quot;text/javascript&quot; src=&quot;http://fmemo.vis1.shinobi.jp/js/&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
//}}

// 6hit解析
#javascript(){{
&lt;script type=&quot;text/javascript&quot; src=&quot;http://fkd000.6hit.jp/c&quot;&gt;&lt;/script&gt;
}}    </description>
    <dc:date>2011-01-11T10:53:31+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/64.html">
    <title>ブラックジャック</title>
    <link>http://www28.atwiki.jp/fmemo/pages/64.html</link>
    <description>
      * ブラックジャックのルール

勝負とディーラーとプレイヤーの間でおこなわれる。
はじめにディーラーにおもてが上で1枚、裏が上で1枚、プレイヤーに表が上で2枚配られる。その後、プレイヤーはカードをもう一枚もらう(Hit)か、もうカードをもらわない(Stay)かを決める。カードの合計が21以下で大きいほうが勝ちである。

* インシュランス

ディーラーの見せ札がAのときにインシュランスをおこなうことができる。これは何かと言うと、賭けているチップの半額を出すことによってディーラーがブラックジャックとなる状況に備えるというものである。インシュランスをおこなってディーラーがブラックジャックでない場合、インシュランスとして差し出したチップは回収される。インシュランスをおこなってディーラーがブラックジャックの場合、インシュランスとして差し出したチップは回収されるが、賭けているチップはプレイヤーに返還される。


* pair betの確率

- perfect pair スート、数字が同じ
- colored pair スートが異なるが、同色、数字が同じ
- mixed pair スートの色が異なるが、数字が同じ

* todo

- ブラックジャックそれぞれのハンドの出現確率は?
- 特殊役の出現確率は?
- インシュランスはすべきか?
- pair betはすべきか?
- ディーラーの見せ札別の勝利確率

* ベーシックストラテジー
**ハードハンド
|  |2|3|4|5|6|7|8|9|10|A|
| 8|H|H|H|H|H|H|H|H|H|H|
| 9|H|D|D|D|D|H|H|H|H|H|
|10|D|D|D|D|D|D|D|D|H|H|
|11|D|D|D|D|D|D|D|D|D|H|
|12|H|H|S|S|S|H|H|H|H|H|
|13|S|S|S|S|S|H|H|H|H|H|
|14|S|S|S|S|S|H|H|H|H|H|
|15|S|S|S|S|S|H|H|H|H|H|
|16|S|S|S|S|S|H|H|H|H|H|
|17|S|S|S|S|S|S|S|S|S|S|
**ソフトハンド
|  |2|3|4|5|6|7|8|9|10|A|
|A,2|H|H|H|D|D|H|H|H| H|H|
|A,3|H|H|H|D|D|H|H|H| H|H|
|A,4|H|H|D|D|D|H|H|H| H|H|
|A,5|H|H|D|D|D|H|H|H| H|H|
|A,6|H|D|D|D|D|H|H|H| H|H|
|A,7|S|D|D|D|D|S|S|H| H|H|
|A,8|S|S|S|S|S|S|S|S| S|S|
|A,9|S|S|S|S|S|S|S|S| S|S|
**ペア
|  |2|3|4|5|6|7|8|9|10|A|
|2,2|P|P|P|P|P|P|H|H| H|H|
|3,3|P|P|P|P|P|P|H|H| H|H|
|4,4|H|H|H|P|P|H|H|H| H|H|
|5,5|D|D|D|D|D|D|D|D| H|H|
|6,6|P|P|P|P|P|H|H|H| H|H|
|7,7|P|P|P|P|P|P|H|H| H|H|
|8,8|P|P|P|P|P|P|P|P| P|P|
|9,9|P|P|P|P|P|S|P|P| S|S|
|10,10|S|S|S|S|S|S|S|S|S|S|
|A,A|P|P|P|P|P|P|P|P| P|P|
(工事中)    </description>
    <dc:date>2011-01-10T19:42:20+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/66.html">
    <title>バカラ</title>
    <link>http://www28.atwiki.jp/fmemo/pages/66.html</link>
    <description>
      このページはwikipediaのバカラの項目(日本語版と英語版)を参考にしている。

*はじめに

バカラでは、仮想的なバンカーとプレイヤーの勝負がおこなわれる。賭けの参加者はバンカーの得点が多いか、プレイヤーの得点が多いか、あるいは引き分けになるかに対して賭けをおこなう。

* 得点の計算方法

Aは1点、2-9の札はその数字、10と絵札は0点となる。得点が10を上回ったときは下一桁の数字を得点とする。

* ゲームの流れ

まずディーラーはバンカーサイドとプレイヤーサイドの両方に2枚づつカードを配る。この時点で、どちらかの得点が8点もしくは9点だった場合はそこで終了となる。両者の得点が6点もしくは7点のときもそこで終了となる。それ以外の場合は、以下の基準に従って、３枚目のカードを引く。そして、両者の点数を比べて勝負を決める。得点の多いほうが勝ちである。

**プレイヤーの行動基準

もし、プレイヤーの点数が5点以下なら三枚目のカードを引く(Hit)。それ以外の場合は引かない(Stand)。

**バンカーの行動基準

***プレイヤーが3枚目のカードを引いていない場合
バンカーの点数が点以下ならHit。それ以外の場合はStand。

***プレイヤーが3枚目のカードを引いている場合

-プレイヤーの3枚目のカードが2または3のとき、バンカーの点数が4点以下ならHit。それ以外の場合はStand
-プレイヤーの3枚目のカードが4または5のとき、バンカーの点数が5点以下ならHit。それ以外の場合はStand
-プレイヤーの3枚目のカードが6または7のとき、バンカーの点数が6点以下ならHit。それ以外の場合はStand
-プレイヤーの3枚目のカードが8のとき、バンカーの点数が2点以下ならHit。それ以外の場合はStand
-プレイヤーの3枚目のカードがそれ以外のとき、バンカーの点数が3点以下ならHit。それ以外の場合はStand

*配当

-プレイヤーサイドに賭けていて、プレイヤーサイドが勝った場合、2倍の配当がもらえる。
-バンカーサイドに賭けていて、バンカーサイドが勝った場合、1.95倍の配当がもらえる。
-タイに賭けていて、タイになった場合、8倍の配当がもらえる。

*ソースコード

 use strict;
 use warnings;
 
 my $num_deck = 4;
 my @deck = shuffle($num_deck);
 
 my @banker_hand = splice(@deck,0,2);
 my @player_hand = splice(@deck,0,2);
 
 my $banker_score = score(@banker_hand);
 my $player_score = score(@player_hand);
  
 if($banker_score &lt; 8 &amp;&amp; $player_score &lt; 8 ){ 
     push @player_hand, (shift @deck) if($player_score &lt;=5);
     if (@player_hand == 2){
         push @banker_hand, (shift @deck) if($banker_score &lt;=5);
     }else{
         if($player_hand[2]=~ /^.[23]$/){
             push @banker_hand, (shift @deck) if($banker_score &lt;=4);
         }elsif($player_hand[2]=~/^.[45]$/){
             push @banker_hand, (shift @deck) if($banker_score &lt;=5);
         }elsif($player_hand[2]=~/^.[67]$/){
             push @banker_hand, (shift @deck) if($banker_score &lt;=6);
         }elsif($player_hand[2]=~/^.8$/){
             push @banker_hand, (shift @deck) if($banker_score &lt;=2);
         }else{
             push @banker_hand, (shift @deck) if($banker_score &lt;=3);
         }
     }
     $banker_score = score(@banker_hand);
     $player_score = score(@player_hand);
 } 
 
 if($banker_score &gt; $player_score){
     print &quot;banker won.\n&quot;;
 }elsif($banker_score &lt; $player_score){
     print &quot;player won.\n&quot;;
 }else{
     print &quot;tie.\n&quot;;
 }
 
 print &quot;banker hand: @banker_hand,$banker_score\n&quot;;
 print &quot;player hand: @player_hand,$player_score\n&quot;;
 
  
 # カードをシャッフルする
 sub shuffle {
     srand();
     my $num_deck = shift;
     my @stack =();
     for my $n (1..$num_deck){
         for my $s (&quot;S&quot;,&quot;H&quot;,,&quot;D&quot;,&quot;C&quot;){
             for my $i (2,3,4,5,6,7,8,9,&quot;T&quot;,&quot;K&quot;,&quot;Q&quot;,&quot;J&quot;,&quot;A&quot;){
                 push @deck, &quot;$s$i&quot;;
             }
         }
     }
     while($#deck&gt;=0){
         push @stack,splice(@deck,int(rand($#deck+1)),1);
     }
     return @stack;
 }
 
 # 点数を計算する
 sub score {
     my @hand = @_;
     my $score = 0;
     for my $card(@hand){
        if( $card =~ /^.A$/ ){
            $score += 1;
        }elsif($card =~ /^.(\d)$/){
            $score += $1;
        }
     }
     if($score &gt;=10){
         $score %= 10;
     }
     return $score;
 }
参考サイト http://www.bj-10jqka.com/programs/Perl/index.html

----    </description>
    <dc:date>2011-01-10T19:36:23+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/34.html">
    <title>メールフォーム</title>
    <link>http://www28.atwiki.jp/fmemo/pages/34.html</link>
    <description>
      //#javascript(){{
//&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
//amazon_ad_tag = &quot;fff000-22&quot;; amazon_ad_width = &quot;728&quot;; amazon_ad_height = &quot;90&quot;; amazon_ad_logo = &quot;hide&quot;;//--&gt;&lt;/script&gt;
//&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.assoc-amazon.jp/s/ads.js&quot;&gt;&lt;/script&gt;
//}}
* メールフォーム

お気軽にメッセージをお寄せください。名前(ペンネームでもよいです)、件名、本文は必須です。メールアドレスは任意ですが、ないと返事ができません。

#javascript(){{
&lt;!--ninja_style_mailform--&gt;
&lt;div id=&quot;SMFkkk&quot;&gt;Powered by &lt;a href=&quot;http://www.ninja.co.jp/&quot; target=&quot;_blank&quot;&gt;NINJA TOOLS&lt;/a&gt;&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://mf1.shinobi.jp/call/b2c75f74c3f671384ac1806590e6261f/default.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;noscript&gt;[&lt;a href=&quot;http://mf1.shinobi.jp/stat/b2c75f74c3f671384ac1806590e6261f/default.js&quot; target=&quot;_blank&quot;&gt;NINJA_STYLE_MAILFORM&lt;/a&gt;]
&lt;br/&gt;&lt;/noscript&gt;
&lt;!--ninja_style_mailform--&gt;
}}    </description>
    <dc:date>2011-01-07T10:57:03+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/1.html">
    <title>トップページ</title>
    <link>http://www28.atwiki.jp/fmemo/pages/1.html</link>
    <description>
      //#javascript(){{
//&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
//amazon_ad_tag = &quot;fff000-22&quot;; amazon_ad_width = &quot;728&quot;; amazon_ad_height = &quot;90&quot;; amazon_ad_logo = &quot;hide&quot;;//--&gt;&lt;/script&gt;
//&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.assoc-amazon.jp/s/ads.js&quot;&gt;&lt;/script&gt;
//}}
*はじめに

- 計算機を使う上でのメモ書きです。主にMac OSX 10.5 (Leopard)での話となっています。
- ここに書かれた内容は一切無保証です。これらの記述により、なんらかの損害を被っても責任は負いかねます。
- 質問、疑問などはトップページ下のコメント欄、もしくは[[メールフォーム]]からお願いします。

*コメント
お気軽にコメントをお寄せください。
#comment

----    </description>
    <dc:date>2011-01-06T17:20:53+09:00</dc:date>
  </item>
    <item rdf:about="http://www28.atwiki.jp/fmemo/pages/13.html">
    <title>BASH</title>
    <link>http://www28.atwiki.jp/fmemo/pages/13.html</link>
    <description>
      #contents

* シェル変数への値の代入

以下の例では変数VARに値grapeを代入し、それをechoで出力させている。代入のときは$はいらない。参照するときは$をつける。イコールの前後には空白を入れないこと。

 $ VAR=grape
 $ echo $VAR
 grape

* 特殊変数

** $0 
実行中のファイル名が代入される

** $1 $2 $3 ...
引数が代入される。

** $# 
引数の数が代入されるされる。

** $*

すべての引数が代入されている。区切り文字はIFSで指定できる(デフォルトはスペース)

** $@

すべての引数が代入されている。区切り文字はスペース。IFSに影響されない。

** $$
プロセスID

** 参考サイト

[[シェル変数に慣れる&gt;http://www.atmarkit.co.jp/flinux/rensai/shell05/parameter.html]]

* 特定のコマンドを一定間隔で実行したい
例えば、Hello Worldと標準出力に表示させるのを５秒間隔でおこないたいときは以下のようにする。停止させたいときはCtrl-Cでとめる。
 $while true ; do echo &quot;Hello World&quot;; sleep 5; done
* ファイルの中身を読み込む

 $less list_test
 a b c d
 e f g h
 
 less echo_test.sh
 #!/bin/sh
 while read VAR1 VAR2 VAR3 VAR4; do
 echo $VAR1 $VAR2 $VAR3 $VAR4  #ここに処理内容を書く
 done  
 
 $./echo_test　&lt; list_test  #リダイレクトでリストを渡す。
 a b c d
 e f g h

* unixコマンドなどの出力結果を変数に代入する

コマンドをバッククォートで囲む

 #!/bin/sh
 VAR=`date`  #コマンドdateの出力結果を変数VARに代入
 echo $VAR   #変数VARを表示

* 配列

 $ var=(a b c)
 $ echo ${var[0]}
 a

配列は０からナンバリングされることに注意する。

* if文

 if [ 条件 ] ; then
   ....
 elif [ 条件 ] ; then
   ....
 else
   ....
 fi

- 注意事項: [や]の前後にはスペースを入れること

* for文

 #!/bin/bash
 for file in *.txt
 do
 echo $file;
 done

 #!/bin/bash
 for fruit in apple baana cherry
 do 
 echo $fruit
 done

* forを使った一行野郎(ワンライナ)

 $ for i in *.tar.gz ; do tar xvzf $i ; done

*連番の数字を出力させたいとき

 $ echo {1..10}
 1 2 3 4 5 6 7 8 9 10
これとfor文を組み合わせると便利

* while文

 while [ 条件 ]
 do
   ....
 done

 #!/bin/bash
 a=1;
 while [ $a -le 5 ]
 do
  echo $a
  a=$(($a+1))
 done

* 変数の加減乗除

exprを使う

 #!/bin/sh
 NUM=`expr 3 + 2`  #バッククォートを使ってexprコマンドの出力結果をNUMに代入
 echo $NUM

* history

過去に入力したコマンドの一覧を表示。

 $ history

過去に入力したコマンドのうちで、文字列abcを含むものを表示。

 $ history | grep abc

過去に入力したコマンドで番号が10番のものを実行。

 $ !10

過去に入力したコマンドでabcで始まる最新のコマンドを実行。

 $ !abc

* 標準出力をファイルに書き出す

- 新規にファイルを作り、そこに書き込むときには「&gt;」
- 既存のファイルに追記するときは「&gt;&gt;」
- Cシェルだと標準エラーだけをファイルに書き出すことができない。

* .bashrc
** 複数のセッションでhistoryを共有する

 function share_history {
   history -a
   history -c
   history -r
 }
 PROMPT_COMMAND=&#039;share_history&#039;
 shopt -u histappend
- http://d.hatena.ne.jp/mzt/20080124/pl

** 簡単なコマンドは履歴から消去する

 for CMD in ls cd pwd who exit clear gnuplot
 do
   cat ~/.bash_history | grep -v ^$CMD$ &gt; ~/.bash_history_tmp
   mv ~/.bash_history_tmp ~/.bash_history
 done

* 参考になるサイト
[[シェルを使おう&gt;http://www.netfort.gr.jp/~tomokuni/lms/shell/text/]]

------
#html2(){{{{{{
&lt;iframe src=&quot;http://rcm-jp.amazon.co.jp/e/cm?t=fff000-22&amp;o=9&amp;p=8&amp;l=as1&amp;asins=4873112540&amp;fc1=000000&amp;IS2=1&amp;lt1=_blank&amp;m=amazon&amp;lc1=0000FF&amp;bc1=000000&amp;bg1=FFFFFF&amp;f=ifr&quot; style=&quot;width:120px;height:240px;&quot; scrolling=&quot;no&quot; marginwidth=&quot;0&quot; marginheight=&quot;0&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
}}}}}}    </description>
    <dc:date>2011-01-05T09:58:59+09:00</dc:date>
  </item>
  </rdf:RDF>

