回答編集履歴

2

追記

2019/06/14 07:40

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -90,13 +90,25 @@
90
90
 
91
91
 
92
92
 
93
+ divmodを用いれば二つのidxを一気に決めることも可能ですが、分かり易いかと言うと微妙です。
94
+
95
+
96
+
97
+ **参考**:
98
+
99
+ - [組み込み関数 — Python 3.7.3 ドキュメント](https://docs.python.org/ja/3/library/functions.html)
100
+
101
+ - [random --- 擬似乱数を生成する — Python 3.7.3 ドキュメント](https://docs.python.org/ja/3/library/random.html)
102
+
103
+
104
+
93
105
  その他、気になるところ
94
106
 
95
107
  ---
96
108
 
97
109
  **zerooneの実装**
98
110
 
99
- 一様分布なんて用いずとも、random.choicesに重みを与えれば良いです。
111
+ 一様分布なんて用いずとも、[random.choices](https://docs.python.org/ja/3/library/random.html#random.choices)に重みを与えれば良いです。
100
112
 
101
113
  ```Python
102
114
 
@@ -125,3 +137,9 @@
125
137
  **無限ループ**
126
138
 
127
139
  while True
140
+
141
+
142
+
143
+ ---
144
+
145
+ あと、この手の処理はNumPyを利用した方が楽なように思います。

1

追記

2019/06/14 07:40

投稿

LouiS0616
LouiS0616

スコア35660

test CHANGED
@@ -87,3 +87,41 @@
87
87
  [[1, 2, 3], [4, 5, 100], [7, 8, 9]]
88
88
 
89
89
  ```
90
+
91
+
92
+
93
+ その他、気になるところ
94
+
95
+ ---
96
+
97
+ **zerooneの実装**
98
+
99
+ 一様分布なんて用いずとも、random.choicesに重みを与えれば良いです。
100
+
101
+ ```Python
102
+
103
+ >>> random.choices([0, 1], weights=[.2, .8], k=10)
104
+
105
+ [0, 1, 1, 0, 1, 1, 1, 1, 1, 1]
106
+
107
+ >>> random.choices([0, 1], weights=[.2, .8], k=10)
108
+
109
+ [1, 1, 1, 1, 1, 1, 0, 1, 1, 1]
110
+
111
+ >>> random.choices([0, 1], weights=[.2, .8], k=10)
112
+
113
+ [1, 1, 0, 0, 1, 1, 0, 0, 0, 1]
114
+
115
+ ```
116
+
117
+
118
+
119
+ 一行丸々一気に作れますし、
120
+
121
+ あるいは全要素を生成してその後二次元リストに成形しても良いです。
122
+
123
+
124
+
125
+ **無限ループ**
126
+
127
+ while True