問題タブ [gmp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - libgmp での中止の回避
libgmp を使用するコードがいくつかあります。ある時点で、ユーザーは非常に大きな数の階乗を要求することがあります。残念ながら、これにより libgmp が中止シグナルを発生させてしまいます。
たとえば、次のコード:
結果:
どうやら、生産された数は本当に大きいです。とにかく、中止よりもエラーをより適切に処理する方法はありますか? これは GUI ベースのアプリケーションであり、この種の問題を処理するには、アプリケーションを中止することはほとんど望ましくありません。
c - 数学/bignum チャレンジで必要なヘルプ
次のコード (/challenge) に苦労しており、それを解決する最善の方法は何かと考えていました。
疑似 (のような) コード
コードを正しく理解していれば、次のようになります。
'firstargument' は、./program 123456... のようにプログラムに渡される引数です。
実際のコード
eclipse-cdt - Eclipse C++ (CDT Helios) で GMP を使用する際の問題
コードを CDT でコンパイルしたいと思います。
コンパイルすると、次のようなエラーがいくつかありました。
どうすればいいですか?GCC リンカーに libgmp.a と libgmpxx.a を追加しましたが、それでも問題が発生します。ご回答ありがとうございます。:)
gmp - GMPを使用して数値を除算する2の最大べき乗を見つける方法は?
ここのGMPドキュメントによると:
関数: unsigned long int mpz_remove (mpz_t rop, mpz_t op, mpz_t f)
op から因数 f のすべての発生を削除し、結果を rop に格納します。戻り値は、そのようなオカレンスが削除された回数です。
したがって、mpz_remove 関数を使用して、タイトルの質問に答えることができるはずです。現時点では、私のコードは次のようになります。
これは正常に動作しますが、必要な結果は K0 を temp で割ったものです (temp 自体ではありません) [その後の除算演算を追加することで取得できますが、無駄に思えます]。
実際に K0/temp を取得するにはどうすればよいですか?
c++ - GMP とスマート ポインター
私はgnumpで作業しており、返さなければならない関数がありmpz_t
ます。したがって、生のポインターを使用して値を返す必要があります。new
ポインター用にスペースを割り当て、関数のパラメーターとして送信します。
スマートポインターを使用する方が良いと思います。しかし、私は以前に彼らと一緒に仕事をしたことはありませんでした。shared_ptr
マニュアルを読みましたが、関数から変数を返すために適切に使用する方法をまだ理解できません。
どんな例でも感謝します。
android-ndk - Android NDK コンパイル gmp ライブラリ
プロジェクトで再利用できる静的または共有ライブラリとして android ndk の GMP をコンパイルする方法/
c++ - gmp で効率的に大きな数を因数分解する
簡単に 1k ビットに達する大きな数のすべての素因数を取得する必要があります。数字は実質的にランダムなので、難しいことではありません。効率的に行うにはどうすればよいですか?私はGMPライブラリでC++を使用しています。
編集:皆さんは私を誤解していると思います。
素数とは、その数のすべての素因数を取得することです。
私の英語で申し訳ありませんが、私の言語では素数と因数は同じです:)
明確化(OPの他の投稿から):
私が必要としているのは、C ++とGMP(Gnu Multiple Precession lib)を使用して、またはあまり好ましくない他の方法を使用して、大きな数(2048ビットになる可能性がある)を効率的に因数分解する(数の素因数を見つける)方法です。数字は実質的にランダムなので、因数分解が困難になる可能性はほとんどなく、因数分解が困難な場合でも、数字を再ロールできます(選択できません)。
c++ - 大きな数の因数分解
重複の可能性:
gmp を使用して多数を効率的に因数分解する
すでに投稿したことは知っていますが、人々は私の意図を誤解し、修正するまで投稿は停止しました。
私が必要としているのは、C++ と GMP(Gnu Multiple Precession lib) を使用して、またはあまり望ましくない他の方法を使用して、大きな数 (2048 ビットになる可能性があります) を効率的に因数分解する (素因数を見つける) 方法です。
数字は実質的にランダムなので、因数分解が困難になる可能性はほとんどなく、因数分解が困難な場合でも、数字を再ロールできます(選択できません)。
どうすればいいのですか?
php - 32ビットシステムで64ビット整数のビット演算を使用する(php_gpm拡張子なし)
私はいくつかの解決策を見つけました32ビット値を使用して64ビットローテーションを行う効率的な方法ですが、PHPではありません。
最大の問題は、リモートサーバーから大きな整数9223372036854775808(10)
をとして取得することhexadecimal 8000000000000000(16)
です。
本番サーバーで有効にする機会はありませんがphp_gmp (extension)
、受信した値の選択したビットを確認する必要があります。本番サーバーと開発サーバーはどちらも32bits machines
です。
macos - これは何ですか?【プログラムバグ】
私はこれを理解するのに苦労しています..だから助けを求める時が来ました.
OS: OSX、Snow Leopard
gcc: gcc の Xcode バージョン、4.2.1
ライブラリ: gmp、gmpxx
問題: 関数が最後に次のようにクラッシュします:
私は関数initで free() を呼び出していません。関数は閉じ中括弧まで正しく実行されます..したがって、クラッシュポイントはローカルオブジェクトのデストラクタにある必要があります(右?)
面白いことは次のとおりです。
a) 静的にリンクされている場合、プログラムは正常に動作するように見えますが、コードが *.dylib に組み込まれ、動的にロードされている場合にのみ失敗します。
b) プログラムは、gmp/gmpxx の 2 つの完全に異なるバージョンで同じように失敗します。[4.3か何かと5.01]
c) Ubuntu 10.5 LTS では、静的リンクと動的リンクの両方のバージョンが正常に動作します。
コードはコンパイラによって生成されたものであり、手書きのコードではありません。ユーザー コードは、最上位のドライバー プログラムによって実行されます。システムは、数百回の回帰テストを正常に実行します。ただし、この特定のテスト ケースでは、次の手書きのコードが使用されます。
しかし、それは私にはうまく見えます。関数のスタック フレームには、いくつかの mpz_class、mpq_class、および mpf_class オブジェクトが含まれています。
gmp/gmpxx のバグ以外に考えられる唯一のことは、ランタイム システムまたは生成されたコードがメモリを破損していることです。割り当てられていない「解放」されたアドレスは疑わしいです (ヒープの近くにはありません)。-g フラグを指定して gmp のバージョンをビルドしましたが、それ以上の情報は得られません (これは、gmpxx クラス デストラクタ内からの解放が悪いわけではないことを示唆しています)。
アイデアが必要です!今どこを見ればいいのかわからない。事前にThx :)
ソースへのリンク
http://felix-lang.org:1116/ $/home/skaller/felix/felix/build/release-optimized/test/gmp/gmp-0.cpp
メタ: SO のマークダウンが機能しない! そのため、手動でコピーする必要があります。
Felixコードへのリンクを投げたほうがいいかもしれません.Felixコードはもう少し読みやすく、楽しいものがあります(ユーザー定義の構文や、ライブラリに行くとインスタンス化されている型クラスを見ることができます)
http://felix-lang.org:1116/ $/home/skaller/felix/felix/build/release-optimized/test/gmp/gmp-0.flx