minofoto and miscellaneous notes

ごく気まぐれに,書きたいことを適当に書いています。本当の話かもしれませんし,フィクションかもしれません。

円周率の計算(Leibniz の式)

10年ほど使った Macbook もさすがに新しいソフトウェアがインストールできなくなってきたので、新しい Macbook Air を買った。円安のせいで高くなっていて財布に痛い。

体感的に「うわっ、速い!」と感じるようなことがないのは、1900年台から2000年代にかけてのパーソナルコンピュータの大幅な進化は終わってしまい、OS やらいろんなアプリケーションが目に見えて進化したということがないからだろう。とはいえ、速いと話題になった Apple Silicon の速さを確かめてみようと、あえて遅い Leibniz の式で円周率を計算させてみた。

整数で計算させるところは、前記事の Machin の式と同じ方法だ。計算結果の表示を間引くために余計な計算負荷があるかもしれない。

start = Time.now

def Reipniz()
  factor = 4*100000000000000000000000
  sum = factor
  div = 3
  for i in 1..1_000_000_000
    sum += -factor/div + factor/(div+2)
    div += 4
    if i % 0x100000 == 0
      puts "#{i} #{sum}"
    end
  end
  return sum
end
puts Reipniz()
puts Time.now-start

結果はこの 10^9 回の計算で、314159265408978323814573 と小数点以下8桁まで計算できた。計算にかかった時間は core i7 3 GHz で 625 秒程度、M2 では 248 秒程度だった。計算中に core i7 はファンが回り出したが、M2 は静かだ。また、この計算はシングルコアしか使っていないはずだが、core i7 が 2コア、M2 は 4+4 コアであることを考えると、確かにめちゃくちゃ速くなっている。

という計算をして、高かったことを自分で納得しようとしているだけなのかな。