2016-06-06 2 views
1

정의 된 집합에 대해 다른 하위 집합을 만들고 나중에 모델링에 사용하도록 저장하고 싶습니다. 예를 들어 SC = {{1}, {2}, {3}, {1,2}, {1,3} 등의 효율적인 방법은 C = {1,2,3} {2,3}, {1,2,3}} 나중에 제약 조건에서 사용합니까?하위 집합을 생성하는 방법

여행용 세일즈맨 문제에서 연결되지 않은 회로를 해결하는 것이 구체적입니다. 따라서 문제를 해결할 수있는 제안을 잘 받았습니다. 감사!

답변

-1

public IEnumerable<IEnumerable<T>> GetPowerSet<T>(List<T> list) { return from m in Enumerable.Range(0, 1 << list.Count) select from i in Enumerable.Range(0, list.Count) where (m & (1 << i)) != 0 select list[i]; }

이 작동합니다. 하스켈

-1

유명한 한 줄 :

> filterM (const [True, False]) [1,2,3] 
[[1,2,3],[1,2],[1,3],[1],[2,3],[2],[3],[]] 
관련 문제