サーチ…


構文

  • + x
  • -バツ
  • a + b
  • a - b
  • a * b
  • a / b
  • a ^ b
  • a%b
  • 4a
  • sqrt(a)

二次式

Juliaは、数学や他のプログラミング言語と同様に、基本的な算術演算にも同様の2項演算子を使用します。ほとんどの演算子は、中置表記(infix notation)で記述することができます(つまり、計算される値の間に配置されます)。ジュリアは、数学の一般的な慣例に一致する操作の順序を持​​っています。

たとえば、以下のコードは、それぞれ加算、減算、乗算、および除算の+-* 、および/演算子を示す2次式を実装しています。 暗示的な乗算も示されています。ここで、数字は乗算を意味する記号の直前に置くことができます。つまり、 4a4*aと同じ意味です。

function solvequadratic(a, b, c)
    d = sqrt(b^2 - 4a*c)
    (-b - d) / 2a, (-b + d) / 2a
end

使用法:

julia> solvequadratic(1, -2, -3)
(-1.0,3.0)

エラトステネスのふるい

Juliaの残りの演算子は%演算子です。この演算子は、CやC ++などの言語の%と同様に動作します。 a % b分割後に残さ符号付き剰余であることによりa b

この演算子は、次のようなEratosthenesSieveの実装など、特定のアルゴリズムを実装するのに非常に便利です。

iscoprime(P, i) = !any(x -> i % x == 0, P)

function sieve(n)
    P = Int[]
    for i in 2:n
        if iscoprime(P, i)
            push!(P, i)
        end
    end
    P
end

使用法:

julia> sieve(20)
8-element Array{Int64,1}:
  2
  3
  5
  7
 11
 13
 17
 19

行列演算

Juliaは、行列に適用すると算術演算の標準的な数学的意味を使用します。場合によっては、代わりに要素単位の操作が望ましい場合もあります。これらには、要素ごとに実行される演算子の前にフルストップ( . )が付いています。 (要素単位の操作は、ループほど効率的でないことが多いことに注意してください)。

合計

行列の+演算子は行列の和です。それは要素的な合計に似ていますが、形をブロードキャストしません。つまり場合、でありA及びB同一形状であり、その後、 A + B同じであるA .+ B 。そうでない場合は、 A + B 、一方、エラーであるA .+ B必ずしもではないかもしれません。

julia> A = [1 2
            3 4]
2×2 Array{Int64,2}:
 1  2
 3  4

julia> B = [5 6
            7 8]
2×2 Array{Int64,2}:
 5  6
 7  8

julia> A + B
2×2 Array{Int64,2}:
  6   8
 10  12

julia> A .+ B
2×2 Array{Int64,2}:
  6   8
 10  12

julia> C = [9, 10]
2-element Array{Int64,1}:
  9
 10

julia> A + C
ERROR: DimensionMismatch("dimensions must match")
 in promote_shape(::Tuple{Base.OneTo{Int64},Base.OneTo{Int64}}, ::Tuple{Base.OneTo{Int64}}) at ./operators.jl:396
 in promote_shape(::Array{Int64,2}, ::Array{Int64,1}) at ./operators.jl:382
 in _elementwise(::Base.#+, ::Array{Int64,2}, ::Array{Int64,1}, ::Type{Int64}) at ./arraymath.jl:61
 in +(::Array{Int64,2}, ::Array{Int64,1}) at ./arraymath.jl:53

julia> A .+ C
2×2 Array{Int64,2}:
 10  11
 13  14

同様に、 -行列の差を計算します。 +-両方を単項演算子として使用することもできます。

製品

行列の*演算子は行列積です (要素ごとの積ではありません)。要素単位の製品の場合は、 .*演算子を使用し.* 。比較(上記と同じ行列を使用):

julia> A * B
2×2 Array{Int64,2}:
 19  22
 43  50

julia> A .* B
2×2 Array{Int64,2}:
  5  12
 21  32

パワーズ

^演算子は、 行列のべき乗を計算します。行列累乗は、特定の再帰の値を迅速に計算するのに役立ちます。例えば、 フィボナッチ数行列式によって生成することができる

fib(n) = (BigInt[1 1; 1 0]^n)[2]

いつものように、 .^演算子は、要素ごとのべき乗が目的の演算である場合に使用できます。



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow