平成最後のご挨拶

『平成』もあと数十分となりました。

元号中も、大変お世話になりました。
元号でも、よろしくお願いいたします。

『昭和』から『平成』に移る時、正直「天皇陛下が着物着て廊下を歩いている映像」しか覚えていません。

サッカーや、合気道の終わった後、「テレ朝の戦隊ヒーロー」や、「テレ東の6時のアニメ」を楽しみにしていた記憶があります。

風邪引いて休んでるのに、2階で「エヴァ」を隠れて見て怒られたとか、「レイアース」を鼻歌で歌っていたら同級生に見てることがバレたとか。

最初みたアニメは「パトレイバー」や「ZZ」ですが、本格的に足を踏み外したのは中学の時の「ナデシコ」ですね。

そして、「椎名へきる」さんに熱狂するのもこの頃です。

ラジオは「アニラジ文化放送」「伊集院光のTBS」という感じでした。

高校の時はアニメから少し離れて、音楽では遅まきながら「ビーイング」に傾倒していきましたね。大量のビーイングのCDが実家にありました。

科学部物理班に入って、「VisualBasic」と出会ったのもこの頃でした。

汎用箱型決戦兵器に入っていたのはVB5だったかな。後で買ったのはVB6だけども。

当時はVB5からは「DirectX」が呼べず、呼ぶ用のライブラリがあった気がします。

夏に「CATV」に加入したことで、インターネットができるようになったのもこの頃かな。

先日、「ジオシティーズ」にあった昔の「B.G-STATION」をサルベージしました。

当時、「テスト用のシューティングゲーム」と、某スパロボみたいな「シミュレーションゲーム」をVBで作ってました。

大学は「漫研」と「AM(AmusementMakers)」に入りました。

C++とWindowsAPIとDirectXの組み合わせに変わったのもこの頃です。

「カントク」さんとも同期経由でAMで知り合いました。

高校の時のいろいろな有象無象なりインスピレーションなりがベースとなって、「灰色の笑顔」の製作を始めるのですが、まあこれが全然進捗しない。

「内定」取れてない状態での「教育実習」はつらかった。

まあ、終わった後に、「フリービット」の内定をもらうわけですが。

で大学卒業して、入社して、「SemantiqNode」や「ServersMan」とかの開発に参加していくわけですが。

それから、あっという間の12年。

仕事の合間に、「奈々」さんのライブに、「真綾」さんのライブ、車で「四国遍路」したり、「インディ」見に行ったり、「F-1」見に行ったり。

そして、「心身疲弊」を機に「転職」と・・・。

というわけで、僕の『平成』を振り返ってみました。

そして、僕の『平成』が終わります。

人生のほとんどが、『平成』にありました。

これから、人生のどれだけを『令和』で過ごせるのでしょうか。

『未来』のことはわかりませんが、『良い元号で良い人生』を送れるといいですね。

それではよい『元号』を

log10

log10は、10を底とする対数関数 log_{10} x (常用対数)を計算する。

Man page of LOG10
C言語関数辞典 - log10, log10f, log10l


$ vi log10.c
$ gcc -lm log10.c -o log10
$ ./log10
x: 1
log10(1.000000) = 0.000000
$ ./log10
x: 2
log10(2.000000) = 0.301030
$ ./log10
x: 3
log10(3.000000) = 0.477121
$ ./log10
x: 10
log10(10.000000) = 1.000000
$ ./log10
x: 100
log10(100.000000) = 2.000000
$ ./log10
x: 1000
log10(1000.000000) = 3.000000
$ ./log10
x: 10000000000
log10(10000000000.000000) = 10.000000
$

最初は1, 2, 3と入れていく。
xが1の場合は0になる。
xが10の場合は1になり、100だと2、1000だと3、10000000000で10となる。

Sample/c/log10/log10/src/log10 at master · bg1bgst333/Sample · GitHub

log

logは、ネイピア数eを底とする対数関数 log_{e} x (自然対数)を計算する。

Man page of LOG
C言語関数辞典 - log, logf, logl


$ vi log.c
$ gcc -lm log.c -o log
$ ./log
x: 1
log(1.000000) = 0.000000
$ ./log
x: 2
log(2.000000) = 0.693147
$ ./log
x: 3
log(3.000000) = 1.098612
$ ./log
x: 10
log(10.000000) = 2.302585
$ ./log
x: 2.718282
log(2.718282) = 1.000000
$ ./log
x: 7.389056
log(7.389056) = 2.000000
$ ./log
x: 20.085537
log(20.085537) = 3.000000
$ ./log
x: 22026.465795
log(22026.465795) = 10.000000
$

xが1, 2, 3, 10の時の値だけでは、つまらないので、expで求めたe^1, e^2, e^3, e^{10}をxに入れてみる。
すると、1, 2, 3, 10に見事になる。これが指数の対数の関係。
誤差あるかなとおもったけど、表示上は無かった・・・。

Sample/c/log/log/src/log at master · bg1bgst333/Sample · GitHub

exp

expは、自然対数の底であるネイピア数eの指数関数e^xを計算する。

Man page of EXP
C言語関数辞典 - exp, expf, expl


$ vi exp.c
$ gcc -lm exp.c -o exp
$ ./exp
x: 1
exp(1.000000) = 2.718282
$ ./exp
x: 2
exp(2.000000) = 7.389056
$ ./exp
x: 3
exp(3.000000) = 20.085537
$ ./exp
x: 10
exp(10.000000) = 22026.465795
$

xが1, 2, 3, 10の時の値を求めた。
gnuplotとかでグラフを描画するのも考えたが、それは面倒なので、今回は値を計算するのみに留めた・・・。

Sample/c/exp/exp/src/exp at master · bg1bgst333/Sample · GitHub

sqrt

sqrtは、平方根を計算する。

Man page of SQRT
C言語関数辞典 - sqrt, sqrtf, sqrtl

入力された値の平方根を計算する。


$ vi sqrt.c
$ gcc -lm sqrt.c -o sqrt
$ ./sqrt
x: 4
sqrt(4.000000) = 2.000000
$ ./sqrt
x: 9
sqrt(9.000000) = 3.000000
$ ./sqrt
x: 16
sqrt(16.000000) = 4.000000
$ ./sqrt
x: 25
sqrt(25.000000) = 5.000000
$ ./sqrt
x: 2
sqrt(2.000000) = 1.414214
$

最後の√2だけ、四捨五入されてしまってるが、ひとまず、このように平方根が求められる。

Sample/c/sqrt/sqrt/src/sqrt at master · bg1bgst333/Sample · GitHub

pow

powは、冪乗(aのx乗)を計算する。

Man page of POW
C言語関数辞典 - pow, powf, powl

aのx乗であれば、第1引数は、基数aを指定し、第2引数は、指数xを指定する。

入力されたaとxから、aのx乗を計算する。

$ vi pow.c
$ gcc pow.c -o pow
/usr/bin/ld: /tmp/ccrxZwhY.o: in function `main':
pow.c:(.text+0x5d): undefined reference to `pow'
collect2: エラー: ld はステータス 1 で終了しました
$ gcc -lm pow.c -o pow
$ ./pow
a: 2
x: 3
pow(2.000000, 3.000000) = 8.000000
$ ./pow
a: 5
x: 3
pow(5.000000, 3.000000) = 125.000000
$

普通にコンパイルすると、数学関数ライブラリはリンクされないので、エラーを起こす。
なので、-lmオプションを付けて、コンパイルする。
2の3乗は8、5の3乗は125になる。

Sample/c/pow/pow/src/pow at master · bg1bgst333/Sample · GitHub

abs

absは、渡された整数値の絶対値を求める。

Man page of ABS
C言語関数辞典 - abs

数学関数だが、math.hではなくstdlib.hに宣言されている。

入力された整数値の絶対値を求めてみる。

$ vi abs.c
$ gcc abs.c -o abs
$ ./abs
x: 5
d = 5
$ ./abs
x: -5
d = 5
$

5でも-5でも絶対値の5を返してくる。

Sample/c/abs/abs/src/abs at master · bg1bgst333/Sample · GitHub