2

重複の可能性:
置換あり/なしの加重ランダム選択

次に何をすべきかを自分ですべて決定するのに疲れました。コンピューターにやってもらいたい。私は物事を書いて、それぞれに優先順位を付けます.コンピューターは、ランダムな要素でこれらの優先順位によって1つを選択します.

だから、私はこのファイル(tsv)を作りました:

3   work A
2   work B
1   work C
1   laundry
1   nothing

「作業A」は38%の確率で発生するはずです。"nothing" - 13% など。
コンピューターはこれらすべてをカウントして、次のように言う必要があります。do ___

私はそれを読んで、それぞれのパーセントを得ることができます。しかし、これらのパーセントで 1 つのものを選択する方法がわかりません。

import csv

# reading
file = open('do.txt', mode='r', encoding='utf-8')
tsv_file = csv.reader(file, delimiter='\t')

# total priority
priority_total = 0
for work in tsv_file:
    priority_total = priority_total + int(work[0])

?????

print(do_this)

これを行う方法は何ですか?与えられた確率でランダムに選択する機能はありますか?

先延ばしをやめて物事を始めるには、これが本当に必要です。

4

1 に答える 1

3

簡単な方法は、タスクのリストを作成することですが、各タスクをその優先度に等しい回数だけリストに追加します。

したがって、ファイルをロードすると、リストは次のようになります。

['work A', 'work A', 'work A', 'work B', 'work B', 'work C', 'laundry', 'nothing']

次に、random.choiceを使用してランダムな要素を選択できます。

task_list = []
for prio, work in tsv_file:
    task_list += [work] * int(prio)

do_this = random.choice(task_list)
于 2012-09-04T14:45:34.743 に答える