2014-02-14 3 views
1

숫자 목록 (통화)에 대한 일부 집계 정보를 취하여 해당 속성이있는 구체적인 목록을 반환하는 함수를 작성하려고합니다. 예를 들어 평균 265.43 달러, 6,000 달러, 최대 1,000 달러 등의 목록을 요청할 것입니다. 반환 값은 평균 265.43 달러, 합계 6,000 달러입니다. 속성을 만족시키는 목록이 많이있을 수 있지만 모든 항목을 열거 할 필요는 없습니다. 반환 할 항목이 하나만 있으면됩니다.합계 (합계, 평균 등) 집합의 구체적인 목록 작성

  • 그것은 그것은 S
  • 평균값이이
  • 최저 수가 을 합산 N
  • 의 길이를 갖는다 : 여기

    목록의 재산 L
  • highe 명세서 번호 H이고 그것은 달러 범위의 비중을 일치
  • :
    • X 값이 덜 $ 75
    • $ 75, $ 200
    • Z있다 사이 Y 값이보다 값이 $ 200보다 큰 것

이 매개 변수 각각에 값을 전달하고 그 값과 일치하는 목록을 반환하고 싶습니다. 나는이 세트 (N, S, A, L, H, X, Y, Z) 중 몇백 개를 가지고 있지만 그것을 생산하는 데 사용 된지지 목록을 가지고 있지 않습니다. 생성 된 목록이 원본 목록과 정확히 동일 할 필요는 없습니다. 원본보기와 동일한 모양으로 볼 필요가 있습니다.

내가 같이 호출하고 싶습니다 -> 목록 = gimmeThatList (N, S, A, L, H, X, Y, Z)

나는 심지어 찾고 어디서부터 시작 모르겠어요 이에 대한 정보를 제공하므로 링크 또는 Google 검색 용어 일지라도 도움을받을 수 있습니다. 시간을 절약 할 수 있다면 몇 가지 실제 코드가 좋지만 내가 얻을 수있는 것을 취할 것입니다.

+0

을 포함하여 그 범위의 모든 합계를 생성 할 수 있다고 생각합니다. 이것은 단지 문제에 대한 창의적인 접근을 찾는 것입니다. 그것은 표준적인 문제가 아닙니다. 이것에 관해 계속하기위한 당신의 노력은 무엇입니까? –

+0

네 말이 맞아, 나는 그게 내가 모르는 표준 문제 였으면 좋겠다. 전에 바퀴를 발명 한 시간을 보냈으므로 같은 실수를 다시하고 싶지 않았습니다. 내 자신의 노력은 당신이 제공 한 해결책에 가깝기 때문에 그 길을 계속 할 것입니다. – huxley07

답변

0

약간 생각 : 일반화에 의해 대체 될 수 S/N

  • LH 동일하므로
  • A 중복 인 X, Y의 합 Z 때문에

    • N는 중복 X, Y 및 Z 하위 집합에 대한 가격 범위 조건.사용자는이 값리스트 발생 및 X, Y 및 Z와 (S' = S - L - H, X', Y', Z') 적절히 적응 감소 문제를 해결하고 생각할 수 제한과 그 범위 내로 감소리스트 이을 모든 숫자 [L, R]

    들어 Z '[max (L, 200), max (L, 200)]에 대한 Y'값 [max (75, L), min (H, 200)]에 대해 범위 [L, min H]

    우리가 만들 수있는 가능한 합계에 대한 하한값 인 X' * L + Y' * max (75, L) + Z' * max(L, 200)과 상한값을 쉽게 계산할 수 있습니다. 간단한 욕심쟁이 알고리즘 (독자들에게 연습 과제로 남겨둔 X, Y, Z 범위의 개별/하위 합계에 대한 생각)을 사용하면 S '

  • +0

    감사합니다. 욕심 많은 알고리즘을 더 살펴볼 것입니다. 필요한 솔루션과 같이 보입니다. 지금까지 가장 큰 문제는 평균을 정확하게 얻었습니다 (합계는 아무런 문제가되지 않습니다).하지만 해결책을 찾을 때까지 해킹 해 보겠습니다. 다시 감사합니다 – huxley07

    +0

    @huxley 내가 말했듯이, 당신이 합계를 얻는다면, 당신은 바로 바로 평균을 얻습니다. 나는 문학이 너를 도울 것이라고 생각하지 않지만, 원하는 합계를 얻는 데 정말로 쉬운 전술이있다. –

    +0

    와우 나는 바보 같아, 네가하는 말을 보았다. 감사. – huxley07