移動式のブログ

ガジェット、アニメ、プログラミング、考えたことその他色々・・・特にこれといったテーマはないカオスなブログです。

円周率求めるアルゴリズム その2

ガウスルジャンドルアルゴリズムでπ計算

ガウスルジャンドルアルゴリズムで、円周率を1000桁まで求める

前回、円周率を求めるプログラムをPythonで書いたが、途中までしか求めることが出来なかった。
idoushiki.hatenablog.com


64ビット浮動小数点で計算しているので、小数点以下14桁分まで求めるのが限界だそうだ。

指数部が全て 0(ゼロ、および非正規化数)の場合を除き、通常の数(正規化された数)の精度は、53ビット相当、十進に直すと約16桁である。
倍精度浮動小数点数 - Wikipedia


そのため、もっと多くの桁数を求めるコードを書いてみた
今回は、このサイトを参考にしてコードを組んで、円周率1000桁を求めることが出来た。

qiita.com

特徴として、多数の桁数を表すため、Decimalを利用している。

前回は、そのまま計算したので、パソコンが扱える数値の限界に達していた。

今回は大きな桁数が表示されたのでよかったよかった。



前回書いたコードがこちら

↑前回のコードの実行結果は以下の通り

2.91421356237309492343
3.14057925052216857509
3.14159264621354283875
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418
3.14159265358979400418

そして、今回書いたコードがこれ

今回書いたコードの実行結果は以下の通り

桁: 1000
円周率: 3.14159265358979323846264338327950288
4197169399375105820974944592307816406286208
9986280348253421170679821480865132823066470
9384460955058223172535940812848111745028410
2701938521105559644622948954930381964428810
9756659334461284756482337867831652712019091
4564856692346034861045432664821339360726024
9141273724587006606315588174881520920962829
2540917153643678925903600113305305488204665
2138414695194151160943305727036575959195309
2186117381932611793105118548074462379962749
5673518857527248912279381830119491298336733
6244065664308602139494639522473719070217986
0943702770539217176293176752384674818467669
4051320005681271452635608277857713427577896
0917363717872146844090122495343014654958537
1050792279689258923542019956112129021960864
0344181598136297747713099605187072113499999
9837297804995105973173281609631859502445945
5346908302642522308253344685035261931188171
0100031378387528865875332083814206171776691
4730359825349042875546873115956286388235378
7593751957781857780532171226806613001927876
611195909216420201

参考にしたサイトでは1002桁で設定してあるが、このコードは1000桁で設定しているので、最後の数桁が微妙に異なっている。
しかし、長い桁数を求めることが出来たので良かった。

このパイソンのコードと同じ働きをするプログラムをjavascriptでも書くことが出来れば、俺が制作している円周率ゲーム(javascript製)に利用できそうだ。

getcontext().prec = ketaでは、円周率の小数点以下何桁まで求めるかの桁数を表しているしかし、javascriptでDecimalやgetcontext().prec = keta の部分に相当する働きを実現するにはどうすれば良いのだろうか。また、pythonでいうDecimalと同じ働きを実現するにはどうすれば良いかわからない。
decimal.jsというものもあるようだが、よくわからない、そのままjavascriptで小数点以下の桁数を指定するにしても、100桁までが限界のようでうまくいかない。

HTML JavaScript css でスマホアプリ開発

Monacaとは何か

Monacaを利用すれば、スマホのアプリをJavascriptで開発できる

アンドロイドアプリを作りたいならJAVAiosアプリならswiftなどの言語が必要になる。

しかし、MonacaというWebサービスを利用すれば、HTML、JavaScriptCSSスマホアプリを作ることが出来る。

Monacaはハイブリッドアプリ開発することが出来る。

ハイブリッドアプリとは「iOS」「Android」どのデバイスでも動くアプリのことである。
よって、OSごとに別々にアプリを作る必要がない。


ja.monaca.io

クラウド上の開発環境が使えるので、ブラウザ上でアプリ開発が出来る。
つまり、Eclipseのような開発環境をPC上にインストールする必要がないので、気軽にアプリ制作に挑戦できる。

f:id:idoushiki:20171206221544p:plain
ブラウザでの開発環境の画面


play.google.com
Monacaデバッガーというアプリをインストールすれば、スマホの本体でテストプレイが出来る。
クラウド上で開発中のアプリをスマホと同期して、すぐにテストできる。

chrome cookie 保存できない

Chromeではローカルファイルのcookieを保存できない

javascriptの本を見ながらコードを書いていた。

cookieをブラウザに保存するコードを書いて、ブラウザはchromeで実行したのだが、cookieが保存されていなかった。

ソースコードを何度も見直して、本と同じように書き写したはずなのに動かない。

それなら、ブラウザの仕様の問題かと思い、explorerとかで実行してみたら、問題なく動いた。

chromeの仕様上cookieが保存できないのだろうと思い、検索してみたら、やはりそのようだ。


sakuramochi702.hatenablog.com


正確には、ローカルファイルのcookieを保存できないらしい。

つまり、「http://」とかではなく、自分のパソコンのファイル上に保存してある「file://」で始まるファイルのクッキーは扱えないということだ。

JavaScript 素数を求める

最近、JavaScriptが少し恋しくなってきたところなのでJavaScript素数を求める感じの何かを作った

N以下の素数を求めるという内容のコードを書いてみることにしよう。


素数は、1とその数自身以外では割りきれない数なのでnが素数であるかを判断するには、
iの初期値を2として
nをiで割るごとに
iを1ずつ増やしていって、
iがnになったときに
「n÷iの余りが0」が1回だけ成立したものが素数となる。

nが素数であるかどうかを求めるこの動作を、n=2から順番にN回繰り返すと、N以下の素数を抽出することが出来る。

100以下の素数を全て表示する動作をJavascriptで書くと、以下のコードのようになる。
gist.github.com

自転車で東京まで行けた

自転車で栃木県から東京都まで行くことに成功

idoushiki.hatenablog.com

前回、徒歩で上野まで行くという記事を書いたが、さすがに徒歩だと何日もかかりそうなので、自転車を利用した。
途中で疲れてあきらめるかもしれないと思ったが、無事、上野駅の前までたどり着くことが出来きた。

f:id:idoushiki:20171106131734j:plain


1日目に、東京都の足立区までたどり着き、そこで休んだ。2日目に上野駅に到着した。
栃木県から東京都にたどり着くのには、7時間ほどかかった。



埼玉県あたりまで国道4号線をまっすぐ進むだけのみちのりだったので、道に迷うこともなく、速い速度で自転車を進めることが出来た。
今回通ったルートは、広くてほとんど直線な道で占められていたので1日で100km近く移動することが出来たのだろう。山道やごちゃごちゃした道ばかりだったら100km進むのは厳しそうだ。


今回、天候や風向きに問題がなくて、坂道が少ないところを進むなら自転車で7時間で100km進むことができることがわかったので良かった。
自分が一日に進める距離がどれぐらいなのかわかれば、自転車で遠くまで行く計画をたてるのに便利だ。

今度は、別の場所を目指したり、山道を通るような場所を目指したりしたいと思う。







1日目、東京にたどり着いたときに、ニー株のシェハウスに行って、数人でゲームをしたり休憩したりした。
久しぶりにスマブラで対戦が出来たので、とても良かった。4人でスーパーファミコン桃太郎電鉄もプレイしたので、面白かった。
f:id:idoushiki:20171106131705j:plain
桃鉄ゲーム画面

f:id:idoushiki:20171113115723j:plain
猫のようす

荒川 千住新橋
f:id:idoushiki:20171106131641j:plain

f:id:idoushiki:20171106131656j:plain

スカイツリーも見える。

ポテサルサ

きょうのおやつ



うすしお味ポテトチップスとサルサソースを混ぜて作った

f:id:idoushiki:20171023194728j:plainf:id:idoushiki:20171023194734j:plain

中途半端に残ったサルサソースとポテチ



f:id:idoushiki:20171023194807j:plain
皿にぶち込む



f:id:idoushiki:20171023194826j:plain

スプーンでポテチを砕き、かき混ぜて、完成です

ブックオフで本を売った

ブックオフ 買取

ブックオフで、本を売ってきた。
本を売るの、人生初かもしれない。

f:id:idoushiki:20171023193951j:plain

今回、売った本は微妙なノウハウ本2冊と、要らなくなった技術書1冊、残りはラノベの計36冊だ。
何かのサイトに、1冊十円程度でしか買い取ってくれないみたいなことが書かれていたので、400円行けば良いところだろうなんて思っていた。

しかし、良い意味で予想は外れた。買取価格は、合計で1085円だった。

詳細として
文庫本70円  8冊
文庫本40円  6冊
文庫本20円  8冊
文庫本10円 11冊
単行本5円 3冊


本の状態を見て買取価格を決めているようなので、比較的綺麗で状態が良い本が70円のやつだったのだろう。



本の買取は、免許などの身分証明書と、売りたいものを持っていけばできる。
手続きなどは、名前や住所などを書くだけなので、簡単にできる。