정수의 총 파티션이 있고 모든 값이 동일하지 않은 파티션 만 필요합니다. 예를 들어 - 3의 파티션은 {1,1,1,1}, {2,2}, {3,1}, {1,1,2} 및 {4}입니다. 따라서, 불평등 분할 영역은 등가 요소가 없기 때문에 {3,1}과 {4}가 필요합니다. 모든 파티션을 찾는 데 사용한 코드는 다음과 같습니다. 원하는 결과를 얻으려면 파티션을 필터링 할 수 있지만 모든 파티션을 찾지 않고 동일한 용어가없는 모든 파티션을 찾는 효율적인 방법을 원합니다. 나는 그물과 stackoverflow하지만 아무것도 정확하게 내가 직면하고있는 문제를 검색했습니다. 모든 아이디어는 높이 평가됩니다. 감사.정수의 부등호 파티션을 찾는 효율적인 방법
function total_partitions_of_a_number($n) {# base case of recursion: zero is the sum of the empty list
if(!$n) return array(array()); # return empty array
# modify partitions of n-1 to form partitions of n
foreach(total_partitions_of_a_number($n-1) as $p) { # recursive call
$a[] = array_merge(array(1), $p); # "yield" array [1, p...]
if($p && (count($p) < 2 || $p[1] > $p[0])) { # p not empty, and length < 2 or p[1] > p[0]
++$p[0]; # increment first item of p
$a[] = $p; # "yield" p
}
}
return $a; # return all "yielded" values at once
}
예상되는 출력을 제공 할 수 있습니까? – Kerwindena
@Sushant 예제가 너무 제한되어있어 원하는 것을 이해하지 못합니다. 6-7 파티션을 포함하는 더 많은 예제를 제공하십시오. – safarov
@safarov 내가 편집했습니다. – Sushant