Open hayato0718 opened 4 years ago
せいかい
ア def modcopy(a)
ウ b = Array.new(a.length, 0)
オ n = a.length / 2
カ n.times do |i|
キ b[i] = a[i]
セ b[2*n - (i + 1)] = a[n + i]
イ end
エ return b
イ end
まちがい
ア def chgarray(a)
エ (n-1).step(1,-1) do |i|
コ x = a[2*i] - a[2*i+1]
イ end
イ end
せいかい
ア def chgarray(a)
キ n = a.length / 2
ウ n.times do |i|
サ x = a[i]
ソ a[i] = a[2*n-(i+1)]
ニ a[2*n-(i+1)] = x
イ end
イ end
# 演習1
def bench(count = 1)
t1 = Process.times.utime
count.times do
yield
end
t2 = Process.times.utime
return t2 - t1
end
def square1(n)
return n * n
end
def pirandom(n)
count = 0
n.times do
x = rand
y = rand
if x ** 2 + y ** 2 < 1.0
count = count + 1
end
end
return 4 * count.to_f / n
end
def sekibun(n)
count = 0
n.times do
x = rand
y = rand
if x >= y
count = count + 1
end
end
return count.to_f / n
end
def sekibun2(n)
count = 0
n.times do
x = rand
y = rand
if x ** 2 > y
count = count + 1
end
end
return count.to_f / n
end
def sekibun3(n)
count = 0
a = 4 / 3.to_f
n.times do
x = rand * 2
y = rand
if x >= y ** 2
count = count + 1
end
end
p a
p count
p n
return a * count.to_f / n
end
活動内容報告 #08 学籍番号:1920031 氏名:山川柳太郎 ペア学籍番号・氏名(または「個人作業」): 提出日付:2019/12/09
[作成したプログラム]
def sekibun(n)
count = 0
n.times do
x = rand
y = rand
if x >= y
count = count + 1
end
end
return count.to_f / n
end
def sekibun2(n)
count = 0
n.times do
x = rand
y = rand
if x ** 2 > y
count = count + 1
end
end
return count.to_f / n
end
[簡単な説明] sekibunは演習3a、sekibun2は演習3bのプログラムである。積分範囲に何回入っているか計測して、積分の結果の近似値を出す。
[アンケート] Q1. 時間計算量(計算時間ではない)の考え方は納得しましたか。 少しだけわかりました
Q2. 乱数を使ったアルゴリズムの利点を納得しましたか。 難しいです。
Q3. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ 積分が難しいです。
活動内容報告 #08
学籍番号:1920003
氏名:伊東 隼人
提出日付: 2019/12/09
[作成したプログラム]
def sekibun(n)
count = 0
n.times do
x = rand()
y = rand()
if y <=x then count = count + 1 end
end
return count.to_f / n
end
これを実行しました。
irb(main):007:0> sekibun 100
=> 0.47
irb(main):008:0> sekibun 100
=> 0.49
irb(main):009:0> sekibun 100
=> 0.54
irb(main):010:0> sekibun 100
=> 0.6
irb(main):011:0> sekibun 100
=> 0.54
irb(main):012:0> sekibun 100
=> 0.48
irb(main):013:0> sekibun 100
=> 0.47
irb(main):014:0> sekibun 100
=> 0.53
irb(main):015:0> sekibun 1000
=> 0.485
irb(main):016:0> sekibun 1000
=> 0.481
irb(main):017:0> sekibun 1000
=> 0.489
irb(main):018:0> sekibun 1000
=> 0.502
って感じでした。
[簡単な説明]
積分の範囲を指定して値を返している。
[アンケート]
Q1. 時間計算量(計算時間ではない)の考え方は納得しましたか。
納得できていないので線形代数のテスト終えたら考え直します。
Q2. 乱数を使ったアルゴリズムの利点を納得しましたか。
パソコンが得意な考え方なのはなんとなく理解しました。
Q3. リフレクション(今回の課題で分かったこと)・感想・要望をどうぞ。
前回の配列の考え方が難しすぎたので考え直します。
中間テストが終わったらみんなで考え直します。
まちがい