母函式應用的實踐 改變條件

2021-05-25 16:13:45 字數 1316 閱讀 7247

母函式應用的實踐(改變條件)

不定方程解的個數,注意這裡是求不小於

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元,有多少種組合?某些時候...