-1
box_content=[[[1,2,4],[4,5,1]],[[2,3,1],[2,3,1]]]

def pop_a_message(box_content):
    send_message_index = random.randrange(len(box_content))
    receive_message_index = random.randrange(len(box_content) - 1) 
    if send_message_index >= receive_message_index: receive letter += 1    
    friend_message= random.randrange(len(send_message[0]))

この関数を変更して、send_message選択される関数から特定の関数friend_message(たとえば、インデックス[0]のfriend_message)が他の関数よりも頻繁に表示されるようにすることはできますか?

4

1 に答える 1

1

あなたの質問はこれに似ていると思います与えられた(数値)分布で乱数を生成する

Sven Marnachが示唆しているように:

scipy.stats.rv_discreteはあなたが望むものかもしれません。values パラメータを介して確率を指定できます。その後、分布オブジェクトの rvs() メソッドを使用して乱数を生成できます。

これをリストに適用するlと (56 50% の確率で取得したいとします):

from scipy.stats import rv_discrete
l=[2,4,56,9]
vals = [l, (0.1, 0.2, 0.5, 0.2)]
custm = rv_discrete(name='custm', values=vals)
for i in l:
    yield generic.rvs(custm)

最後の行はよくわかりませんが、ドキュメントを読めば適切な方法がわかります。

于 2013-02-22T14:23:10.990 に答える