問題が残っています。私は、Pythonで、Pr [X≧k] = 1/kのような乱数Xを必要とするアルゴリズムを実装する必要があります。私はこの正確な値を私に与えることができるディストリビューションが既に存在するかどうか、または単純なランダムなPythonライブラリを使ってこのランダムジェネレータを実装する方法があるかどうかはわかりません。これを行う方法はありますか?ご協力いただきありがとうございます!特定の分布に続く乱数
答えて
最も簡単な試みが
X = 1.0/random.random()
しかし、random.random()
はゼロの値を持つことができるようにすることであるので、これはゼロ除算エラーをもたらす可能性があります。値は、ドキュメントによれば、1.0とすることがないので、この分布について
X = 1.0/(1.0 - random.random())
を使用決してでき
のPr [X≥K] = Prを[0 < 1/X≤1/K]
= Prを[0 < 1 - はrandom.Random()≤1/K]
= Prを[1 - 1/Kの≤のはrandom.Random()< 1]
= 1 - (1 - 1/k){それ以来DOM())0,1 [における均一かつ[1-1/K 1)、もちろん、サブインターバル}
= 1/K
(私はここにMathJaxを使用することがしたいです)これはすべて、あなたの条件が他の意味を持たないので、k≥1と仮定します。また、Xは1から正の無限大までの連続的な確率変数であると仮定しました。 Xが正の整数(したがってkも正の整数)である場合、ちょうど私が与えた式のフロアを取る。
はい、それは私が必要なものです!どうもありがとうございました! – Marco
必要なものは、乱数を生成するための一様乱数発生器です。 これらの数字は、これらの乱数を生成することができる分布(例えば乗算)
https://docs.python.org/2/library/random.html
https://docs.python.org/3.5/library/random.html
に変換することができます。 あなたの流通は私には分かりません。それはどのようにグラフィカルに見えるのですか?それを表現する関数があれば、それを使って乱数を乗算します。
ロリーは正しい答えに終わったが、それを正当化する彼の数学は建設的ではない—答えに到達する方法が示されておらず、アサーションが正しいことが示されているだけである。以下は、答えを導くための確率の基本的なルールを使用しています。
Pr{X ≥ k} = 1 - Pr{X < k}
X
が連続確率変数である場合、
Pr{X < k} = Pr{X ≤ k}
右手側は累積分布関数F X(k)の定義であるので、
Pr{X ≥ k} = 1 - F(k) = 1/k
F(k) = 1 - 1/k
次にby the inversion theoremをU
、一様な(0,1)RVに等しく設定し、kについて解く:
U = 1 - 1/k
1 - U = 1/k
k = 1/(1 - U)
あなたの乱数ジェネレータをUに使用すると、完了です。 Roryが指摘したように、これはk≥1に対してのみ有効です。それ以外の場合は、CDFが限界を超えてしまいます。
私の数学がどうやって間違っているのか分かりません。私はそれが簡単であることを認め、それは1つのステップしか示していませんが、残りは確率を知っている人には明らかだと思ったからです。あなたは自分の平等に一歩を踏み出すよう動機づけてくれましたが、何も変わっていません。私の現在の展覧会が正しいことに同意しますか? (私はまだいくつかの詳細を残していません - もちろん、私はペタニックではありません) –
@RoryDaultonあなたの2番目の行は、Xが何であるべきかというあなたの主張を前提としています。確率。あなたの主張が本当に起こるので、数学はそこから出てきますが、それは先験的に有効です。対照的に、私の派生は、よく知られた確率の規則に従って、あなたの主張した結果に終わる。 – pjs
明らかに、あなたは私の表現が目標を満たしていることを示していましたが、あなたは望みの目標から表現を導いたことになります。私たちは反対の方向で働いていましたが、それは私の数学を「無効」にしません。 2つの方法の違いについての良い議論については、George Polyaによる* How to Solve *を参照してください。 –
- 1. 安定した分布乱数?
- 2. matlabの正規分布に基づく乱数の生成
- 3. 特定の不均一分布を持つ擬似乱数生成
- 4. Pythonの乱数のロングテール分布
- 5. 正規分布乱数のバイアス(JavaScript)
- 6. PHP:正規分布からの乱数
- 7. Java乱数ジェネレータとその分布
- 8. 前方に傾いている乱数の確率分布
- 9. スキュー正規分布の乱数(NORMINV()に相当)
- 10. Math.Net指数分布乱数のベクトルを生成する方法
- 11. 指数分布/ポアソン分布
- 12. 乱数を生成するための分布のパラメータを推定する
- 13. Matlabの正規分布からの乱数
- 14. 一様分布の乱数セットの作成
- 15. Pythonの特定の分散を持つ乱数
- 16. 特定の乱数のリストに基づくMySQLクエリ?
- 17. CUDAのガウス分布から乱数を生成する
- 18. 確率分布で範囲内の乱数を生成する
- 19. ランダム確率分布確率分布から一定数
- 20. 特定の間隔のCplex乱数ジェネレータ
- 21. 整数範囲から正規分布乱数を生成する方法は?
- 22. matlabでスキュー正規分布に従う乱数を生成する方法
- 23. pythonでPDFからの分布を特定する
- 24. 特定のx軸を持つ分布図
- 25. 分布ワードの連続番号
- 26. グラフ分布の色数
- 27. Rで指定された対数正規分布を持つ乱数を生成する方法は?
- 28. Rフィットユーザー定義分布
- 29. 番号を乱数の乱数に分割しますか?
- 30. 二項分布から相関した乱数を生成するR
何をしようとしているのかわからない – wjk2a1
こんにちは!私は説明した分布に従う乱数Xを生成しようとしています。問題が要求するのは、分布にしたがってXを選択することです。Pr X≧k = 1/k – Marco
これはあなたが探しているものです:http://stackoverflow.com/a/4266312/2348704 – oat