标题:求助:VFP6.0编程问题
只看楼主
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
得分:0 
继续优化,减少一层 If/EndIf 辨别,减少 K 循环数:

For K = 1 To 13
    B = 84/K - K/2
    If Int (B) = B
        ? "OUT = " + Transform(Int(B*B - 100))
    Endif
Endfor

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-05-23 23:30
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
得分:0 
不一定是优化的,只是表示使用语句最少,三句命令:

For K = 13 To 1 Step - 1
    ?? Iif(Int(84/K - K/2) = (84/K - K/2), "OUT = " + Transform(Int((84/K - K/2)*(84/K - K/2) - 100)) + Chr(10) + Chr(13), "")
Endfor

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-05-24 00:00
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
再化简一些
*!*    公式:
*!*    a*a = OUT + 100  (1)
*!*    b*b = OUT + 268  (2)
*!*    化简 (2) - (1):
*!*    b*b - a*a = 168
*!*    解方程组:
*!*    (b-a)*(b+a) = 168
*!*    设 (b-a) = k
*!*    则 b = 84/k + k/2
*!*    假设:b > a > 0
*!*    a = (b-k) = (84/k+k/2-k) > 0
*!*    k^2 < 168
*!*    k <= 12
*!*    k是偶数,并且 2<=k<=12

FOR k=12 TO 2 STEP -2
    IF 84%k == 0
        ? "OUT = " + TRANSFORM((84/k+k/2)^2-268)
    ENDIF
ENDFOR

[此贴子已经被作者于2016-5-24 07:35编辑过]

2016-05-24 07:33
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
得分:0 
看到 23 楼的帖子,应该是优化的顶点/截至/拐点,我放弃了继续优化的兴趣,就此刹车,打住。

等待下一个有兴趣算法的帖子出现ing

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-05-24 08:40
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
以下是引用aaaaaa在2016-5-24 08:40:19的发言:

看到 23 楼的帖子,应该是优化的顶点/截至/拐点,我放弃了继续优化的兴趣,就此刹车,打住。

等待下一个有兴趣算法的帖子出现ing

有意思,看到当年学C语言时,书本上的C语言算法的影子了。
2016-05-24 09:02
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:0 
这个算是经典问题。
这类与“完全平方数”相关的问题,经常在小学数学竞赛(或小学奥数竞赛)中出现。
2016-05-24 09:20
aaaaaa
Rank: 8Rank: 8
等 级:贵宾
威 望:21
帖 子:796
专家分:937
注 册:2012-9-4
得分:0 
回过头来我们小结一下。

对计算机初级编程的人来说,其实要求你掌握循环、赋值、判别、显示等语句,只要程序走的通,可以上机,一般用暴力/遍历方法;

对数学专业的人来说,一定要有独特的算法;

对计算机编程专业的人来说,不仅要有算法,还要有优化。

暴力/遍历法也许不太科学,但也不至于伪科学、不科学,因为预测、猜测、概率、博弈也是一门学问,他们是研究不可知、不确定性的学科。
只要猜测不是胡说八道,不是迷信。

谢谢大家。

民工子弟学校22班团小组长阳光模特队长冲锋篮球队前锋小苹果合唱队领唱蓝天舞蹈队编舞
2016-05-24 09:24



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-465118-1-1.html




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

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