함수 생성은 계산 알고리즘을 설계 할 때 유용합니다. 즉, 특정 속성을 가진 객체의 수를 찾을 때뿐만 아니라 이러한 객체를 열거하는 방법을 찾고있을 때 (그리고 아마도 객체를 계산하는 알고리즘을 생성하는 경우)입니다. Ronald Graham, Donald Knuth 및 Oren Patashnik의 7 장에서 콘크리트 수학 의 훌륭한 프레젠테이션이 있습니다. 아래의 예는이 책에서 발췌 한 것입니다 (실수와 명확성이 부족함).
주어진 동전 세트로 변경하는 방법을 찾고 있다고 가정하십시오. 예를 들어, 일반적인 미국 명칭 ¹을 사용하면 가능한 동전은 입니다. ¢ 42를 변화시키기 위해, 하나의 가능성은 ; 다른 가능성은 입니다. 우리는 연락합니다 . 보다 일반적으로, 우리는 변화를주는 모든 방법에 대한 생성 함수를 작성할 수 있습니다 :
좀 더 기술적 인 용어로, 는 5 개의 변수에 대한 거듭 제곱 공간의 용어입니다.[ 25 ] [ 10 ] [ 5 ] [ 1 ] [ 1 ] [ 10 ] [ 10 ] [ 10 ] [ 10 ] [ 1 ] [ 1 ] 42 ⟨ [ 25 ] [ 10 ][ 1 ] , [ 5 ] , [ 10 ] , [ 25 ] , [ 100 ][ 25 ] [ 10 ] [ 5 ] [ 1 ] [ 1 ][ 10 ] [ 10 ] [ 10 ] [ 10 ] [ 1 ] [ 1 ]H = Σ H ≥ 0 Σ Q ≥ 0 Σ D ≥ 0 Σ N ≥ 0 Σ (P) ≥ 0 [ 100 ] H [ 25 ] Q [ 10 ] d [ 5 ] n [ 1 ] p42 ⟨ [ 25 ] [ 10 ] [ 5 ] [ 1 ]2⟩ = ⟨ [ 10 ]4[ 1 ]2⟩
H= ∑h ≥ 0∑큐≥ 0∑디≥ 0∑n ≥ 0∑p ≥ 0[ 100 ]h[ 25 ]큐[ 10 ]디[ 5 ]엔[ 1 ]피
[ 100 ] , [ 25 ] , [ 10 ] , [ 5 ] , [ 1 ] ⟨ [ 100 ] H [ 25 ] Q [ 10 ] (D) [ 5 ] , N [ 1 ] P ⟩ = 100 H + 25 Q + 10 d + 5 n + p v v H PH[ 100 ] , [ 25 ] , [ 10 ] , [ 5 ] , [ 1 ]. 하여이 공간에 단항식의 평가를 정의
그런 방법은 수득 변화 센트 그 평가이다 monomials 수있는 . 우리는 를 동전으로 만 바꾸는 방법, 으로 동전과 니켈을 바꾸는 방법 등을 적어서 를 점진적으로 표현할 수 있습니다 . ( 동전을 의미합니다.)
⟨ [ 100 ]h[ 25 ]큐[ 10 ]디[ 5 ]엔[ 1 ]피⟩ = 100 H + 25 Q+ 10 일+ 5 N + P
VVH피I P = I + [ 1 ] + [ 1 ] 2 + [ 1 ] 3 + … = I엔나는피= 나는+ [ 1 ] + [ 1 ]2+ [ 1 ]삼+ … = 나는나는− [ 1 ]엔= ( 난+ [ 5 ] + [ 5 ]2+ [ 5 ]삼+ … ) P= P나는− [ 5 ]D = ( I+ [ 10 ] + [ 10 ]2+ [ 10 ]삼+ … ) N= N나는− [ 10 ]Q = ( 나는+ [ 25 ] + [ 25 ]2+ [ 25 ]삼+ … ) D = D나는− [ 25 ]H= ( 난+ [ 100 ] + [ 100 ]2+ [ 100 ]삼+ … ) Q = Q나는− [ 100 ]
변경 방법을 열거하지 않고 세고 싶다면, 우리가 얻은 공식 시리즈를 사용하는 간단한 방법이 있습니다. 동질성 적용합니다
에서
의 계수는 센트를 변화 시키는 방법의 수입니다 .
에스:[ 1 ] ↦ X,[ 5 ] ↦ X5,[ 10 ] ↦ X10, [ 25 ] ↦ X25, [ 100 ] ↦ X100
엑스V에스( C)V
더 어려운 예 : 2x1 도미노로 사각형을 바둑판 식으로 배열하는 모든 방법을 연구한다고 가정합니다. 예를 들어 2 개의 가로 도미노 또는 2 개의 세로 도미노를 사용하여 2x2 사각형을 타일링하는 두 가지 방법이 있습니다. 사각형 을 타일링하는 방법의 수를 세는 것은 상당히 쉽지만 경우는 금방 알 수 없습니다. 도미노를 함께 붙여서 반복적 인 패턴을 빠르게 만들어서 높이가 3 인 수평 밴드의 가능한 모든 타일링을 열거 할 수 있습니다.
2 × n3 × n
⎧⎩⎨⎪⎪⎪⎪⎪⎪유= o + L V+ Γ Λ + ≡ UV= 나는유+ =−VΛ =나는유+−=Λ
여기서 재미있는 모양은 기본 도미노 배열을 나타냅니다. 는 도미노가 아니며 은 수평 도미노의 왼쪽 부분에있는 세로 도미노입니다. 는 높이 3의 밴드의 바닥에 정렬 된 세로 도미노이고, 은 밴드의 상단에 정렬 된 가로 도미노와 그 아래에 두 개의 가로 도미노, 오른쪽에 한 단계, 여기에서 곱셈은 수평 연결을 나타내며 정식은 아니지만이 검정력 계열에서 변수를 형성하는 기본 패턴 사이에는 방정식이 있습니다. 이전과 마찬가지로 모든 도미노에 를 대입 하고 타일링 수에 대한 생성 시리즈를 얻을 수 있습니다.
영형엘나는−=엑스3 × ( 2 n / 3 ) 직사각형 (즉, 의 계수는 도미노 를 포함 하고 너비가 영역의 사각형을 타일링하는 방법의 수입니다 ). 이 시리즈는보다 다양한 방식으로 사용될 수도 있습니다. 예를 들어, 수직 및 수평 도미노를 구별하여 주어진 수의 수직 및 수평 도미노로 타일링을 계산할 수 있습니다.
엑스3 K6 K3 K2 K
다시 한 번 덜 콘크리트 프리젠 테이션을 보려면 콘크리트 수학 을 읽으십시오 .
¹ 내 목록이 불완전하다는 것을 알고 있습니다. 수학 예제에 적합한 단순화 된 미국을 가정합니다
.² ² 또한 등장한다면 구형 동전을 가정하십시오.
³ 그리고 더 나은 조판.