表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
9/12

妹と再帰

「再帰とか考えたやつ死ねばいいのに」

 我が妹が唐突にそんなことを言い出した。

「どした? 親でも殺されたみたいに」

 未来は苦虫をかみつぶしたように言った。

「再帰とか分かんないの……やたら計算量だけはかかるわ実装は面倒だわ、そのくせメリットわかんないし、昔は再帰が無い言語があったってね……いい時代だったね」

 ちなみに再帰とは関数が自身を呼び出すことだ。

 有名どころだとフィボナッチ数列を求める

fib(int n){

if((n == 1) && (n == 0)){

return 1;

}else{

return fib(n-1) + fib(n-2);

}

このへんである。

 fib(3)を呼ぶとfib(2)がfib(1)を呼び出してといった感じで計算が進んでいく。

 何がめんどくさいってちょっと間違うと無限ループに入ったり、方法が正しくてもちょっと大きな数を渡すと現実的な時間で終わらなかったりする。

 例に出したコードではfib(40)でもうすでに平均的な計算機でははっきり分かるくらいの町が生じる。

 現代のコンピュータの計算の速さからすると待ちが生じるだけでヤバい量の計算をしているのは分かると思う。

 決して三次元ムービーをレンダリングしているわけではない、やっているのはたかだか165580141を求めるだけだ。

「アレはアレで便利なんだぞ、再帰死ねとか言っていたら敬虔なLISPerにボコられかねないので気をつけろ」

「だってたかだかソートだよ! 普通に挿入ソートの何が悪いんだかわかんない!」

「挿入ソートはなあ……ちょっとデータが増えると終わんないぞ」

「いいじゃないですか! 一回きりのソートですよ、ユーザだって待ってくれますよ」

 ん? 一回きり?

「なあ、サーチは何回するんだ?」

「一回だけですよ、勉強のために書いてるだけですし」

「なぁ、言いにくいんだけどさ……」

「なんですか?」

「サーチしないんならソートの必要なくないか? ソートは定数時間以下にならないから検索が一回なら頭から順にたぐっても変わんないぞ」

「えぇ……そうなんですか!?」

「勉強のためなら書いてもいいけど、実用に耐えるかはさておき完成を目指せばいいんじゃないか?」

 時には妥協も大事だぞ。

「うん! ありがとね、お兄ちゃん!」

 そう言うと未来は自分のMacBookを引き寄せてコードを書き出した、この調子なら一時間もあれば終わるだろう。

 昔はこだわってたよな……などと自分のことを思い出しながら熱心な妹に感心して、あのことの自分の心はどこに……などと考えるのだった。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ