回答編集履歴
1
訂正
answer
CHANGED
@@ -16,25 +16,23 @@
|
|
16
16
|
B=5
|
17
17
|
|
18
18
|
Benchmark.bm 10 do |r|
|
19
|
-
array = A.times.to_a
|
20
19
|
r.report "test1" do
|
21
|
-
N.times { array = (array + [0] * B)[0...B] }
|
20
|
+
N.times { array = A.times.to_a; array = (array + [0] * B)[0...B] }
|
22
21
|
end
|
23
|
-
array = A.times.to_a
|
24
22
|
r.report "test2" do
|
25
|
-
N.times { array = array.push(*Array.new(B,0)).shift(B) }
|
23
|
+
N.times { array = A.times.to_a; array = array.push(*Array.new(B,0)).shift(B) }
|
26
24
|
end
|
27
|
-
array = A.times.to_a
|
28
25
|
r.report "test2_1" do
|
29
|
-
N.times { array = array.push(*Array.new(B,0)).take(B) }
|
26
|
+
N.times { array = A.times.to_a; array = array.push(*Array.new(B,0)).take(B) }
|
30
27
|
end
|
31
|
-
array = A.times.to_a
|
32
28
|
r.report "test3" do
|
33
|
-
N.times { array = array.concat([0]*(B-array.length)) }
|
29
|
+
N.times { array = A.times.to_a; array = array.concat([0]*(B-array.length)) }
|
34
30
|
end
|
35
|
-
array = A.times.to_a
|
36
31
|
r.report "test3_1" do
|
37
|
-
N.times { array = array.concat(Array.new(B-array.length, 0)) }
|
32
|
+
N.times { array = A.times.to_a; array = array.concat(Array.new(B-array.length, 0)) }
|
38
33
|
end
|
39
34
|
end
|
40
|
-
```
|
35
|
+
```
|
36
|
+
#追記:
|
37
|
+
すいません。ぼけてました。`N.times`を追加した時点で`array`の初期化を移動させないといけなかった。
|
38
|
+
コードを修正しました。
|