각 파티션에서 요소 하나의 조합 수를 찾고 계십니까?
간단히 말해서 n1 * n2 * ... * nk입니다.
편집 : 또한 별도의 질문을 것 같다 :
을 감안할 때 N, I는 N1, N2를 할당 어떻게 ..., nk는 그들의 제품이 극대화되도록. 변수가 곱 해져서 실제로 선형 최적화 문제는 아닙니다.
이것은 미적분에 의해 해결 될 수 있습니다. 즉, Lagrange 승수를 사용하여 제약 조건과 함께 각 변수에서 부분 방부제를 복용함으로써 해결할 수 있습니다.
결과는 n1 .. nk가 가능한 한 동일한 크기에 가까워 야합니다.
if n is a multiple of k, then n_1 = n_2 = ... = n_k = n/k
otherwise, n_1 = n_2 = ... = n_j = Ceiling[n/k]
and n_j+1 = ... = n_k = floor[n/k]
기본적으로 가능한 한 균일하게 요소를 파티션에 배포하려고합니다. 그들이 균등하게 나뉘면 위대합니다. 그렇지 않다면 우리는 최대한 균등하게 나눕니다. 남은 것은 무엇이든 첫 번째 파티션에 여분의 요소를 각각 씁니다. (첫 번째 파티션 일 필요는 없으며 그 선택은 상당히 임의적입니다.)이 방법으로 두 파티션이 소유 한 요소의 수의 차이는 많아야 1이됩니다.
피투성이 세부는 :
이것은 우리가 극대화하고자하는 제품 기능입니다 :
P = N1 * 우리는 라그랑주 승수를 사용하여 새로운 함수를 정의
북한
* ... N2 :
람다 = P + 1 (N - N1 - N2 ... -nk)
그리고 취할 편미분의 L
및 L로 -
dLambda/dn_i = P/n_i :
dLambda/DL = N - N1 -N2 ... -nk
K 개의 n_i 각 변수 모든 부분 미분을 = 0으로 설정하면 k + 1 방정식의 시스템을 얻고이를 풀면 n1 = n2 = ...이됩니다.= 북한
몇 가지 유용한 링크 :
Lagrange Multipliers
Optimization
아마 여기에는 2 개의 별개의 문제가있는 것 같습니다. 총 조합 수에 대한 해답은 아래에 썼습니다. 여기에도 최적화 문제가 있습니까? –
아래 내용이 도움이되기를 바랍니다. 그것은 갈 시간이 걸리는 미적분 주제이지만, 간단히 말해서 그렇습니다. –
고마워요. Rob. 이것은 내가 해결책에 더 가까워지는 것을 돕고있는 것처럼 보인다. – user66237