回答編集履歴

1

コード修正

2021/12/01 08:28

投稿

can110
can110

スコア38266

test CHANGED
@@ -17,6 +17,8 @@
17
17
  orbit = [random.uniform(0,1) for _ in range(10000000)]
18
18
 
19
19
  print('start')
20
+
21
+ #print(orbit)
20
22
 
21
23
 
22
24
 
@@ -44,7 +46,7 @@
44
46
 
45
47
 
46
48
 
47
- # 各クラスの計算
49
+ # 各クラスの計算
48
50
 
49
51
  results = [0.0 for _ in range(N)] # 要素のないクラスの初期値は0
50
52
 
@@ -54,9 +56,13 @@
54
56
 
55
57
  SUB_N = len(lst) # クラス内の要素数
56
58
 
59
+ st = n / N # この区間の左端値
60
+
57
61
  for i in lst:
58
62
 
63
+ v = (orbit[i]-st) * N # クラス内の値を0...1に正規化
64
+
59
- sub_n = math.floor(orbit[i]*SUB_N)
65
+ sub_n = math.floor(v*SUB_N)
60
66
 
61
67
  if sub_n >= SUB_N:
62
68