2016-11-17 10 views
2

私はrandom図書館の仕事の原則を理解しようとしています。 私はいくつかの状況を考えます: 1)私は値bを持っていて、値0または1をとり、確率は0.5です。 私は理解したいPython:選択乱数

numpy.random.choice(numpy.arange(0, 2), p=[0.5, 0.5]) 

で、どのような手順は、いくつかの値を選択するために実行されることを実現できることを、知っていますか? このセグメントを分割してランダムな値を取得しますか? どうしますか?

2)もし私が持っていれば、おそらくリスト。 lst = [1, 4, 7, 3, 254, 6, 2, 7, 3123, 454657, 34, 565, 99] 私はあなたにそれを行う一般的な方法を教えてください random.choice(lst)) 私はあまりにも、決定の間に何が起こるのか理解したいですか?

+0

'choice()'には15要素のリストがありますので 'random'要素を選択する' random.randint(15) '要素を選択する' lst [random.randint(len(lst))] ' – furas

+0

ソース](https://hg.python.org/cpython/file/3.5/Lib/random.py#l259)? –

+0

確率が[[0.25、0.75] 'ならば、リスト[[0,1,1,1]]から選択してください – furas

答えて

4

モジュールの動作を完全に理解したい場合は、モジュールを開こうとする必要があります。これを行うには、Pythonインタプリタで以下を使用できます:

>>>import numpy 
>>>help(numpy) 

文書の情報が表示されます。疑問に思っている機能を見つけ出し、そのコードがどのように機能するかを理解することができます。私はこれが役立つことを願っています

numpyの上のいくつかのより複雑な情報は、このリンクaswellである:https://docs.scipy.org/doc/numpy-1.10.1/reference/

それがランダム本物ではないことを、覚えておいてください。ちょうど疑似ランダム。このコードでは、疑似乱数生成器を使用して乱数を生成します。

+0

本当にあなたにコードが表示されますか? 'choice'では、これはすべて「*空でないシーケンスからランダムな要素を選択する」*ですが、これは役に立ちません。 –

+0

はい。そうでしょう。 IDLE Python Shellを使用すると、私のために働きます。 – Elodin

+0

私はIDLE Python Shellも使用しています。 Python 3とPython 2の両方を試してみました。コードを表示しません。 –

2

PythonはMersenne Twisterをコアジェネレータとして使用します。これは、53ビットの精度浮動小数点を生成し、2 ** 19937-1の期間を持ちます。 Cの基本的な実装は、高速でスレッドセーフです。 Mersenne Twisterは、存在する最も広範囲にテストされた乱数ジェネレータの1つです。しかし、完全に決定的なので、すべての目的には適しておらず、暗号の目的にはまったく適していません.Pythonは、実際にはさまざまな実数からエントロピーを収集する特別なドライバを持つオペレーティングシステムから、キーストロークとディスクシークとの間のタイミングの変化などの世界的な要因。 詳細は、Pythonのドキュメントを参照してください。

+0

ここは数字です – Inconnu