julia で整数の Array に、任意の整数が含まれるか調べる方法

julia で整数の Array に、任意の整数が含まれるか調べてみます。

  • in を使う方法
  • ∈ (\in) を使う方法
  • == と sum を使う方法

思いつくのは、この位でしょうか。

in を使う方法

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

julia> 1 in A
true

julia> in(1, A)
true

julia> in(A, 1)
false

julia> in.(1,A)
2×2 BitArray{2}:
  true  false
 false  false

Int64 の "1" の代り 1x1 の Array であるところの [1] を使うと上手くできません。

julia> x = [1]
1-element Array{Int64,1}:
 1

julia> x in A
false

julia> x[1] in A
true

∈ (\in) を使う方法

"\in" と入力して直後にタブキーを押すと変換されます。使い方は in 同じです。

julia> 1∈A
true

julia> A∈1
false

== と sum を使う方法

ちょっと邪道かもしれませんが、出来ないことはありません。ただし true, false の代わりに 1以上 , 0 が出力になります。ブリーアン型の Array になる時は、この方法が使えます。

julia> sum( true, false)
ERROR: MethodError: objects of type Bool are not callable

julia> sum( [true, false])
1

julia> sum( [true, false, true])
2

というのを使います。"1.==A" ではなく、"1 .=A" です。1の直後にスペースが必要です。

julia> sum(1 .==A)
2
B! LINE