나는 이것에 대한 설정을 사용합니다 :
In [9]: set("aabbcc")
Out[9]: set(['a', 'c', 'b'])
In [10]: set(zip("aabbcc", [1, 1, 5, 5, 2, 2]))
Out[10]: set([('a', 1), ('c', 2), ('b', 5)])
두 번째 세트는 매핑이 surjective의 경우에만 첫 세트에 동일한 길이있을 것이다.
다음
이
def is_bijection(seq1, seq2):
distinct1 = set(seq1)
distinct2 = set(seq2)
distinctMappings = set(zip(seq1, seq2))
return len(distinct1) == len(distinctMappings) and len(distinct2) == len(distinctMappings)
이도 돌아갑니다 아이디어를 구현하는 코드입니다 (그렇지 않은 경우, 동일한 두 번째 세트의 수, 또는 그 반대에 문자 매핑의 두 사본이됩니다) 1 개의 순서가 다른 것보다 짧지 만 유효한 매핑이 이미 설정되어있는 경우는 true 시퀀스의 길이가 동일해야하는 경우 해당 시퀀스를 확인해야합니다.
a = "abcabc"및 b = "123127"인 경우 예상되는 출력은 무엇입니까?참 또는 거짓 – raton
거짓은 'c'가 3과 7 (또는 다른 방법으로, 3과 7이 모두 'c'에 매핑 됨)에 매핑되기 때문입니다. bijection에서 각 요소는 다른 집합에 하나의 일치 요소 만 포함합니다. –