blog個人的な技術ブログです。SAPネタを充実したい。https://twitter.com/matsukawarこの広告は、90日以上更新していないブログに表示しています。その他たぶん、あまり話題になっていない?みたいなのですが、.NetFramework4.0から正式搭載されたSystem.Numerics.BigIntegerクラスで遊んでみたいと思います。前回のバージョンでは搭載が断念された機能でいよいよ搭載された科学技術演算用を想定した仕組みです。多倍長整数演算のような大規模な演算は、自力で計算処理を実装する必要がありました。独自に実装したほうが、早いと仰る人もいると思いますが、数学が得意じゃない私からすればありがたい機能です。BigIntegerクラスでは、四則演算はもちろんのこと、比較演算子がoverrideされてるため、使い方がめちゃくちゃ簡単です。既存のBIT数で表現しきれない膨大な数値を取り扱うことができます。64)を超える数値を計算しようとすると、オーバーフローしてしまいますが、BigIntegerを使うことで、これは回避できます。以下は、ニュートン法による平方根を求める関数です。※残念ながら、平方根または、逆平方根については、BigIntegerクラスでは標準装備されていないみたいなので、自力でやる必要がありそうです。xnn;}いろいろ調べたところ、ニュートン法は逆平方根の場合に有利で、1/root(X)を算出してから、Xを掛けてroot(X)を求める方法が一般的なようです。ニュートン法の欠点は、割り算を多様する点です。割り算は四則演算の中でも計算量が多く、時間がかかります。この解決策としては、初期値X(0)に、近似値を入れることにより、より早く収束させることです。X(0)の値の求め方についてはいろいろ工夫がありそうです。本題ですが、円周率を計算してみましたので、プログラムを紹介します。アルゴリズムは、サラミン・ブレント法を使用しました。Azure上でやるようなツールなんかおもしろそうです。»プロフィールid:matsukawarとりあえず、ダイアリーからお引越し中です。構築するTFSの作業項目のカスタマイズは簡単にできます月別アーカイブはてなブログをはじめよう!matsukawarさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。