#==========
Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。
以下のプログラムを Julia に翻訳してみる。
モンテカルロ法でeを求める
https://oku.edu.mie-u.ac.jp/~okumura/python/e-montecarlo.html
ファイル名: montecarlo.jl 関数名:
翻訳するときに書いたメモ
==========#
#=====
一つの関数にしてJIT化する:
@jit(nopython=True)
def main():
def ne():
s = 0
i = 0
while s < 1:
s += random.random()
i += 1
return i
n = 100000000
t = 0
for _ in range(n):
t += ne()
print(t / n)
%time main()
2.23s になった。
=====#
システムはとても古くて,M1 Mac mini には及びもつかないが
macOS Catalina
vergion 10.15.7
MacBook Pro(Retina, mid 2012)
processor 2.7 GHz quadcore Intel Core i7
mamory 16GB 1600 MHz DDr3
Julia だと,Python とほとんど同じコーディングで
using Statistics
function test()
function ne()
s = 0
i = 0
while s < 1
s += rand()
i += 1
end
i
end
n = 100000000
t = 0
for i = 0:n-1
t += ne()
end
println(mean(t)) # 2.71824778
end
@time test()
#==
2.71822072e8
3.672514 seconds (36 allocations: 1.109 KiB)
==#
いい勝負ですよ。お金を掛けなくても,Julia に乗り換えるだけで,M1 Mac に太刀打ちできる????