問題タブ [logarithm]
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.
java - BigInteger の対数
BigInteger
たとえば、 2 64を超える数があります。その数値の対数を計算したいのですBigInteger
が、方法BigInteger.log()
がありません。BigInteger
大きな値の (自然) 対数を計算するにはどうすればよいですか?
r - Rでの対数目盛表示のラベル付け
Rで対数目盛にスケーリングされた軸を使用して、組織図、散布図、およびその他のプロットをプロットするときに、表示されている軸の代わりに10 ^ -1 10 ^ 0 10 ^ 1 10 ^ 2 10^3などのラベルを使用するにはどうすればよいですか。 -1、0、1、2、3など。hist()、plot()などのコマンドに追加する必要があるパラメーターは何ですか。
r - Rのx軸にマイナー対数ティックを表示する
正規分布プロットと、0、10 ^ 0、10^1を表示する対数スケールのx軸を持つヒストグラムプロットがあります...メジャーティックの間にマイナーティックを含めたいと思います。実際、前の質問で与えられた解決策を使用して、メジャーティックの形式を1、2、3などから10 ^ 0、10 ^ 1、10 ^ 2、10^3に変更することができました。私は主要な目盛りに次のコードを使用しました:
これを編集して、マイナーティックにラベルを付けずにマークを付けることはできますか?
c++ - lg(N!)の計算:誰もがより良い再帰的方法を持っていますか?
投稿のタイトルが私の質問に対応していると思います。しかし、繰り返しになりますが、私は誰かがこの問題に対してより良いアプローチを持っているかどうか疑問に思っています。
人々の反応に基づいて、これは本の問題であり、本はそれを再帰的に行うように言っていることを明確にする必要があります。私はプログラミングの問題を練習していて、他の人からフィードバックを得ようとしているので、より良いプログラマーになるために取り組んでいるときに間違いを見つけることができます。
python - ヒストグラムを正規化する方法
等ログ間隔のビン内の配列「d」をカウントするこのヒストグラムがあります。
問題は、面積が1になるように正規化することです。Normed = Trueオプションを使用しても結果が得られませんでした。これは、対数ビンを使用していることが原因である可能性があります。したがって、次のようにヒストグラムを正規化してみました。
しかし、H_normとビンをプロットする方法がわかりません
javascript - 対数 Y 軸のグラフを作成する
Y軸に算術(一定の目盛り)を使用してさまざまなチャートを作成しました。ここで、対数 Y 軸を持つものを作成したいと思います。
例: 1 と 2 の間の距離は、2 と 4 と同じにする必要があります。
スケーリング方法に関するアイデア
ありがとう
php - 緯度と経度を指定して、近くの最も近い場所をグループ化する方法は?
場所の配列があり、各項目にはその場所の名前、緯度と経度が含まれていることを想像してください。たとえば、マイル単位の半径を使用して、近くのアイテムをグループ化します。
PHPでこれを達成するにはどうすればよいですか?
algorithm - ログ機能の複雑さは?
10 を底とする対数関数の複雑さはどれくらいですか?
algorithm - De Bruijn のような `2^n - 1` のシーケンス: どのように構築されていますか?
Bit Twiddling hacksの乗算とルックアップを使用して O(lg(N)) 操作で N ビット整数の対数底 2 を検索するというエントリを見ています。
そのエントリの 2 番目のアルゴリズムがどのように機能するかを簡単に確認できます
n = log2 v
これは が 2 の累乗であることがわかっている場所を計算v
します。この場合0x077CB531
は通常の De Bruijn 列であり、残りは明らかです。
ただし、そのエントリの最初のアルゴリズム
私にはもう少しトリッキーに見えます。v
最も近い大きな値にスナップすることから始め2^n - 1
ます。次に、この2^n - 1
値に を掛けます0x07C4ACDD
。この場合、前のアルゴリズムの DeBruijn シーケンスと同じように機能します。
私の質問は、この魔法のシーケンスをどのように構築するの0x07C4ACDD
ですか? つまり、値を乗算したときに一意のインデックスを生成するために使用できるシーケンスをどのように構築するの2^n - 1
でしょうか? 乗数について2^n
は、上記でわかるように、単なる通常の De Bruijn シーケンスであるため、どこ0x077CB531
から来たのかは明らかです。しかし、2^n - 1
乗数は0x07C4ACDD
どうですか?ここで明らかな何かが欠けているように感じます。
PS私の質問を明確にするために:これらのシーケンスを生成するアルゴリズムを実際に探しているわけではありません。私は、多かれ少なかれ些細なプロパティ (存在する場合) にもっと興味があります0x07C4ACDD
。それ0x077CB531
を機能させるプロパティは非常に明白です.1ビットステッピングでシーケンスに「保存」されたすべての5ビットの組み合わせが含まれています(これは基本的にDe Bruijnシーケンスです)。
一方0x07C4ACDD
、 はそれ自体では De Bruijn シーケンスではありません。では、構築時にどのようなプロパティを目指していたのでしょうか0x07C4ACDD
(非構築的な「上記のアルゴリズムを機能させる必要がある」以外に)? 誰かがどういうわけか上記のアルゴリズムを思いつきました。したがって、彼らはおそらく、このアプローチが実行可能であり、適切なシーケンスが存在することを知っていました. 彼らはどうやってそれを知ったのですか?
たとえば、任意の のアルゴリズムを構築する場合は、次のようにv
します。
最初。次に、2 のべき乗に変換するだけです++v
(v
オーバーフローしないと仮定しましょう)。次に、最初のアルゴリズムを適用します。--r
そして最後に、最終的な答えを得るためにやります。ただし、これらの人々はそれを最適化することに成功しました。乗数を変更してテーブルを再配置するだけで、先頭++v
と末尾のステップを削除しました。--r
彼らはそれが可能であることをどのように知ったのですか? この最適化の背後にある計算は何ですか?
python - Python での和の対数の数値関数
と が与えられた場合、 (数値的に安定した方法で)計算したいと思いlog(a)
ます。log(b)
log(a+b)
私はこれのために小さな関数を書きました:
これが最も時間のかかるコードであるプログラムを作成しました。明らかに、最適化を試みることができます (たとえば、再帰呼び出しを排除します)。
とから計算するための標準math
または関数を知っていますか?numpy
log(a+b)
log(a)
log(b)
そうでない場合、この関数の単一の C++ フックを作成する簡単な方法を知っていますか? これは複雑な関数ではなく (float を使用します)、前述のとおり、実行時間の大部分を占めています。
よろしくお願いします、数値法忍者!