用VB编程,求这样的四个自然数p,q,r,s(p<=q<=r<=s),使得以下等式成立: 它们的倒数和等于1

用VB编写,思想应该是4个嵌套的for循环判断满足if的语句,将满足条件的p,q,r,s输出... 用VB编写,思想应该是4个嵌套的for循环判断满足if的语句,将满足条件的p,q,r,s输出 展开
 我来答
unsamesky
2013-05-15 · TA获得超过2737个赞
知道小有建树答主
回答量:859
采纳率:100%
帮助的人:526万
展开全部

因为:p<=q<=r<=s 

所以:1/p>=1/q>=1/r>=1/s

因为:1/p+1/q+1/r+1/s = 1

所以:1/p+1/p+1/p+1/p >=1 从而推出:p<=4

因为:p,q,r,s都是自然数,显然,p必须大于1,所以 2<=p<=4 推出:1/2 >=1/p >=1/4

所以:1/q+1/r+1/s = 1 - 1/p  从而推出: 1/2 <= 1/q + 1/r + 1/s  所以:1/2<=1/q+1/q+1/q

从而得到:q<=6  所以:q = p to 6

到此,我们至少推断出两点:p = 2 to 4  ;q = p to 6

因为p<=q,所以如果p=2,而且倒数和为1,所以q必须大于2,如果p>2,那么q还是必须大于2,

所以可以确定:3<=q<=6 得到 1/3 >=1/q>=1/6,而1/2>=1/p>=1/4

所以:1/3+1/2>=1/q+1/p>=1/6+1/4 推出:5/6>=1/p+1/q>=5/12 那么:1/6<=1/r+1/s<=7/12

因为:1/6<=1/r+1/s<=1/r+1/r  所以:r<=12

因为:1/p>=1/q>=1/r>=1/s 而且1/p+1/q+1/r+1/s = 1 所以:1/s+1/s+1/s+1/s<=1/p+1/q+1/r+1/s=1

所以:s>=4

当p,q均取最小值的时候,p=2,q=3,那么1/p+1/q=5/6,所以1/r +1/s =1/6 ,当且仅当r的值最接近6的时候,s取得最大值,也就是r=7的时候s取得最大值42.


到此,我们得出了 p = 2 to 4 , q = 3 to 6 ; r<=12;4<=s<=42

为了防止数学推算部分的遗漏,将r和s的取值范围扩大,得到如下代码:

Sub Comand2_Click()
    Dim p, q, r, s
    For p = 2 To 4
        For q = p To 6
            For r = q To 100
                For s = r To 1000
                    If (p * q * r + p * q * s + q * r * s + p * r * s) / (p * q * r * s) = 1 Then Print p & "," & q & "," & r & "," & s
    Next s, r, q, p
End Sub
平方X
2013-05-14
知道答主
回答量:20
采纳率:0%
帮助的人:30.5万
展开全部
Dim p%, q%, r%, s%, N%
N = 100
For p = 1 To N
For q = p To N
For r = q To N
For s = r To N
If 1 / p + 1 / q + 1 / r + 1 / s = 1 Then Debug.Print p, q, r, s
Next s
Next r
Next q
Next p
有问题还可以直接询问252114284
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式