問題タブ [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.
algorithm - ダウンロード完了時間の見積もり・予測
単純すぎるように見える「残り X 分」ダイアログをからかっていますが、どうすれば改善できますか?
事実上、入力は現在までのダウンロード速度のセットであり、これを使用して完了時間を推定する必要があります。おそらく、Y% 信頼区間を使用して「残り 20 ~ 25 分」などの確実性を示します。
これを行うコードは小さなライブラリに入れられ、プロジェクト全体で使用される可能性がありますが、それは本当に難しいのでしょうか? どのようにしますか?以前のダウンロード速度にどの程度の重みを付けますか?
それとも、すでにいくつかのオープン ソース コードが公開されていますか?
編集:要約:
- より良いアルゴリズム/フィルターなどにより、推定完了時間を改善します。
- 単一の時間 (「1h45-2h30 分」) の代わりに間隔を指定するか、精度を制限します (「約 2 時間」)。
- 進捗がいつ停滞したかを示します。ただし、進捗が一貫して停滞し、その後継続する場合は、対処できるはずです。おそらく「約2時間、現在失速中」
matlab - MATLABで二項分布のPMFとCDFを計算するにはどうすればよいですか?
二項分布の確率質量関数と累積分布関数を計算する必要があります。これを行うためにMATLABを使用したいと思います(生のMATLAB、ツールボックスなし)。これらは自分で計算できますが、事前定義された関数を使用することを望んでいたため、何も見つかりませんでした。何かありますか?
java - 単純なアルゴリズムの実装 (確率を計算するため)
私は (宿題の一環として) 次のことを行う Java プログラムを設計するように依頼されました。
基本的に3つのカードがあります:
- 両面とも黒色
- 両面レッドカラー
- 片面黒、片面赤
ここで、ランダムにカードを 1 枚取り、テーブルに置きます。上向きの面は黒です。反対側も黒である確率は?
Java を使用してプログラムを実装し、確率を発見しようとすると、プログラムはカード トリックを何度もシミュレートし、カードの反対側が黒である確率を出力する必要があります (これは、反対側が何回行われたかをカウントすることによって行われます)。黒もあります)。
しかし、私のコードは (アルゴリズム的に) 間違っていると言われました...どうやら答えは 0.50 であってはなりません。アルゴリズムを理解しようとして間違いを犯しましたか?
誰かが私を正しい方向に向けることができますか? (アルゴリズムがどのように機能するかについてだけ、完全に機能する実装を提供するように求めているわけではありません)。
この記事は非常に役に立ちました: https://blog.codinghorror.com/finishing-the-game/
probability - Dota Bot のチームマッチアップ
DotA ( 5 人のプレイヤーと 5 人のプレイヤーが対戦する Warcraft 3 マップ) のゲームをホストする Ghost++ ボットがあります。私は、記録に基づいて試合に参加するプレーヤーのバランスをとるための良い公式を考え出そうとしています (私は数千試合のゲーム履歴を持っています)。私は、プレイヤーがプレイしたゲーム数のサンプル サイズに基づく信頼度、パラメーターの近似値、自由度など、プレイヤーを一致させるために必要ないくつかの概念に精通しています。したがって、r^2 に十分に寄与しない変数はすべて破棄されます。私のボットは、各ゲームのプレイヤーごとにかなりの数の変数を収集します。
簡単な説明:
キル/デスはどちらが勝つかを決定するものではありませんが、これによって得られる金と失われる金は、通常、ゲームを傾けるのに十分です. タワー/ラックスのキルはゲームの目標です (チームがすべてのタワー/ラックスを失うと、玉座が攻撃される可能性があり、それが破壊された場合は負けます) が、私はこれらを重要とは見なしていません。誰がタワーキルのクレジットを得るかはかなりランダムです. また、タワーを破壊した場合、それは他のプレイヤーがうまくやっていて、マップ上の他のチームの気を散らしているからです。
チームに5人のプレーヤーがいるという事実に対処しようとすると、少し混乱するので、最終的にはチームが勝ったかどうかに各個人が責任を負うことはありません.
キルが非常に得意で、キル数 40、デス数 10 のプレイヤーがいますが、5 試合で 1 勝しかしていません。負けたにも関わらず、これほど高いキルスコアを達成したことに対して、彼に追加のクレジットを与える必要がありますか? それとも、キル/デス比が優れているにもかかわらず、彼はおそらく自分のことだけを考えてチームを助けずに非常に貪欲な方法でプレーしていると仮定して、負けたとして彼をドッキングする必要がありますか?
最終的に、私は非常に多くのデータを持っているので、このような質問を推測する必要はないと思います. しかし、このような質問に答えるためにデータをどのように見るかはよくわかりません。チームのバランスを取り、結果を予測するのに役立つ数式を考え出すのを手伝ってくれる人はいますか?
ありがとう、ダン
algorithm - 大きなリスト内の一意の要素の数を効率的に見積もる
この問題は、リザーバー サンプリングによって解決される問題と少し似ていますが、同じではありません。それもかなり興味深い問題だと思います。
大規模なデータセット (通常は数億の要素) があり、このデータセット内の一意の要素の数を推定したいと考えています。典型的なデータセットには、数個から数百万個の一意の要素が存在する場合があります。
もちろん、明らかな解決策は、遭遇した要素の実行中のハッシュセットを維持し、最後にそれらをカウントすることです。これにより、正確な結果が得られますが、全体をスキャンするときに潜在的に大量の状態を運ぶ必要があります。データセット (つまり、これまでに検出されたすべての一意の要素)。
残念ながら、私の状況では、これは私が利用できるよりも多くの RAM を必要とします (データセットが利用可能な RAM よりもはるかに大きい可能性はありません)。
スキャン中に比較的少量の状態を維持しながら、データセットを 1 回通過して最後に一意の要素数を推定できるようにする統計的アプローチがあるかどうか疑問に思っています。データセット。
アルゴリズムへの入力はデータセット (Java の用語では反復子) であり、推定された一意のオブジェクト数 (おそらく浮動小数点数) を返します。これらのオブジェクトはハッシュできる (つまり、必要に応じて HashSet に入れることができる) と見なされます。通常、それらは文字列または数値になります。
algorithm - 偏ったものを使用した偏りのない乱数ジェネレーター
確率 p で 1 を生成し、確率 (1-p) で 0 を生成するバイアス付き乱数ジェネレーターがあります。p の値がわかりません。これを使用して、確率 0.5 で 1 と確率 0.5 で 0 を生成する偏りのない乱数ジェネレーターを作成します。
注: この問題は、Cormen、Leiserson、Rivest、Stein による Introduction to Algorithms の演習問題です。(clrs)
algorithm - データセットのグループ検出
ここにプロットされているようなデータ ポイントのグループを想定します (このグラフは私の問題に固有のものではありませんが、適切な例として使用されています)。
散布図を視覚的に調べると、データ ポイントが 2 つの「グループ」を形成しており、明らかにどちらにも属していないランダムなポイントがいくつかあることが明らかです。
次のことができるアルゴリズムを探しています。
- 2 つ以上の次元のデータ セットから始めます。
- そのようなグループがいくつ (または存在する場合) 存在するかを事前に知らなくても、データセットからそのようなグループを検出します。
- グループが検出されたら、新しいサンプル ポイントがいずれかのグループに適合するように思われる場合、グループのモデルに「質問」します。
python - Python で random.shuffle を使用すると重複が発生するのはなぜですか?
10 個の int のリストには、10 個あります。可能な順序または順列。5000回試行しただけでrandom.shuffleが重複するのはなぜですか?
編集: FWIW、1 つのペアに対して 2 つの同じものがない確率が次の場合: p = (10! - 1) / 10! 組み合わせの数は: C = 5000! / 4998! ※2!= 5000 * 4999 / 2 重複する確率は次のとおりです。
c++ - C ++で二変量正規およびスチューデントT分布からランダムサンプルを生成するにはどうすればよいですか?
二変量正規分布とスチューデント T 分布からランダム サンプルを生成する最良の方法は何ですか? どちらの場合も、シグマは 1、平均は 0 です。したがって、私が本当に関心を持っている唯一のパラメーターは、相関 (および学生 t の自由度) です。C++ でソリューションを作成する必要があるため、残念ながら、MatLab または Mathematica から既に実装されている関数を使用することはできません。
algorithm - 要素に重みがあるリストから k 個のランダムな要素を選択する
重みなし (等確率) の選択については、ここで美しく説明されています。
このアプローチを加重アプローチに変換する方法があるかどうか疑問に思っていました。
他のアプローチにも興味があります。
更新:置換なしのサンプリング