| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1195 人关注过本帖
标题:想做一个循环,结果只循环了一次,为毛啊?在线
只看楼主 加入收藏
米粒大小3
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2015-10-25
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:4 
想做一个循环,结果只循环了一次,为毛啊?在线
double b;
            double[] a = new double[4] { -3, 0, 0, 5 };
            b = a[3] - a[0];
            a[1] = a[3] - 0.618 * b;
            a[2] = a[0] + 0.618 * b;
                while (System.Math.Abs((a[1] * a[1] + 2 * a[1]) - (a[2] * a[2] + 2 * a[2])) > 0.01)
                {
                    if ((a[1] * a[1] + 2 * a[1]) < (a[2] * a[2] + 2 * a[2]))
                    {
                        a[3] = a[2];
                        b = a[3] - a[0];
                        a[1] = a[3] - 0.618 * b;
                        a[2] = a[0] + 0.618 * b;
                    }
                    else if ((a[1] * a[1] + 2 * a[1]) < (a[2] * a[2] + 2 * a[2]))
                    {
                        a[0] = a[1];
                        b = a[3] - a[0];
                        a[1] = a[3] - 0.618 * b;
                        a[2] = a[0] + 0.618 * b;
                    }
                }
搜索更多相关主题的帖子: 在线 double 
2016-04-13 17:59
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:20 
看你声明数组的方式,是c#吧。
程序代码:
while (System.Math.Abs((a[1] * a[1] + 2 * a[1]) - (a[2] * a[2] + 2 * a[2])) > 0.01)
{    
    if ((a[1] * a[1] + 2 * a[1]) < (a[2] * a[2] + 2 * a[2]))
    {
        a[3] = a[2];
        b = a[3] - a[0];
       a[1] = a[3] - 0.618 * b;
       a[2] = a[0] + 0.618 * b;
    }
    else   //条件不要和上面的一样
    {
       a[0] = a[1];
       b = a[3] - a[0];
       a[1] = a[3] - 0.618 * b;
       a[2] = a[0] + 0.618 * b;
    }
}

   唯实惟新 至诚致志
2016-04-13 18:34
米粒大小3
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2015-10-25
收藏
得分:0 
回复 2楼 qq1023569223
恩恩,我就想依据while条件,求出最后的数组,但为什么循环不了啊?求指教!!!1
2016-04-13 18:41
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序是死的,人是活的,循环几次就看你的数据是什么样的,如果真的只能一次,那就是一次。如果不对,可以调试,也可以通过输出中间数据来分析。

   唯实惟新 至诚致志
2016-04-13 18:53
米粒大小3
Rank: 1
等 级:新手上路
帖 子:40
专家分:7
注 册:2015-10-25
收藏
得分:0 
哥,题目是这样的:对函数f=a*a+2*a,给定搜索区间-3<=a<=5时,使用黄金分割法求极小点。
2016-04-13 19:04
快速回复:想做一个循环,结果只循环了一次,为毛啊?在线
数据加载中...
 
   



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

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