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

reverse関数 - 配列または文字列の順序を逆順にする

Perl › 関数 › here reverse関数を使用すると、配列または文字列の順序を逆順にすることができます。reverse関数は配列に対して使用すると配列の順序を反転させますが、文字列に対して使用すると文字列を反転させます。 my $reversed = reverse $str; my @re…

ord関数 - ASCII文字を数値に変換

Perl › 関数 › here ord関数を使用すれば、ASCIIコードの文字を内部表現である数値に変換することができます。これはchr関数と反対の変換です。 my $ascii_code = ord $char; ord関数のサンプル ord関数を使って、ASCIIコードの文字を内部表現である数値に変…

chr関数 - 数値をASCIIに変換

Perl › 関数 › here chr関数を使用すると数値をASCII(アスキー)コードに対応する文字に変換することができます。第1引数にASCIIコードを指定するとそれに対応する文字が戻り値で返ります。これはord関数の逆の演算です。 my $char = chr $ascii_code; chr関…

crypt関数 - ダイジェストを作成してパスワードの照合を行う

Perl › 関数 › here crypt関数を使うと、パスワードをダイジェストにして保存しておくことができます。パスワードを平文で保存しておくと見られてしまいます。第一引数はパスワードです。第二引数はサルトという任意の文字列で、ダイジェストを解読されにく…

length関数 - 文字列の長さを取得

Perl › 関数 › here length関数を使用すると文字列の長さを取得するすることができます。 $ret = length $str; たとえば「abcde」という文字列の長さは5になります。 # 文字列の長さは5 my $length = length 'abcde'; 日本語の文字列の長さを正しく取得する …

Math::BigInt、Math::BigFloat - 大きな桁数を持つ数の計算

Perl › モジュール › here Perlの数値の有効桁数は15〜16桁くらいで、普通の演算ではこれ以上大きな数の演算を行うことができません。大きな桁の数値を扱いたい場合はMath::BigIntやMath::BigFloatを使用します。 大きな整数の演算 大きな整数の演算を行うに…

ceil関数 - 小数部を切り上げる

Perl › 関数 › here ceil関数を使用すると、小数点を切り上げることができます。 use POSIX 'ceil'; $ret = ceil $num; サンプル ceil関数を使ったサンプルです。 use strict; use warnings; use POSIX 'ceil'; my $num1 = 1.5; my $num2 = -1.5; print "(1)…

int関数 - 小数から整数部を取り出す

Perl › 関数 › here int関数を使用すると、小数点を含む数値の整数部を取り出すことができます。 $ret = int $num; 整数部というのは、小数から小数点以下の部分を取り除いた部分のことです。切り下げや切り上げとは異なります。たとえば「1.5」という小数の…

四捨五入を行う

Perl › 数値 › here 四捨五入を行うには、sprintf関数を使用します。フォーマット指定を、有効桁を指定して四捨五入したい場合は"%.3g"や"%.5g"のように指定し、小数点以下のある桁で四捨五入したい場合は"%.3f"や"%.5f"のように指定します。 # 小数点以下の…

浮動小数点を比較する

Perl › 数値 › 浮動小数点の比較 コンピュータは内部的には2進数を使って演算しているので、2進数で表現できない小数については計算の過程で誤差が生まれます。2進数の演算の過程で発生した誤差の影響を無視するためには、ある有効桁で数値を丸めて比較する…

log関数 - 対数を求める

Perl › 関数 › here log関数を使用すると、自然対数を求めることができます。また底(てい)の変換を利用すれば、任意の底の対数を計算できます。 自然対数を求める 自然対数を求めるにはlog関数を使用します。自然対数とは底がネイピア数eである対数のことで…

exp関数 - 自然対数の底 ネイピア数eを取得

Perl › 関数 › here exp関数を使用すると、自然対数の底 ネイピア数eを取得することができます。 # e my $exp = exp(1); # eの3乗 my $exp3 = exp(3); ネイピア数eを取得するにはexp関数に1を渡します。引数は、べき乗の指定になっているので、nを指定すれば…

Math::Trig - さまざまな三角関数

Perl › モジュール › here 三角関数関連の関数は標準関数としては、cos関数とsin関数しかありませんが、標準モジュールにMath::Trigという三角関数関連のモジュールがあります。簡単に内容を紹介します。 三角関数の逆数 逆数とは、分母と分子を入れ替えた数…

三角関数を利用する

Perl › 数値 › here 三角関数を利用するための関数やモジュールを紹介します。 サイン サインを求めるには、sin関数を角度はπ(pi関数)を使って、弧度法で指定するのが簡単です。 use Math::Trig 'pi'; sin(pi/2); cos(pi/3); (参考)Math::Trig コサイン コサ…

角度をラジアンに変換

Perl › 数値 › here 度数法( 30°,90°など )で表された角度を、ラジアン( π/6, π/4 など )に変換するにはMath::Trigモジュールのdeg2rad関数を使用します。その逆を行うには、rad2deg関数を使用します。 use Math::Trig 'pi', 'deg2rad'; # 度数法の角度を弧…

円周率を取得する

Perl › 数値 › here 円周率を取得するにはMath::Trigモジュールのpi関数を使用します。 use Math::Trig 'pi'; pi; 円周率とは、円周(L)と直径(R)比率( L/R )のことです。円周率は無理数であり有限範囲の小数で表現することができません。piで取得する円周率…

abs関数 - 絶対値を求める

Perl › 関数 › here 絶対値を求めるにはabs関数を使います。 abs $num; 絶対値というのは、符号を考慮しない大きさのことで、常に正の値になります。0からどれくらい離れているかを表す数のことです。「3」の場合は「3」に、「-3」の場合は、「3」になります…

Perlの算術演算子

Perl › 演算子 › here Perlで四則演算を行うための算術演算子について解説します。 加算 足し算を行うには加算演算子「+」を使用します。 # 足し算 my $add = 1 + 1; 減算 引き算を行うには減算演算子「-」を使用します。 # 引き算 my $sub = 9 - 1; 乗算 掛…

Math::Random::MT - 自然乱数に近い擬似乱数を発生

Perl › モジュール › here 擬似乱数を発生させるよいアルゴリズムにメルセンヌ・ツイスタ法というものがあります。メルセンヌ・ツイスタ法によって擬似乱数を求めるモジュールがMath::Random::MTというモジュールです。CAPNから取得することができます。 use…

srand関数 - 再現性のある乱数を生成する

Perl › 関数 › here srand関数を使用すると再現性のある乱数を生成することができます。rand関数を呼び出す前に適当な数値をsrand関数に与えます。 # 乱数発生アルゴリズムを初期化 srand $seed; rand $num; コンピュータにおける乱数の生成とは コンピュー…

rand関数 - 乱数を生成する

Perl › 関数 › here 乱数を生成するにはrand関数を使用します。引数で指定した数より小さい0以上の数値がランダムで生成されます。 $ret = rand 10; 乱数とはランダムな数のことです。アプリケーションを作成するときは、時にランダムな数がほしいときがあり…

uc関数 - 小文字を大文字に変換する

Perl › 関数 › here uc関数を使用すると小文字から大文字へ変換することができます。uc関数は引数のそれぞれの文字を大文字に変換します。変換できない文字の場合は引数に与えた文字がそのまま返されます。 my $str = uc "aaa"; サンプルプログラム 小文字か…

2進数、8進数、16進数の進数変換

Perl › 進数変換 Perlで「進数変換」を行う方法を解説します。 10進数から2進数、8進数、16進数への変換 10進数から2進数、8進数、16進数に変換してみましょう。sprintf関数でフォーマット指定を使います。 # 2進文字列に変換 my $bit_str = sprintf("%b", $…