teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

訂正

2020/11/03 00:16

投稿

otn
otn

スコア86349

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
+ コードを修正しました。