함수식 프로그래밍 사상

991 단어
동전 교환 문제
문제는 동적 기획 안의 동전 교환 문제다.그래서 함수식 프로그래밍의 관건은 동적 기획 문제와 같다. 귀속 관계식이다.동전을 바꾸는 문제는 그의 귀속 관계가 결코 어렵지 않다는 것을 발견했다.사용 가능한 동전이 이미 어떤 순서(큰 것부터 작은 것까지)를 배열했다고 가정하면 다음과 같은 관계가 있다. 총수를 a현금으로 n종의 동전으로 바꾸는 다른 방식의 수량은 다음과 같다.현금수 a를 첫 번째 동전을 제외한 모든 다른 동전의 다른 방식수로 바꾸어 2.현금수 a-d를 모든 종류의 동전으로 바꾸는 다른 방식의 수량, 그 중에서 d는 첫 번째 동전의 화폐가치이다
이런 방법의 정확성: 1과 2는 두 가지 분류로 볼 수 있는데 1리에는 첫 번째 동전을 사용하지 않았고 2리에는 첫 번째 동전(적어도 1종을 사용했다)을 사용했으며 1과 2는 전집으로 모든 상황을 고려했다.이와 같은 문제는 현금이 더 적거나 더 적은 종류의 동전에 대한 동일한 문제로 귀착된다.특수한 상황은 다음과 같다.만약 a가 0이라면 잔돈을 바꾸는 방식이 있다고 할 수 있다.만약 a가 0보다 작다면 0가지로 잔돈을 바꾸는 방식이라고 할 수 있다.만약 n이 0이라면 0가지로 잔돈을 바꾸는 방식이라고 할 수 있다
function count_change(amount,n){
var m = n||5;
if(amount ===0) return 1;
if(amount<0 || n===0) return 0;
    return count_change(amount,m-1)+count_change(amount-value_of_currency(m),m);
}

function value_of_currency(n){
    if(n===1) return 1;
    if(n===2) return 5;
    if(n===3) return 10;
    if(n===4) return 25;
    if(n===5) return 50;
}

좋은 웹페이지 즐겨찾기