エンでエンエンエン

スタンダードミニ

 

もしもピアノが弾けたなら

 

なんとエンでエンエンエンでは非常に珍しい、連載ものである。テイラー展開をそのまましつこくつづけていたんだぁあたくしや。

早速だがいろいろ試していた楽しい時間は終わりで、Cでテイラー展開の式をコピった。こういう式を実装するときに、いろいろな難問が私たちにはおしよせる。

 

「早く結果が見たい」

だとか

「それよりスマートな物が書きたい」

だとか

「効率的なものがほしい」

とか

「納期回答は」「当社の勝ちパターンです」「よっし、新プロジェクトのはたあげだー」(メガネ親父力説)

とかとか

とかくこの世は勘定奉行である。しかしそういう迷いは長机(いすじゃなくて)に足をひっかけて、帽子をあげ「あんたの実装は確かに早い、だが、世界で二番目だ」そうすると大阪ボスが「じゃあ、一番はだれだ」そこで指を自分に向けて(オレ)これでメンタルな部分はすべて解決する。

こういう気持ちがおしよせてきたときには、まずがまんをするというのが肝心だ。あせってもいけない、しかし遅れてもいけない、遅れるぎりぎりのところで差し出す。とかもいってらんないのでまず結果。結果が肝心。

 

これだけだと何やってんだかゼンゼンわかんないなさすがに、他人用に注をつけよう。

ということで、π/2のサインを出すのにだいたい9乗から信用に足る結果が出ることがわかった。

アセンブルのにC言語の命令だとちょっと便利度が高いので、アセンブる用にソースを再検討することにする。

まず桁あふれの問題があろう、もし11桁までの実装だと大きいほうで8桁の計算ができないといけない。

さらに小数点の桁数と精度の問題があり、現在小数点第6位まで計算しているがそこまで結果が必要かわかならい。今回の目的は256*256ドットぐらいの四角形の中に入る円を書きたいだけなので、シリコダマのつやまでわかるような微細な精度は求められていない。どのぐらいの計算までやればいいのかによってもかなり作業がらくになっていくと思うので、ここは一つまわりみちして、どんぐらいの精度でどんぐらいの円が書けるかについてかんがえてみたい。エンエンエーン

 

とりあえずは先ほどの結果を組み入れることにした

 

なんじゃこりゃ、円じゃないじゃん。ブー。

 

こんなところでくじけている場合でもないので、このまますすめていく。

 

ということで、夏休みのあさがおの成長か、がんばれベアーズのエラーシーンかというぐらいになってしまったが。

\sin x = \sum^{\infin}_{n=0} \frac{(-1)^n}{(2n+1)!} x^{2n+1}\quad\mbox{ for all } x

\cos x = \sum^{\infin}_{n=0} \frac{(-1)^n}{(2n)!} x^{2n}\quad\mbox{ for all } x

の無限大は無理なのでnの数を9まであげてみた結果がこれだ。乗数をあげていけば円もきれいになっていくのが分かるかと思う。

先ほどの検算プログラムに9まで入れて桁数を調べてみる。

θ=π/2とする

1のべき乗=1.000000:θの1=1.570000

分母が1のべき乗までの計算結果=1.570000

3のべき乗=1.000000:θの3=1.570000

分母が3のべき乗までの計算結果=0.925018

5のべき乗=2.000000:θの5=2.464900

分母が5のべき乗までの計算結果=1.004509

7のべき乗=6.000000:θの7=3.869894

分母が7のべき乗までの計算結果=0.999843

9のべき乗=24.000000:θの9=6.075733

分母が9のべき乗までの計算結果=1.000003

11のべき乗=120.000000:θの11=9.538901

分母が11のべき乗までの計算結果=1.000000

13のべき乗=720.000000:θの13=14.976075

分母が13のべき乗までの計算結果=1.000000

15のべき乗=5040.000000:θの15=23.512440

分母が15のべき乗までの計算結果=1.000000

17のべき乗=40320.000000:θの17=36.914532

分母が17のべき乗までの計算結果=1.000000

19のべき乗=362880.000000:θの19=57.955818

分母が19のべき乗までの計算結果=1.000000

21のべき乗=3628800.000000:θの21=90.990639

分母が21のべき乗までの計算結果=1.000000

23のべき乗=39916800.000000:θの23=142.855301

分母が23のべき乗までの計算結果=1.000000

 

50の直径の円を書くのに、べき乗で8桁、乗数で9桁の桁が必要なようだ。ここでもオレはあの聳え立つたかいやまのことを思い出す。そして考えるのだ「どうしよう」と。

たとえば3のべき乗までの計算でも90度までなら計算結果は間違いなく出てるみたいだから、これを鏡のように展開していけば望みの結果がでるのではないだろうか。これは志村けんのだいじょうぶだぁでも実証済みだ。

 

 →  →  こんな感じ、だいじょうぶだあ。

モデルはだいじょうぶだあに出演していた人

 

そうすれば基本的に3桁の数の割り算で計算がすむかもしれない。しかし、実際のところラディアンを出すのにπ/180としているので、そこの小数点も心配だし。割り算の結果で出るサインの結果も心配だ。結局少数第何位までつかってあの円が出ているのかもう少し調べないと時間やコードの節約になるのかあやしいもんだ。どうすればいいんだ、どうすれば

 

サナギマーーーン  チェイン具 つづく