2008-02-01から1ヶ月間の記事一覧

2.13 行列の積を計算する

use PDL; # $aと$bはどちらもpdlオブジェクト $c = $a x $b;

2.12 対数を取る

sub log_base { my ($base, $value) = @_; reuturn log($value) / log($base); }

2.11 三角関数を計算する

# 標準関数のみで実現 sub tan { my $theta = shift; return sin($theta) / cos($theta) } # POSIXを使用 use POSIX; $y = acos(3.7); # Math::Trigを使用 use Math::Trig; $y = acos(3.7);

富士通マイクロエレクトロニクス

何か期待はずれな名前。これじゃ、先が知れているなぁ。先がしれてるから、わざとそんな名前にしたのかもしれないけど。新しい会社になるのに、何で親会社の看板が必要なんだろ。欧米の会社とかは、フリースケールをはじめとして、ちゃんと独立した社名を付…

不適切な関係

最近、というようよりもずっと昔からかもしれないけど、内縁の妻との虐待事件が多いような気がする。不思議と男は、20代前半で無職、女は20真ん中から30ぐらいまでで、二人ぐらいの子持ち。そもそもなんでこんな組み合わせが成立するの?って感じ。女は子…

2.10 三角法をラジアンではなく度で計算する

# 方法1 use constant PI => (4 * atan2(1,1)); sub deg2rad { my $degrees = shift; return ($degrees / 180) * PI; } sub rad2deg { my $radians = shift; return ($radians / PI) * 180; } # 方法2 use Math::Trig; $radians = deg2rad($degrees); $degre…

2.9 偏りのある乱数を生成する

生成される値の分布を不均一にしたい。 # 標準偏差1, 平均0の正規分布に従った乱数を生成する方法 sub gaussian_rand { my ($u1, $u2); # 均等に分布した乱数 my $w; # 偏差(重み) my ($g1, $g2); # ガウス分布の数値 do { $u1 = 2 * rand() -1; $u2 = 2 * r…

2.8 乱数をさらにランダムにする

Perlの提供する乱数よりもさらにランダムな乱数を生成したい。 # 方法1 use Math::TrulyRandom; $random = truly_random_value(); # 方法2 use Math::Random; $random = random_uniform();

2.7 再現性のある乱数を生成する

srand EXPR; # 同じ乱数シーケンスを生成したい場合は、定数を指定する。

2.6 乱数を生成する

$random = int( rand( $Y-$X+1 ) ) + $X;

りんごの誘惑

日本企業とAppleの違いって何? とりあえず思いつく限り挙げると、 タイミング。日本企業は、技術を先取りするけど、いまいちタイミングが悪い。Appleは既存の技術をタイムリに提供する。 捨てる技術。日本企業は、小さいものを作るときでも、フルスペックを…

イノベーションのジレンマ

昨日書いたとおり、今、日本が必死になって進めてるデジタルテレビ放送と次世代DVDはイノベーションのジレンマに陥ってる気がします。 id:yukichanko:20080218:1203349976 いわゆる、PS3状態、というべきものかな。大多数のユーザはそんなもん必要ないのに、…

ふてぶてしい

最近、表情が作れるようになってきたからか、だんだんと流し目を始めました。ふてぶてしぃ(笑) そのときの様子をぜひ写真にとりたいのに、そのときに限って、普通の表情に戻るねんなぁ。めっちゃ反抗期やわ。

2.5 ローマ数字を取り扱う

use Roman; $roman = roman($arabic); # アラビア数字をローマ数字に変換 $arabic = arabic($roman) if isroman($roman); # ローマ数字をアラビア数字に変換

2.4 連続した整数を操作する

foreach ($X .. $Y) { # $_にXからYまでのすべての整数が順次格納 } foreach $i ($X .. $Y) { # $iにXからYまでのすべての整数が順次格納 } for ($i = $X; $i <= $Y; $i++) { # $iにXからYまでのすべての整数が順次格納 } for ($i = $X; $i <= $Y; $i+=7) { …

2.3 浮動小数点を比較する

# sprintfとフォーマット指定子を使用して、小数点以下の特定の桁で丸めて比較する。 # equal(NUM1, NUM2, PRECISION) : NUM1とNUM2をPRECISION桁で丸めてから比較し、 # 等しい場合は真を返す sub equal { my ($A, $B, $dp) = @_; return sprintf("%.${dp}g…

2.2 浮動小数点を丸める

# 小数点第3位で丸める $rounded = sprintf("%.2f", $unrounded); # int, floor, ceil関数を使う use POSIX qw(floor, ceil); printf "%8s %8s %8s %8s %8s\n", qw(number even zero down up); for $n (-6 .. +6) { $n += 0.5; printf "%8g %8.0f %8s %8s %…

Blu-Ray vs HD-DVD

みんな言ってるけど、やっぱ一言書いておくかな。もう何年も前から、不毛な規格争いを続けていたのですが、とうとう決着したようですね。東芝のDVD事業部の人たちは「そんな話は知らない」とコメントしてましたが、ま、大勢が決まっちゃったので、しゃーない…

一日一回は。。。

せっかくブログに結希未の名前を付けているので、ブログの内容も結希未中心で書かないと意味がないのですが、ついつい全然違うことを書いてしまいます。というのも、成長は早いものの、劇的なことがあまり起こらないからでしょうか。ま、親二人が平凡だから…

祝!!3ヶ月

早いもんだ。生まれてきたときは、すごい小さくて、「病院出て生きていけるんかなぁ」と思ったけど、今や図々しいほど大きくなってる気がする。今もいびきを書きながら、ぐうすか寝てるし。赤ちゃんのすごいところは、日々進化しているところ。もちろん、日…

2.1 文字列が有効な数値であるかどうかチェックする

# 正規表現によるマッチング warn "has nondigits" if /\D/; warn "not a natural number" unless /^\d+$/; # -3は拒否する warn "not an integer" unless /^-?\d+$/ # +3は拒否する warn "not an integer" unless /^[+-]?\d+$/; warn "not a decimal number…

1.22 Soundexマッチング

英語の性が2つあり、これらの性の発音がスペルとは関係なく似ているかどうかを知りたい。"Smith"と"Smythe"など。 # 方法1 use Text::Soundex; $CODE = soundex($STRING); @CODES = soundex(@LIST); # 方法2 use Text::Metaphone; $phoned_words = Metaphon…

1.21 定数を宣言する

変数に設定した値を変更できないようにしたい。 # 展開できるスカラー変数にする必要がない場合 use constant AVOGADRO => 6.0225e23; printf "You need %g of those for guac\n", AVOGADRO; # スカラー変数にする必要がある場合 *AVOGADRO = \6.0225e23; pr…

1.20 CSVファイルを解析する

# 方法1 Text::ParseWords use Text::ParseWords; sub parse_csv0 { return quotewords("," => 0, $_[0]); } # 方法2 Text::CSV use Text::CSV; sub parse_csv1 { my $line = shift; my $csv = Text::CSV->new(); return $csv->parse($line) && $csv->fields…

1.19 文字列の先頭または末尾の空白を削除する

読み込んだ文字列の先頭または末尾に空白文字が付加されている場合は、それらを削除したい。 $string =~ s/^\s+//; $string =~ s/\s+$//;

1.18 文字をエスケープする

文字列中の特定文字(クォート, カンマなど)をエスケープしたい。 # 置換を使用して、エスケープする各文字にバックスラッシュをつけるか、 # 各文字を二重にする。 # バックスラッシュを付ける $var =~ s/([CHARLIST])/\\$1/g; # 二重にする $var =~ s/([CHA…

1.17 段落を整形する

文字列が長過ぎてスクリーンに収まりきらない。文字列を複数行に分割する方法 # Text::Wrapを使う use Text::Wrap; @output = wrap($leadtab, $nexttab, @para); # Text::Autoformatを使う(こちらの方がより優れている) use Text::Autoformat; $formatted = …

1.16 ヒアドキュメントをインデントする

ヒアドキュメントを利用すれば複数行をクォートできるが、テキストを左余白に詰めて書かなければならない。コード内のヒアドキュメントをインデントする方法 # すべて一度に行う ($var = << HERE_TARGET) =~ s/^\s+//gm; your text goes here HERE_TARGET # …

最近、気づいたのですが、歌を歌ってあげると(というか、ただ単に口ずさんでいるだけですが)、結希未ちゃんはよく寝ます.今のところ、中村一義と斉藤和義しか歌っていないのですが、かなりの確率で寝てくれます.さすが、結希未ちゃん!! 音楽がよくわかっ…

やっとつながった

我が家も無線LANを導入してみました.買ったのは、BuffaloのWZR2-G300N/Uです。初めてということもあり、設定に手こずりました.まず、Windowsをつなごうとして設定すると、「先にMacの方を設定してください」と書いてあるし、Macの方を設定しようにも暗号化…