2012-04-02 12 views
0

私は18桁の数字(num1)を持っています。私は整数配列に格納しています。 私は別の番号(num2)も持っています。これも18桁です。これは整数配列にも格納されています。番号のログの検索方法は?

私は、最初の番号のログを2番目の番号(ログnum1からベースnum2)のベースまで見つけなければなりません。

これをC++で行う方法は?数値が配列に格納されているので、私はlog関数を使うことができません。

+1

使用している大きな番号のライブラリがありますか?そうでない場合は、取得してください。 – littleadv

+1

手動で行う場合は、この質問への回答を参照してください。http://stackoverflow.com/questions/739532/logarithm-of-a-bigdecimal –

+4

18桁の数字?これらの整数にどのように格納されますか?どのエンディアン?パックされたバイナリ? ASCII 16進数? ASCII小数?何?どのような形式で出力をしたいですか? –

答えて

2

Googleにとって重要な用語はbigintです。 bigintsをサポートするさまざまなC++ライブラリがあります(つまり、あなたのメモリが許す限り長くなることがあります)。

私が使った唯一のbigintライブラリはGMPです。しかし、bigints(ログ、あなたの場合)にただ一つの関数が必要な場合は、もっと小さなライブラリを取るほうが実用的です。

ちょうどGMPページをチェックしただけで、bignumsと呼ばれています。したがって、これはソリューションを検索する際に使用するもう1つの有用な用語です。 ;-)