エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
『重みをつけてランダムに選択する方法』
d = {0: 48, 1: 13, 2: 6, 3: 61, 4: 14, 5: 8, 6: 4, 7: 41, 8: 84, 9: 50} というようなdictオブジェ... d = {0: 48, 1: 13, 2: 6, 3: 61, 4: 14, 5: 8, 6: 4, 7: 41, 8: 84, 9: 50} というようなdictオブジェクトから、d[k] の大きさに応じてランダムに選択する処理を考えていました。 たとえば d[0] = 48 d[5] = 8 なので、"0" は "5" の6倍(= 48/8 )の確率で選択されるようにしたいです。 普通、真っ先に思いつくのは、こんな処理でしょう。 def choice(d): s = 0 for k, v in d.items(): s += v rnd = random.randrange(s) for k, v in d.items(): s += v if rand < s: return k dを一旦全部読み込んで d[k] の和をとってから、乱数を発生させて また d を最初から読んでいって、