가능한 해결책.
정렬 각 목록 및 10 비트 이진수로 변환
예컨대
목록 하나 개
9 8 7 6 5 4 3 2 1 0
N N Y Y Y Y N N Y Y = 243
목록 두
9 8 7 6 5 4 3 2 1 0
Y Y N Y N N Y Y Y N = 846
목록 세
,536,913 쌍
즉
0,1 = 3
0,2 = 5
...
1,5 = 34
...
5,7 = 160
...
8,9 = 768
값과 계산의 목록 (I가 용이 한 쌍 텍스트 표현을 포함 시켰습니다)
를 만들기위한 63,210
9 8 7 6 5 4 3 2 1 0
N N Y Y Y Y Y N Y N = 250
사전 생성 가능한 모든 값
예 :
public class Details {
public string Pair { get; set; }
public int Value { get; set; }
public int Count { get; set; }
}
// selection only
public readonly static List<Details> PairDetails = new List<Details>() {
new Details{Pair = "0,1", Value = 3},
new Details{Pair = "0,2", Value = 5},
new Details{Pair = "1,5", Value = 34},
new Details{Pair = "1,6", Value = 66},
new Details{Pair = "2,3", Value = 12},
new Details{Pair = "4,5", Value = 48}
};
는 쌍을 반복하고
foreach (var details in PairDetails) {
foreach (var value in values) {
if ((value & details.Value) == details.Value) {
details.Count++;
}
}
}
var most = PairDetails.Where(dtls => dtls.Count == PairDetails.Max(dt => dt.Count)).ToList();
이 당신에게 목록에 시대의 대부분의 금액을 발생하는 모든 쌍의 목록을 줄 것이다 나열합니다.
hth,
앨런.
무엇이 지쳤습니까? &&이 문맥에서 '쌍'은 무엇을 의미합니까? – soulcheck
어떤 프로그래밍 언어를 원하십니까? – ChrisBD
나는 C#에서 이것을 원한다. – onurbaysan