滚求:一个VB的编程,对一个二项分布的式子求和。出不来结果,结果是零,循环估计有问题,求大神····

[复制链接]
查看11 | 回复2 | 2011-4-20 09:04:54 | 显示全部楼层 |阅读模式
Dim c As Single
\'表示火车实有的卧铺数,即火车容量
Dim r As Single
\'表示销售每张票的净收益
Dim z As Single
\'表示列车的总收益
Dim Tc As Single
\'表示列车的超售成本
Dim f As Single
\'表示列车的运行总成本
Dim b As Single
\'表示处理一名DB旅客的赔偿费用
Dim x As Single
\'表示列车可销售铺位数
Dim p As Single
\'表示订票旅客的到达率
Dim pk As Single\'表示列车到达k个旅客的概率
Dim i As Single
Dim sum As Single
Dim k As Single
Dim a As Single
Dim sum1 As Single
Dim sum2 As Single
Dim sum3 As Single
Dim j As Single
Dim m As Single
Dim n As Single
Dim y As Single
Dim s As Single
Dim t As Single
Dim e As Single
Private Sub Command2_Click()
Text1.Text = 660
Text2.Text = 300
Text3.Text = \"\"
Text4.Text = \"\"
Text6.Text = 150
Text7.Text = \"\"
Text8.Text = 0.85
Text9.Text = \"\"
End Sub

Private Sub Command1_Click()





c = Text1.Text
r = Text2.Text

k = Text4.Text
b = Text6.Text
x = Text7.Text
p = Text8.Text


If kc Then

For i = 0 To c

For j = 1 To k
sum = 1
sum = sum * j
Next j

For m = 1 To x
sum1 = 1
sum1 = sum1 * m
Next m

For n = 1 To (x - k)
sum2 = 1
sum2 = sum2 * n
Next n

a = sum1 / (sum * sum2)


pk = a * p ^ k * (1 - p) ^ (x - k)


sum3 = 0
sum3 = sum3 pk * (r * i (x - i) * 0.2 * r)
Next i

Text9.Text = pk
Text3.Text = sum3

ElseIf k = c Then

For e = c 1 To x
For y = 1 To k
sum = 1
sum = sum * y
Next y

For s = 1 To x
sum1 = 1
sum1 = sum1 * s
Next s

For t = 1 To (x - k)
sum2 = 1
sum2 = sum2 * t
Next t

a = sum1 / (sum * sum2)


pk = a * p ^ k * (1 - p) ^ (x - k)

sum3 = 0
sum3 = sum3 pk * (r * c - b * (e - c) 0.2 * r * (x - e))
Next e

Text9.Text = pk
Text3.Text = sum3

End If
End Sub
回复

使用道具 举报

千问 | 2011-4-20 09:04:54 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-3650383\">懂了,但是我这样求阶乘是不是不行,从1到650求解溢出了
回复

使用道具 举报

千问 | 2011-4-20 09:04:54 | 显示全部楼层
<pre class=\"replyask-text\" id=\"content-3650847\">换一下数据类型,换成Double或浮点好了
不过什么东西要用到650的阶乘??这个数字太庞大了.....
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行