問題タブ [probability]

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.

0 投票する
3 に答える
4818 参照

python - Python、SimPy:三角確率分布から値を生成する方法は?

下限A、モードB、上限Cの三角確率分布から生成された値をパラメーターとして使用するシミュレーションを実行したいのですが、Pythonでこの値を生成するにはどうすればよいですか?この分布にはexpovariate(lambda)(ランダムから)のような単純なものがありますか、それともこれをコーディングする必要がありますか?

0 投票する
3 に答える
823 参照

math - 確率と相対頻度

事象の確率を推定するために相対頻度を使用する場合、実験の数に基づいた推定値はどれくらい良いでしょうか? 標準偏差は適切な尺度ですか? 紙/リンク/オンラインブックが最適です。

http://en.wikipedia.org/wiki/Frequentist

0 投票する
2 に答える
250 参照

language-agnostic - 確率の分割

私は正常に動作するPHPの次のコードを持っています(実行するたびに多かれ少なかれ10の結果を返します):

そして、Chance()関数は次のようになります。

ここで、これらの10個の(平均)結果を次の4つのセグメントにランダムに分割します。

  1. 10%* 10=1の確率を持つ最初のもの
  2. 20%* 10=2の確率を持つ2番目のもの
  3. 30%* 10=3の確率を持つ3番目のもの
  4. 40%* 10=4の確率を持つ4番目のもの

ご覧のとおり、すべてのセグメントの合計(1 + 2 + 3 + 4)は10に等しいので、これを行うために次の関数をコーディングしました。

問題は、GetAboutTenWeightedRandomNumbers関数を数十回実行した結果が、GetAboutTenRandomNumbers関数によって返される結果よりもはるかに低いことです。私は根本的な数学の間違いを犯していると確信しています。どこにあるのか疑っていますが、それを解決する方法がわかりません。

0 投票する
5 に答える
26129 参照

language-agnostic - ハッシュの衝突確率を評価するにはどうすればよいですか?

検索システムのバックエンド アプリケーションを開発しています。検索システムはファイルを一時ディレクトリにコピーし、ランダムな名前を付けます。次に、一時ファイルの名前をアプリケーションに渡します。私のアプリケーションは、限られた時間内に各ファイルを処理する必要があります。それ以外の場合はシャットダウンされます。これはウォッチドッグのようなセキュリティ対策です。ファイルの処理には時間がかかる可能性が高いため、このシナリオを処理できるアプリケーションを設計する必要があります。次に検索システムが同じファイルのインデックスを作成しようとしたときにアプリケーションがシャットダウンされた場合、別の一時的な名前が付けられる可能性があります。

明白な解決策は、検索システムとバックエンドの間に中間層を提供することです。バックエンドへのリクエストをキューに入れ、結果が到着するのを待ちます。リクエストが中間層でタイムアウトした場合 - 問題ありません。バックエンドは引き続き動作し、中間層のみが再起動され、後で検索システムによってリクエストが繰り返されたときにバックエンドから結果を取得できます。

問題は、ファイルを識別する方法です。それらの名前はランダムに変わります。MD5 のようなハッシュ関数を使用して、ファイルの内容をハッシュするつもりです。私は誕生日のパラドックスをよく知っており、リンクされた記事からの推定を使用して確率を計算しました。100,000 個以下のファイルがあると仮定すると、2 つのファイルが同じ MD5 (128 ビット) を持つ確率は約 1,47x10 -29です。

このような衝突確率を気にする必要がありますか、それともハッシュ値が等しいとファイルの内容が等しいと仮定する必要がありますか?

0 投票する
5 に答える
2459 参照

algorithm - 特定のプロパティを満たすランダムな配列要素を選択する

という名前のリストがありelements、それぞれがブール値のプロパティ を満たしているか満たしていないとしますpp一様分布でランダムに満たす要素を1つ選びたい。このプロパティを満たす項目がいくつあるかは事前にわかりませんp

次のコードはこれを行いますか?:

(randInt(n)でランダムな intkを返します0 <= k < n。)

0 投票する
1 に答える
825 参照

python - 確率時系列、観測データの確率(既視感)

わかりました皆さん...この質問を見てくれてありがとう。大学で以下のことをしたことを覚えていますが、正確な解決策を忘れていました。正しい方向に舵を切るテイカー。

N のデータの時系列 (3 つを使用します) があります。データ系列は時間順に連続しています (たとえば、obsOne[1] は obsTwo[1] および obsThree[1] と共に発生しました)。

obsOne[47, 136, -108, -15, 22, ...], obsTwo[448, 321, 122, -207, 269, ...], obsThree[381, 283, 429, -393, 242, ...]

ステップ 2. データ シリーズから、データ シリーズごとに幅 Z の一連の X レンジ ビンを作成します。(観測 obsOne の例: bin1 = [<-108, -108] bin2 = [-108, -26] bin3 = [-26, 55] ... binX = [136, > 136]

ステップ 3. 次に、データ系列のすべての可能な組み合わせを含むテーブルを作成します。したがって、4 つのビンと 3 つのデータ系列がある場合、すべての組み合わせは合計 4x4x4 = 64 の可能な結果になります。(たとえば、row1 = obsOne bin1 + obsTwo bin1 + obsThree bin1、row2 = obsOne bin1 + obsTwo bin1 + obsThree bin2、... row5 = obsOne bin1 + obsTwo bin1 + obsThree binX、row6 = obsOne bin1 + obsTwo bin2 + obsThree bin1、row7 = obsOne bin1 + obsTwo bin1 + obsThree bin2、row9 = obsOne bin1 + obsTwo bin2 + obsThree binX、...)

ステップ 4. データ系列に戻り、データ系列の各行がテーブルのどこに該当するかを調べ、観測が何回該当するかを数えます。(例: obsOne[2] obsTwo[2] obsThree[2] = テーブルの行 30、obsOne[X] obsTwo[X] obsThree[X] = テーブルの行 52。

ステップ 5.次に、テーブルで正の一致がある行のみを取得し、その行に含まれる観測値の数を数え、データ系列の観測値の総数で割ります。これにより、観測されたデータのその範囲の確率が得られます。

数学の専門家ではなく、この基本的な質問で申し訳ありません。私は何年も前にこれを行いました。どの方法を使用したか忘れましたが、この長い (古代の「手動」) 方法よりもはるかに高速でした。当時、私は python を使用していませんでした。それは、C++ の他の独自のパッケージでした。この問題を Python (現在は Python ショップ) で解決できる何かが存在するかどうかを確認したいのですが、いつでも拡張できるので、それはソフトな制約です。

0 投票する
10 に答える
28067 参照

algorithm - 二項累積分布関数を効率的に計算するにはどうすればよいですか?

「成功」の確率が P であることを知っているとしましょう。テストを N 回実行すると、S 回の成功が見られます。このテストは、不均等に重み付けされたコインを投げることに似ています (おそらく、表が成功で、裏が失敗です)。

S 回の成功、または S 回の成功より少ない回数の成功のいずれかが見られるおおよその確率を知りたいです。

たとえば、P が 0.3、N が 100 で、20 回成功した場合、20回以下の成功を得る確率を探しています。

もう一方のハドで、P が 0.3、N が 100 で、40 回成功した場合、さらに 40 回成功する確率を探しています。

ただし、この問題は二項曲線の下の領域を見つけることに関連していることは承知しています。

  1. 私の数学の専門家は、この知識を効率的なコードに変換することはできません
  2. 二項曲線で正確な結果が得られることは理解していますが、本質的に非効率的であるという印象を受けます。おおよその結果を計算する高速な方法で十分です。

この計算は高速でなければならず、理想的には標準の 64 ビットまたは 128 ビットの浮動小数点計算で決定できる必要があることを強調しておきます。

P、S、および N を取り、確率を返す関数を探しています。私は数学表記よりもコードに精通しているので、回答には疑似コードまたはコードを使用することをお勧めします。

0 投票する
4 に答える
1474 参照

math - ユーザーがハイパーリンクをクリックする確率を効率的に判断する

だから私はウェブページにたくさんのハイパーリンクを持っています。過去の観察から、ユーザーがこれらの各ハイパーリンクをクリックする確率がわかります。したがって、これらの確率の平均と標準偏差を計算できます。

このページに新しいハイパーリンクを追加します。少しテストした後、このハイパーリンクが表示されている20人のユーザーのうち、5回クリックすることがわかりました。

他のハイパーリンクのクリックスルー確率の既知の平均と標準偏差(これは「事前の期待」を形成します)を考慮に入れて、ユーザーが新しいハイパーリンクをクリックする確率を効率的に見積もるにはどうすればよいですか?

素朴な解決策は、他の確率を無視することです。この場合、私の見積もりは5/20または0.25です。ただし、これは、関連情報、つまりクリックスルー確率の事前の予測を破棄していることを意味します。

だから私はこのような関数を探しています:

私は数学表記よりもコードに精通しているので、どの回答でも数学よりもコードまたは擬似コードを使用するようにお願いします。