nishiru3の日記

備忘録です。ネットのゴミ。

strposによる検索

strpos

strpos関数を使って検索を実現する。

http://php.net/manual/ja/function.strpos.php

具体例

<?php
/**
 * http://php.net/manual/ja/function.strpos.php
 * (PHP 4, PHP 5, PHP 7)
 *  strpos — 文字列内の部分文字列が最初に現れる場所を見つける
 */
/**
 * 次の例は検索がひっかかるパターン
 */
// 検索対象文字列
$text = '文字列の検索';
// 検索文字列
$retrieval = '';
//
$pos = strpos($text,$retrieval);
// 
if($pos !== false) {
    echo '検索一致';
} else {
    echo '検索不一致';
}

正規分布の指数型分布族への変形

指数型分布族

指数型分布族にはいくつかの表現があるが、本記事では次のとおりとする。

f:id:nishiru3:20180714063027p:plain

ここで、\thetaは自然パラメータ、\phiは分散に関するパラメータである。

正規分布の密度関数

正規分布の密度関数は次のとおりである。

f:id:nishiru3:20180714063247p:plain

指数型分布族への変形

指数型分布族への変形は次のとおりである。

f:id:nishiru3:20180714063357p:plain

指数型分布族との比較

上記の二つを比較すると次のとおりである。

f:id:nishiru3:20180714063536p:plain

期待値と分散

指数型分布族の期待値と分散の導出はまだやってないが、
それに従うと、次のとおりである。

f:id:nishiru3:20180714063844p:plain

数値データかどうかのチェック

モチベーション

  • 数値解析をしていると、入力データや出力データが数値データになっているかのチェックをする事が多い。
  • 解析そのものはFortranC言語で書いてるので、入力時や出力時のチェックを行うのも良いが、文字や文字列処理を書くのはめんどくさい。
  • AWKPerlであれば文字や文字列処理は得意。
  • ひと手間かかるが、AWKPerlで一度確認した方が結果的に時間がかからない。

AWKの場合

プログラム

BEGIN{
    FS = ','
}
/^[+-]?([0-9]+[.]?[0-9]*|[.][0-9]+)([eE][+-]?[0-9]+)?$/{
    print $0;
}
END{
}
  • BEGIN内では、フィールドセパレータ(FS)をカンマに設定している。

概略

  • 「^」:最初にマッチ
  • 「$」:最後にマッチ
  • 「[+-]?」:+もしくは-が付いても付かなくても構わない。
  • 最初の小かっこ内は、仮数部に引っかかるようなパターンである。
  • 次の小かっこ内は、指数部に引っかかるようなパターンである。ただし、カッコ後に「?」が付いているので、指数部はあってもなくても構わない。

仮数

  • [0-9]+で1コ以上の数値の並び。
  • 「[.]?」で小数点があってもなくても構わない。
  • [0-9]*でその後の数字が0コ以上。
  • 「|」は、または、の意。整数部が0の場合省略可能。

指数部

  • 指数部は「[eE]」で表記。プログラムによってはDとかでも出力されるので、[eED]としておけば、「e」もしくは「E」もしくは「D」で引っかかるようにできる。
  • 「[+-]?」は指数部のプラスマイナスにマッチする。あってもなくても良い
  • 「[0-9]+」は「1.0E-10」の「10」なんかに引っかかる。「+」が付いているので、1コ以上の数字が必要。
  • 最後の「?」は、指数部全体にかかるので指数部はあってもなくても構わない。

この表現はPerlでも使える。

プログラミング言語AWK

プログラミング言語AWK

  • 作者: A.V.エイホ,P.J.ワインバーガー,B.W.カーニハン,足立高徳
  • 出版社/メーカー: USP研究所
  • 発売日: 2010/01/01
  • メディア: 単行本(ソフトカバー)
  • クリック: 1回
  • この商品を含むブログを見る

表組みのCSSメモ

表組みとCSS

HTML

htmlファイルは次のとおり、linkはCSSファイルのパスを書いておく。
talbleのクラスはCSSファイルを参照。

<!DOCTYPE html>
<html>
<head>
    <title>表組み</title>
    <link rel="stylesheet" href="./css/style.css">
</head>
<body>
<table class="sample">
    <tr>
        <th>th1</th>
        <th>th2</th>
        <th>th3</th>
        <th>th4</th>
    </tr>
    <tr>
        <td>td1</td>
        <td>td2</td>
        <td>td3</td>
        <td>td4</td>
    </tr>
    <tr>
        <td>td1</td>
        <td>td2</td>
        <td>td3</td>
        <td>td4</td>
    </tr>
    <tr>
        <td>td1</td>
        <td>td2</td>
        <td>td3</td>
        <td>td4</td>
    </tr>
    <tr>
        <td>td1</td>
        <td>td2</td>
        <td>td3</td>
        <td>td4</td>
    </tr>
</table>
</body>
</html>

CSS

CSSファイルは次のとおり。
コメントは/**/ で行う。

table, th, td {
    border-collapse: collapse;
    border: 1px solid #ccc;
    line-height: 1.5;
}
/* sampleはhtml側でclassとして指定する*/
table.sample th {
    width: 150px;
    padding: 10px;
    font-weight: bold;
    vertical-align: top;
    background: #3f3f3f;
    color: #ffffff;
}
table.sample td {
    width: 350px;
    padding: 10px;
    vertical-align: top;
}
/* 偶数と奇数で切り替える */
tr:nth-child(even) {
    background: #d9d9d9;
}

セッション

ページをまたいでデータを保持する

  • PHPにおいてページをまたいでデータを引き継ぎたいときは、セッションを使う。

a1.phpのコード(遷移元)

  • これを最初のページ(遷移元)にする。
  • ただし、phpコードの最初に記述すること。途中からsession_startすると、データが失われる。
  • 配列aaa1のデータを設定し、$_SESSION[['a1']に保存している。
<?php
session_start();
$aaa1 = [1000,1001,1002];
$_SESSION['a1'] = $aaa1;
echo '配列$aのデータ@a1.php<br/>';
foreach ($aaa1 as $a1) {
    echo $a1.'<br />';
}
echo '<a href="./a2.php">別ページに遷移</a>';

a2.php(遷移先)

  • a2.phpは遷移先のページである。
  • a1.phpと同様にしてsession_start();を記述する。
  • $_SESSION['a1']から引き取って、$aaa2に入れている。
<?php
session_start();
$aaa2 = $_SESSION['a1'];
echo '配列$aのデータ@a2.php<br/>';
foreach ($aaa2 as $a2) {
    echo $a2.'<br />';
}

フィッシャー情報量の事例(ポアソン分布)

フィッシャー情報量

フィッシャー情報量は次の記事を参照。
nishiru3.hatenablog.com


ポアソン分布の基本的性質

ポアソン分布の基本的性質は次の記事を参照。
nishiru3.hatenablog.com

ポアソン分布の対数尤度関数

f:id:nishiru3:20180711060842p:plain

ポアソン分布のフィッシャー情報量

f:id:nishiru3:20180711060922p:plain

フィッシャー情報量の事例(正規分布)

フィッシャー情報量

フィッシャー情報量は次の記事を参照。
nishiru3.hatenablog.com

正規分布の基本的性質

正規分布の基本的性質は次の記事を参照。
nishiru3.hatenablog.com

正規分布の対数尤度関数

f:id:nishiru3:20180711054829p:plain

正規分布のフィッシャー情報量

f:id:nishiru3:20180711054909p:plain