필요지식
- 전체집합
- 부분집합
여집합
전체집합U의 부분집합인 A에 대하여 속하지 않은 원소로 이루어진것을 여집합이라 한다.
전제집합U = 가수라는 집합이고
부분집합A = 블랙핑크라는 그룹이라 가정하면
여집합 = 블랙핑크에 소속되지 않는 가수를 말한다. (ex 아이유)
영어
complement set
일본어
ほしゅうごう(補集合)
동의어
보집합(일본에서 주로 사용)
기호
전체집합=U U의부분집합=A 로 가정
벤다이어그램
ruby코드
ruby에서 여집합을 구현하고 싶을때 -
를 사용해 구현할 수 있다.
여집합(-)
[1,1,2,3,3] - [3,4,5]
=> [1, 1, 2]
["아이유"] - ["리아","량실","세화"]
=> ["아이유"]
["리아"] - ["리아","량실","세화"]
=> []
실무에서 사용한 코드
입력받은 권한이 현재 권한리스트에 없다면 invalid처리
def attribute_invalid?(args)
args.present? && (args.to_a - User.roles.keys).present?
end
해설
입력받은 값이 권한리스트(집합) 에 없다 = 여집합이 존재하게된다.
그러므로 attribute_invalid?
가 true라면 여집합이 존재하므로 권한리스트(집합)에 존재하지 않는 값이 입력값을 들어옴을 의미한다.
개인적으로 !include?
가 심플해보이지만 이렇게 코드를 짜는 사람이 있기에 알아둬야 했다.
공식
여집합 관련 공식이다.
A∩Ac=∅
∅=공집합 ∩=교집합
A
와 A여집합
의 교집합은 공집합
ruby 코드
["지수","제니","로제","리사"] & ["아이유"]
=> []
A∪Ac=U
∪=합집합
A
와 A여집합
의 합집합은 전체집합
ruby 코드
["지수","제니","로제","리사"] | ["아이유"]
=> ["지수", "제니", "로제", "리사", "아이유"]
(Ac)c=A
A의 여집합의 여집합은 A
n(Ac)=n(U)-n(A)
메모
여집합의 C
Complementary의 앞자인 C를 따왔음
기호 일본어 정리
교집합 = せきしゅうごう(積集合) = ∩
여집합 = よしゅうごう(余集合) = -
합집합 = わしゅうごう(和集合) = ∪
부분집합 기호 = ∈