2016-07-30 2 views
2

問題が残っています。私は、Pythonで、Pr [X≧k] = 1/kのような乱数Xを必要とするアルゴリズムを実装する必要があります。私はこの正確な値を私に与えることができるディストリビューションが既に存在するかどうか、または単純なランダムなPythonライブラリを使ってこのランダムジェネレータを実装する方法があるかどうかはわかりません。これを行う方法はありますか?ご協力いただきありがとうございます!特定の分布に続く乱数

+0

何をしようとしているのかわからない – wjk2a1

+0

こんにちは!私は説明した分布に従う乱数Xを生成しようとしています。問題が要求するのは、分布にしたがってXを選択することです。Pr X≧k = 1/k – Marco

+0

これはあなたが探しているものです:http://stackoverflow.com/a/4266312/2348704 – oat

答えて

6

最も簡単な試みが

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も正の整数)である場合、ちょうど私が与えた式のフロアを取る。

+0

はい、それは私が必要なものです!どうもありがとうございました! – Marco

-2

必要なものは、乱数を生成するための一様乱数発生器です。 これらの数字は、これらの乱数を生成することができる分布(例えば乗算)

https://docs.python.org/2/library/random.html
https://docs.python.org/3.5/library/random.html

に変換することができます。 あなたの流通は私には分かりません。それはどのようにグラフィカルに見えるのですか?それを表現する関数があれば、それを使って乱数を乗算します。

1

ロリーは正しい答えに終わったが、それを正当化する彼の数学は建設的ではない—答えに到達する方法が示されておらず、アサーションが正しいことが示されているだけである。以下は、答えを導くための確率の基本的なルールを使用しています。

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 theoremU、一様な(0,1)RVに等しく設定し、kについて解く:

U = 1 - 1/k 
1 - U = 1/k 
k = 1/(1 - U) 

あなたの乱数ジェネレータをUに使用すると、完了です。 Roryが指摘したように、これはk≥1に対してのみ有効です。それ以外の場合は、CDFが限界を超えてしまいます。

+1

私の数学がどうやって間違っているのか分かりません。私はそれが簡単であることを認め、それは1つのステップしか示していませんが、残りは確率を知っている人には明らかだと思ったからです。あなたは自分の平等に一歩を踏み出すよう動機づけてくれましたが、何も変わっていません。私の現在の展覧会が正しいことに同意しますか? (私はまだいくつかの詳細を残していません - もちろん、私はペタニックではありません) –

+1

@RoryDaultonあなたの2番目の行は、Xが何であるべきかというあなたの主張を前提としています。確率。あなたの主張が本当に起こるので、数学はそこから出てきますが、それは先験的に有効です。対照的に、私の派生は、よく知られた確率の規則に従って、あなたの主張した結果に終わる。 – pjs

+1

明らかに、あなたは私の表現が目標を満たしていることを示していましたが、あなたは望みの目標から表現を導いたことになります。私たちは反対の方向で働いていましたが、それは私の数学を「無効」にしません。 2つの方法の違いについての良い議論については、George Polyaによる* How to Solve *を参照してください。 –

関連する問題