某所に Python による解答例があったので,Julia でやるならどうなるか書いてみた。
Q. 1. 2018n ≡ 2 mod(1000) を満たす正の整数nの最小値を求めよ。
for n = 1:99999
if mod(2018n, 1000) == 2
println(n) # 389
break
end
end
Q. 2. tan(2 Arctan (1/3)+Arctan(1/12))を求めよ。
println(tan(2atan(1//3)+atan(1//12))) # 0.8888888888888888
a = tan(2atan(1//3)+atan(1//12))
println(Int(10a - a) // 9) # 8//9
Q. 3. xyz空間内の4点(1,-4,1),(2,2,2),(2,-6,-3),(3,-2,-1)を頂点に持つ四面体の体積を求めよ。
sarasu(x1, y1, z1, x2, y2, z2, x3, y3, z3) =
abs((y1*z2*x3+z1*x2*y3+x1*y2*z3-z1*y2*x3-x1*z2*y3-y1*x2*z3) / 6)
a1 = [1, -4, 1];
b1 = [2, 2, 2];
c1 = [2, -6, -3];
d1 = [3, -2, -1];
x1, y1, z1, x2, y2, z2, x3, y3, z3 = vcat(b1 .- a1, c1 .- a1, d1 .- a1);
println(abs((y1*z2*x3+z1*x2*y3+x1*y2*z3-z1*y2*x3-x1*z2*y3-y1*x2*z3) / 6)) # 3.0
println(sarasu(x1, y1, z1, x2, y2, z2, x3, y3, z3)) # 3.0
別解
A = hcat(b1 .- a1, c1 .- a1, d1 .- a1);
using LinearAlgebra
println(abs(det(A)) / 6) # 3.0
Q. 4.1 3次正方行列 A=[4 1 1; 1 2 1; 1 1 2] について固有値を求めよ。
A = [4 1 1; 1 2 1; 1 1 2];
using LinearAlgebra
println(round.(Int, eigvals(A))) # [1, 2, 5]
Q. 4.2 E=[1 0 0; 0 1 0; 0 0 1] のとき,A^3-8A^2+18A-12E を求めよ
E = Array{Int}(I, 3, 3);
println(A^3 .- 8A^2 .+ 18A .- 12E) # [2 1 1; 1 0 1; 1 1 0]
Q. 5 2つの機械A, Bが、1年間に故障する回数は,平均がそれぞれ2.5回、4.5回のポアソン分布に従う。A,Bの故障は独立である。
Q. 5.1 機械Aが1年間に4回以上故障する確率を求めよ。
using Distributions
println(round(ccdf(Poisson(2.5), 3), digits=3)) # 0.242
Q. 5.2 機械A,Bが合わせて8回以上故障する確率を求めよ。
A = Poisson(2.5)
B = Poisson(4.5)
answer = 1.0
for i = 0:7
for j = 0:i
answer -= pdf(A, i-j) * pdf(B, j)
end
end
println(round(answer, digits=3)) # 0.401
※コメント投稿者のブログIDはブログ作成者のみに通知されます