母函式應用的實踐(改變條件)
不定方程解的個數,注意這裡是求不小於
x+y+z+p+q<=j,
用母函式能夠解得答案是:
go上面式子已經被計算過了為:
c(n-1+,n-1)
其中n=5,j=10,而對於公式中n應該為6,所以有n-1
下面寫程式來證明:
(defun pow (num count)
(if (or (> count 1) (eq count 1) )
(* num
(pow num
(- count 1) ) )
1))(defun slayer ( count)
(if (or (> count 1) (eq count 1) )
(* count
(slayer
(- count 1) ) )
1))(defun slayerex (num count)
(if (or (> count 1) (eq count 1) )
(* num
(slayerex
(- num 1)
(- count 1) ) )
1))(defun exprhelp ( count n )
(if (> n 0)
(+ (expr (- count 1)
(- n 1) )
(exprhelp count
(- n 1)))
0))//注意下面**的改變之處(if (eq count 0) 1
(defun expr (count n)
(if (eq n 0)
(if (eq count 0)
(+ (exprhelp count
n)(expr (- count 1)
n)))))
(defun formula (count n)
(/ (slayerex count
n)(slayer n)))
(defun test (n)
(if (> n 1)
(progn
(print (expr 5 (1- n)))
(print 'compare)
(print (formula (+ 5 (1- n) -1 1) (1- n)))
(test (- n 1)))
(print 'over)))
(test 10)
注意這裡**與前面的不同之處!
母函式的用法
對於母函式來說,他的本質解決問題的地方在於 1.把組合問題的加法法則和冪級數的乘冪對應起來。2.把離散數列和冪級數一 一對應起來,把離散數列間的相互結合關係對應成為冪級數間的運算關係,最後由冪級數形式來確定離散數列的構造。例如 分別有乙個1克,2克,3克,4克的砝碼,問他們能組成幾種重量?每種重量能...
oracle 函式應用實踐一
create or replace function f get fjkywtce fcd in varchar,flag in number 非集客業務提成額 不參與考核分配 return number is prekpi number p1 number p2 number p3 number ...
母函式詳解和史上最通用最高效的母函式模板
母函式,又稱生成函式,是acm競賽中經常使用的一種解題演算法,常用來解決組合方面的題目。本文講解母函式,但不講解該演算法的基礎理論。讀者隨便找一本組合數學教材便可找到相應的內容,或者直接在網上搜尋一下。母函式通常解決類似如下的問題 給5張1元,4張2元,3張5元,要得到15元,有多少種組合?某些時候...