回答編集履歴
1
コード修正
answer
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
random.seed(110)
|
9
9
|
orbit = [random.uniform(0,1) for _ in range(10000000)]
|
10
10
|
print('start')
|
11
|
+
#print(orbit)
|
11
12
|
|
12
13
|
N = 100
|
13
14
|
|
@@ -21,13 +22,15 @@
|
|
21
22
|
slots[n] = []
|
22
23
|
slots[n].append(i) # 要素位置を保持
|
23
24
|
|
24
|
-
# 各クラス
|
25
|
+
# 各クラスの計算
|
25
26
|
results = [0.0 for _ in range(N)] # 要素のないクラスの初期値は0
|
26
27
|
for n, lst in slots.items():
|
27
28
|
exists = set()
|
28
29
|
SUB_N = len(lst) # クラス内の要素数
|
30
|
+
st = n / N # この区間の左端値
|
29
31
|
for i in lst:
|
32
|
+
v = (orbit[i]-st) * N # クラス内の値を0...1に正規化
|
30
|
-
sub_n = math.floor(
|
33
|
+
sub_n = math.floor(v*SUB_N)
|
31
34
|
if sub_n >= SUB_N:
|
32
35
|
sub_n = SUB_N-1
|
33
36
|
exists.add(sub_n)
|