수색…


통사론

  • + x
  • -엑스
  • a + b
  • a - b
  • a * b
  • a / b
  • a ^ b
  • a % b
  • 4a
  • sqrt (a)

이차 방정식

Julia는 수학 또는 다른 프로그래밍 언어처럼 기본 산술 연산에 유사한 이진 연산자를 사용합니다. 대부분의 연산자는 중위 표기법 (infix notation)으로 작성 될 수 있습니다 (즉, 계산되는 값 사이에 위치). 줄리아 (Julia)는 수학의 일반적인 관례와 일치하는 작업 순서를 가지고 있습니다.

예를 들어, 아래 코드는 더하기, 빼기, 곱하기 및 나누기 각각에 대해 + , - , */ 연산자를 나타내는 이차 수식을 구현합니다. 또한 암시 적 곱셈 이 표시됩니다. 여기서 숫자는 곱셈을 의미하는 기호 앞에 직접 배치 할 수 있습니다. 즉, 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 % bab 나눈 나머지 남은 부호입니다.

이 연산자는 에라 토 스테 네스 시브 (Sieve of Eratosthenes) 구현과 같은 특정 알고리즘을 구현하는 데 매우 유용합니다.

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는 행렬에 적용 할 때 산술 연산의 표준 수학적 의미를 사용합니다. 때로는 요소 단위 연산이 대신 필요할 수 있습니다. 이것들은 요소 앞에서 끝나기 위해 연산자 앞에 전체 멈춤 ( . )으로 표시됩니다. (elementwise 연산은 종종 루프만큼 효과적이지 않습니다.)

합계

행렬에 대한 + 연산자는 행렬 합입니다. 이것은 요소 적 합과 비슷하지만 모양을 방송하지 않습니다. 그 경우,이다 및 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