2014-12-09 受験生応援!Javascriptでひねくれ数列!(KMCアドベントカレンダー9日目) ・始めに おはようございます! KMC1回生、id:murataと申します! この記事はKMC Advent Calendar 2014の9日目の記事です。 昨日はyui9さんの 「Haskellで簡単な正規表現を実装した」でした。 私はまだまだ未熟なので 過 去 の KMC の 記 事 みたいな高度な内容を書けはしませんが、ご容赦下さいまし。 ・ひねくれ数列 そろそろ12月ですね。 クリスマス とかもあって、すぐセンター試験なんかも近づいてくる時期ではないでしょうか。 特に、大学受験をされる方々は、数列をいやというほど見てきたかと思います。 高校2年生の方々は今頃のテスト範囲が数列だったりとかもあるかと思います。 1,2,4,8,...の一般項を求めよ。とか 1,1,2,3,5,8,13,21,34,55...の一般項を求めよ。とか 1,4,27,256,...の一般項を求めよ。とか、あげればきりがないほどです。 高校生の時の僕は思っていました、 1,2,4,8,...のような数列は、別に1,2,4,8,さえあっていれば当然、後は何でもいいはずだと。 しかし、テストで書くときには一般項はAn=2(n-1)位しかすぐには思いつかないから しぶしぶその一般項を書くしかないのだと。 そんな経験にはもうサヨナラです! このJavascriptで書かれたプログラムは、そんなひねくれたあなたをサポートします! 作りは簡単で、大学の講義でn次元の逆行列の作り方を習ったのでそれを実装したものです。 例えば 1,2,4,8,...の一般項は、2(n-1)ではなくて、ひねくれれば 4/3n-1/2n2+1/6n3 ともいえるし 1,1,2,3,5,8,13,21,34,55...の一般項は、フィボナッチ数列でなくてひねくれれば 9581/504n-455473/10080n2+8148799/181440n3-8774477/362880n4 +271847/34560n5-55883/34560n6+25589/120960n7-1033/60480n8+563/725760n9-11/725760n10 ともいえるわけで、 こう書いても先生はバツをつけられないわけです。 しかも、これはJavascriptですから、答案中にサッとスマホで開いて入力すれば 答えが得られるわけです。 ・説明 n1,n2,n3,n4,...とかいてある数列があればひねくれた一般項を求められます。 33/4 や 72/225 のように入力すれば有理数も可能です。 10^8程度の数値までなら正しい精度で多分扱えます。 ソースコードをDropboxで公開していくスタイル 個の項がある。 ------------------------------------------------- 副産物として有理数の範囲で逆行列も求められるプログラムもできました。 詳細を表示 次元の行列です。 ・懺悔 メルセンヌツイスタとかではありません。悪しからず。 はてなブログってJavascript使えるだけじゃなくて勝手にリンクを張ってくれるのすごいです この記事を書いている途中で、そういえば高校の数列の大部分は漸化式だった からこの記事の内容あんまし使えないから受験生応援できてないことに気づきました。 まぁまぁ仕方なしです。 Javascriptを触ったことがなかったので、とても拙いプログラムですみませんが、 全部、懺悔ちゃんが許してくれます。 …ということでKMCアドベントカレンダー9日目「受験生応援!Javascriptでひねくれ行列!」 でした。 明日のKMCアドベントカレンダーはnojima(id:nojima718)さんの「C++のrvalueの話」です! とても楽しみです!