回答編集履歴

1

作成コード追加

2018/11/27 20:30

投稿

can110
can110

スコア38266

test CHANGED
@@ -16,7 +16,31 @@
16
16
 
17
17
 
18
18
 
19
- このテーブルは運用開始時に1回だけ作ればよいです。
19
+ このテーブルは運用開始時に1回だけ作ればよいです。たとえば以下のようなコードで作れます。
20
+
21
+ ```Python
22
+
23
+ def make_number_table(n):
24
+
25
+ import random
26
+
27
+ nums = list(range(1,10**n))
28
+
29
+ random.shuffle(nums)
30
+
31
+
32
+
33
+ DBに番号テーブルを新規作成する
34
+
35
+
36
+
37
+ for reg_num, product_num in enumerate(nums):
38
+
39
+ 番号テーブルにレコード挿入する
40
+
41
+ # print( '{rn},{pn:{width}d}'.format(rn=reg_num,pn=product_num,width=n))
42
+
43
+ ```
20
44
 
21
45
 
22
46
 
@@ -58,4 +82,4 @@
58
82
 
59
83
  このような仕組みにすれば、番号の振り出し時にバッティングが発生しませんし
60
84
 
61
- 商品数が多くなっても(specified_uuid未指定なら)定数時間で番号を振り出せます。
85
+ 商品数が多くなっても(specified_uuid未指定なら)ほぼ定数時間で番号を振り出せます。