Rとjuliaとrubyとpython


数値の取り扱い
juliaを少しいじり始めたのだが,複数の言語の文法を混同して分からなくなってしまうので,並べて比較してみることにした.まずは,数値や数学関係の取り扱い方を,4つの言語について表にしてみた.

Rjuliarubypython3
5%%25.0%2.05.0%2.05.0%2.0
5%/%25.0÷2.05/2 or 5.0.div(2.0)5.0//2.0
分数5//25r/2from fractions import Fraction;Fraction(5,2)
xorbitwXor(3, 5)3⊻53^53^5
累乗2^0.52^0.52**0.52**0.5
平方根sqrt(2)√2Math.sqrt(2)import math;math.sqrt(2)
複素数(1+2i)^0.5(1+2im)^0.5(1+2i)**0.5(1+2j)**0.5
複素数sqrt(1+2i)√(1+2im)Math.sqrt(1+2i)import numpy;numpy.sqrt(1+2j)
実部 Re(1+2i) real(1+2im) (1+2i).real (1+2j).real
虚部 Im(1+2i) imag(1+2im) (1+2i).imag (1+2j).imag
共役 Conj(1+2i) conj(1+2im) (1+2i).conj (1+2j).conjugate()
偏角 Arg(1+2i) angle(1+2im) (1+2i).arg import cmath;cmath.phase(1+2j)
絶対値abs(-1)abs(-1)-1.absabs(-1)
円周率piπMath::PIimport math;math.pi
Euler数exp(1)Math::Eimport math;math.e
それぞれ,書き方に特徴がある.同じ記号でも,言語によって意味が違う場合があるので,注意が必要である.また,rubyではMathを使わないといけない場合があり,pythonはmathやnumpyなどを使わないといけない場合があり,どの場合にそれらを使わないといけないかを覚えるのが面倒に感じた.Rやjuliaは必要なものは,標準で大体は揃っているように感じるが,juliaではunicode文字を使えるのが特徴的である.eとℯが違うというのも少し驚いた.pythonの複素共役は関数なので括弧が必要というのが奇妙に感じた.