| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:现金悬偿:两个递归函数的VB6编程
只看楼主 加入收藏
zhxf5233929
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-6-30
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:2 
现金悬偿:两个递归函数的VB6编程

一个函数是:P(n)=n!×(∑F(k)×F(n-k)),其中F(1)=1。
F(n)=∑F(k)×F(n-k),为一递规函数,n,k为自1开始的自然数.n!为n的阶乘,∑为求合。

另一个函数是:P(n)= ∑C(k,n)×P(k)×P(n-k),其中P(1)=1,C(k,n)=k!/[n!*(n-k)!]。

求助一完整的程序,输入一个n值,就能得出结果的.
现金10元悬偿,给您手机充值,求一完整的程序,谢谢!
搜索更多相关主题的帖子: 递归 函数 现金 
2010-07-01 23:45
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:7 

F值写开来是这样的吗?

F(1)=F(1)*F(1-1)
F(2)=F(1)*F(2-1)+F(2)*F(2-2)
F(3)=F(1)*F(3-1)+F(2)*F(3-2)+F(3)*F(3-3)
F(4)=F(1)*F(4-1)+F(2)*F(4-2)+F(3)*F(4-3)+F(4)*F(4-4)
F(5)=F(1)*F(5-1)+F(2)*F(5-2)+F(3)*F(5-3)+F(4)*F(5-4)+F(5)*F(5-5)

--------------------------------
这个程序,必须要变通,否则堆栈立马就满掉.
因为是自己递归自己,并且是 *3 的递归.

我想到的变通方法是,先把 F 小数字求出来,然后再根据小数字,逐步求出大的F值来.
最后再去代入公式.

问题是我还是理解不了他的题目.
K是自 1 开始的自然数,那么K的终值是多少? 是无穷大?还是一个固定值,还是 N ??
题目中都没有指定.........

授人于鱼,不如授人于渔
早已停用QQ了
2010-07-02 12:00
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4947
专家分:30084
注 册:2008-10-15
收藏
得分:0 
Option Explicit

Dim F值() As Double


Public Function 阶乘(cs As Long) As Double
'n!
If cs = 1 Then
    阶乘 = 1
Else
    阶乘 = cs * 阶乘(cs - 1)
End If
End Function

Private Sub Command1_Click()

Dim n As Long
n = Val(Text1.Text)
ReDim F值(n)

F值(1) = 1

'F(1) = F(1) * F(1 - 1)
'F(2) = F(1) * F(2 - 1) + F(2) * F(2 - 2)
'F(3) = F(1) * F(3 - 1) + F(2) * F(3 - 2) + F(3) * F(3 - 3)
'F(4) = F(1) * F(4 - 1) + F(2) * F(4 - 2) + F(3) * F(4 - 3) + F(4) * F(4 - 4)
'F(5) = F(1) * F(5 - 1) + F(2) * F(5 - 2) + F(3) * F(5 - 3) + F(4) * F(5 - 4) + F(5) * F(5 - 5)

Dim i As Long, j As Long
For i = 2 To n
    F值(i) = F值(i - 1)
    For j = 1 To i
        F值(i) = F值(i) + F值(j) * F值(i - j)
    Next j
Next i


'P(n)=n!×(∑F(k)×F(n-k))
Dim p As Double
p = 阶乘(n)

j = 0
For i = 1 To n - 1
   j = j + F值(i) * F值(n - i)
Next i
p = p * j

Label1.Caption = p

End Sub

---------------------------------
不知道是这有这样的, 关键在 F 的计算上面.
F 的计算不能用递归,必须要有 变通方法,否则就会因数据稍大就造成 堆栈 溢出.
--------------------

授人于鱼,不如授人于渔
早已停用QQ了
2010-07-02 12:51
快速回复:现金悬偿:两个递归函数的VB6编程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.050810 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved