タグ

多倍長演算に関するdelegateのブックマーク (15)

  • 超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita

    1. はじめに ~メインを読むための準備~ まず、大きな数の計算の話をする前に、少しコンピューターと計算回数について話しましょうか。 コンピューターは、現代ではソフトウェアやアプリケーションの開発に使われていますが、これには重要な背景があります。これは「計算がめっちゃ速いこと」です!人間なんかと比べたら、圧倒的な計算スピードを誇ります。 1-1. 人間の計算速度はどのくらい? まず人間はどのくらいの速度で計算できるでしょうか?速い人も遅い人もいると思います。 例えば、$628 \times 463$ の計算を、今やってみましょう。10 秒以内で計算できたらかなり速い方でしょう。この計算では、次のように「単純計算」を合計 28 回もしていることになります。 9 回の 1 桁 × 1 桁の掛け算 6 回の 1 桁 × 1 桁の足し算 13 回の繰り上がり計算 もし $628 × 463$ が

    超高速!多倍長整数の計算手法【前編:大きな数の四則計算を圧倒的な速度で!】 - Qiita
  • 画楽のS研究所

  • 多倍長で円周率を計算する

    ■多倍長で円周率を計算する 円周率を計算する公式は沢山ありますが Machinの公式を使って求めたいと思います 公式で使われているアークタンジェントを求めるには、 ■まずは上の公式を使い浮動小数点型を使って円周率を求めるプログラムを書いてみます #include <stdio.h> double arctan(double x){ double a=x;//乗数 double b=1.0;//分母 int flag=0;//引き算/足し算を交互に行うフラグ double pos; double ans=x; do{ a=a*x*x; b+=2; pos=a/b; if(flag=(!flag)){ ans-=pos; }else{ ans+=pos; } }while(pos>0.00001);//小数点以下5桁の精度であきらめる return ans; } int main(){ pri

  • 多倍長整数 @ 素因数分解 @ IDM

    多倍長整数処理のアルゴリズムを、実装を与えながら説明する

  • 多倍長整数 @ 多倍長整数 @ 素因数分解 @ IDM

    最終更新日:2003.11.29 目次 概要 多倍長整数とは 巨大整数の構造 自然数の表現 負数の表現 不変性と再確保 YMPについて 移植性 入手法とライセンス 概要 多倍長整数以下の一連の文書では、多倍長整数の実装に用いられる典型的なアルゴリズムを論じ、C言語によって具体的な実装を与える。 一番上に戻る 多倍長整数とは 多倍長整数とは、コンピュータに巨大な整数を扱わせるための仕組みである。 実在する多くのコンピュータの演算装置は、初めからある程度の大きさまでの整数を演算できるように作られている。例えば、2003年現在個人用としてIntel x86シリーズを搭載したコンピュータが広く普及しているが、これは32bitの整数を演算するための機械語を持っている。しかし、これだけでは十分でないことがある。32bitでは0~232-1=4294967295の範囲しか表すことができない。格的な商用

  • C/C++向け多倍長整数資料を探している人のためのガイド - 世界線航跡蔵

    多倍長整数の解説執筆がいつまで経っても進展しないので、お詫びの印にガイドを書いてみる 実装が欲しいよ派(実用主義派) お金は掛けたくないよ派 GMPとか、Mintはどうでしょうね。前者は開発者もユーザーも多いのでその点で信頼性が期待できますし、かなり速いです。後者は、x86限定ですが、ドキュメントも日語ですし分かりやすく、設計上も使いやすい感じです。作者の苫米地聰さんは数体篩い法の実装などで知られる、計算実験に関してはかなり凄い人です。 あるいは、いっそPythonインタプリタやGaucheを埋め込んでしまうのはどうでしょうね。どちらもCプログラムに埋め込み易く書かれていますし、元来は汎用のスクリプティング言語ですから、アプリケーションにマクロ言語機能も付けられるというおまけがあってお得な感じです。アプリケーションのマクロ言語としてはRubyは最高と思うのですが、如何せん、現Ruby実装

    C/C++向け多倍長整数資料を探している人のためのガイド - 世界線航跡蔵
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 円周率 10000 桁

    arctan(1/m) を求めることができるプログラムを作り、 バグを取るために arctan(1/5) の計算をして、Windows の電卓で計算した arctan(1/5) の値と比較することにします。 そのため最初は桁数をあまり大きくしません。 #include <stdio.h> #define M 8 // 4*(M-1)=小数点以下の桁数 (10 進表示) #define N 7 // 4*(N-1)=小数点以下の桁数 (16 進表示) // M-1≒1.204(N-1) (M, N の関係) void Add(unsigned a[], unsigned b[]); void Sub(unsigned a[], unsigned b[]); void Div(unsigned a[], unsigned d); void Mul(unsigned a[], unsigned

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 先日、Visual C++をインストールしたのは - rscのブログ

    先日、Visual C++をインストールしたのは、long longを使うためでした。(^_^;

    先日、Visual C++をインストールしたのは - rscのブログ
  • プログラミングの実験

    ■ プログラミングの実験 ■ 設備を操作するプログラム パソコンで照明を操作する ログファイルを解析するアプリのひな型をVB6で作る ■ Windowsでみんなビックリさせれます パスワード設定解除プログラムについて 押せないボタンなどを押せるようにする ボタンを他のプログラムに貼り付ける 他のプログラムのコントロールの位置を移動させる ■ ベーシック言語を作っちゃおう C++でBASICライクなプログラムを書いてみる 数式を逆ポーランド法に変換するための事柄 C++で逆ポーランド法電卓みたいなのを書いてみる C++でbasicインタプリタを作る basicインタプリタをマクロ言語として使用する ■ 多倍長で計算 10進数⇔16進数 変換 16進数で大きな桁数の計算を行う 10進数で大きな桁数の計算を行う 多倍長で円周率を計算する ■ がんばればOSが作れるかも OSなしで実行できるプログ

  • 多倍長演算について

    多倍長演算について

  • GMPの使い方

    GMPは多倍長計算を非常に高速に行うライブラリです。アセンブリ言語を少しかじったことがある程度ではGMPの計算速度には太刀打ちできないでしょう。あえて欠点をあげればLinuxライクな開発環境がないとmakeできないということでしょうか。GMPはGMP-ECMやGGNFSなどの素因数分解ソフトウェアで利用されています。もちろん、このライブラリを呼び出すプログラムを自分で書くこともできます。 1. Cygwinのインストール CygwinはWindowsLinuxライクな環境を構築するためのソフトウェア群です。GMPをインストールするためにLinuxライクな環境が必要なので、先にCygwinをインストールしておきます。 メモ:Cygwinのインストールには時間がかかります。休日などに余裕を持って行いましょう。 1.1 Cygwinをインストールする場所を決める 十分な空き容量のあるドライブを

  • 円周率.jp

    定義 円周率について 多角形を用いた求め方 確率を用いた求め方 なぜπを使うのか arctan とは 円周率の値 100万桁まで 連分数 近似値 円周率記憶 記憶桁数の記録 覚え方 円周率計算記録 手計算(正多角形) 手計算(arctan) コンピュータ 個人コンピュータ 円周率を求める公式・アルゴリズム 多角形の利用 arctan系 Ramanujan系 連分数系 AGM系 Borwein系 BBP系 円周率計算プログラム 計算プログラムの紹介 Spigot プログラム 多倍長計算について 加減算 乗算 Karatsuba 法 Toom-Cook 法 FFT Newton 法 Binary splitting法 DRM法 その他 雑記(後でどこかに纏める情報) 参考文献

  • 多倍長演算ライブラリ

    世の中には、山ほどこの手のライブラリが紹介されているが、このライブラリは、全て、VB.NET にて作成されていることが特徴である(ライブラリをブラックボックスとすれば、利用者には無関係であるが・・・)。速度の点では、Cライブラリに譲るが、原理を理解したり、手軽さは断然優位である。もともと、筆者の興味と自分自身の知識の習得のために始めたものなので、それほど大したモノではない。 初期版にFFT乗算系を組み込んで、一応の高速化を行った。今までは、別々(バラバラ)に解説していたが、それらをまとめて解説することにした。 2006/6/1 に、隠し桁方式をやめ、最小公称精度を64桁に変更した。 ●概要 ○基事項 動作環境 基仕様 基方式 ○ソフトウェア構成 UltraPrecisionクラス UltraLong構造体 UltraMathクラス FFTクラス 環境設定 ●実行/モジュール ○実行時

  • 1