200 개의 문자열이 있습니다. 각 문자열은 다른 모든 문자열과의 관계 (0에서 1 사이의 부동 소수점으로 측정 됨)를가집니다. 이 관계는 양방향입니다. 즉, 관계 A/B == 관계 B/A. 이것은 n (n-1)/2 관계 또는 19,800을 산출합니다. 내가 원하는 무엇200 개의 문자열이 주어 졌을 때, 관계 값의 LUT를 키잉하는 좋은 방법은 무엇입니까
내가 빨리 관계 값을 찾을 수있는 두 단어를 부여하도록 조회 테이블에서 이러한 관계를 저장합니다.
저는 C++을 사용하고 있으므로 LUT를 저장하기 위해 std :: map을 사용할 것입니다. 문제는이 목적에 가장 적합한 키가 무엇인가하는 것입니다.
키는 고유해야하며 두 단어 모두에서 신속하게 계산할 수 있어야합니다.
내 접근 방식은 각 단어 쌍에 고유 한 식별자를 만드는 것입니다. 예를 들어 "사과"와 "오렌지"라는 단어가 주어지면 "appleorange"(알파벳 순서, 가장 작은 것부터)로 결합하여 핵심 가치로 사용합니다.
이것은 좋은 해결책입니까? 아니면 누군가가 더 똑똑한 것을 제안 할 수 있습니까? :)
+1 단계. 예비 map-to-int 단계는 두 번째 단계를 더 효율적으로 만듭니다 (큰 데이터 세트의 경우). 물론, 이것은 관심사 일 수도 있고 아닐 수도 있습니다 ... –