回答編集履歴
2
small fix
test
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
if not '0' in a:
|
46
46
|
|
47
|
-
# offset =
|
47
|
+
# offset = Σ_{i=0}^{i < n} (radix ^ i)
|
48
48
|
|
49
49
|
offset = sum([radix ** i for i in range(n)])
|
50
50
|
|
1
add comment
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
- 「使う数字の個数」を基数とみなす。つまり`n`桁の`radix`進数として中央値を考える。
|
5
|
+
- 「使う数字の個数」を基数(`raidx`)とみなす。つまり`n`桁の`radix`進数として中央値を考える。
|
6
6
|
|
7
7
|
- 「使う数字」に`0`が含まれない場合、長さが`n`桁未満の組合せ総数をカウントし(`offset`)中央値計算時のオフセットとする。
|
8
8
|
|
@@ -20,6 +20,8 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
+
# 10進数値valueを"使う数値からなるradix進数"で再構築
|
24
|
+
|
23
25
|
def dump(value):
|
24
26
|
|
25
27
|
result = ""
|
@@ -34,13 +36,15 @@
|
|
34
36
|
|
35
37
|
|
36
38
|
|
37
|
-
radix = len(a)
|
39
|
+
radix = len(a) # 基数
|
40
|
+
|
41
|
+
|
38
42
|
|
39
43
|
offset = 0
|
40
44
|
|
45
|
+
if not '0' in a:
|
41
46
|
|
42
|
-
|
43
|
-
|
47
|
+
# offset = Π_{i=0}^{i < n} (radix ^ i)
|
44
48
|
|
45
49
|
offset = sum([radix ** i for i in range(n)])
|
46
50
|
|
@@ -49,6 +53,8 @@
|
|
49
53
|
offset = 1
|
50
54
|
|
51
55
|
|
56
|
+
|
57
|
+
# 中央値を計算(10進数)
|
52
58
|
|
53
59
|
median = (radix ** n - offset) // 2
|
54
60
|
|