标题:求大神指导 本科毕业设计碰到一个关于循环的难题!!!
只看楼主
vecent
Rank: 2
等 级:论坛游民
帖 子:19
专家分:29
注 册:2013-4-10
结帖率:66.67%
已结贴  问题点数:10 回复次数:8 
求大神指导 本科毕业设计碰到一个关于循环的难题!!!
有N个点,分成稳定点(F组)和不稳定点(M)组,要找出其中的不稳定点,由N个点的某些特性组成一个N*N的矩阵,假设i点是不稳定的,要把矩阵分割成四部分
,FF为矩阵的第i行第i列,FM为矩阵的第i行和1,2,,i-1,i+1,,,N列,MF为矩阵的第i列和1,2,,i-1,i+1,,,N行,MM为剩下的部分。经过一系列判读证明i是不稳定的,现在要搜索下一个不稳定的点,假设为j,矩阵同样要分为四部分,FF为矩阵的
,FM为矩阵的第i,j行和1,2,,i-1,i+1,j-1,j+1,,,,N列,MF为矩阵的第i,j列和1,2,,i-1,i+1,,,j-1,j+1,,,N行,MM为剩下的部分,再判读j是否为不稳定的点,不是则停止,如果是不稳定点,就继续搜索下一个不稳定点,矩阵分区类似上面情况,直到搜索到N-1个点为止。
   这是本人毕业设计碰到的一个难题
  请问有没好的循环方法能实现?讲讲思路或者一些关键程序。。。
  不胜感谢啊!!!
搜索更多相关主题的帖子: 矩阵 本科毕业 
2013-04-10 22:12
vecent
Rank: 2
等 级:论坛游民
帖 子:19
专家分:29
注 册:2013-4-10
得分:0 
没有大神能帮忙分析一二么
2013-04-11 12:22
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
连题都读不懂的飘过
2013-04-11 12:28
vecent
Rank: 2
等 级:论坛游民
帖 子:19
专家分:29
注 册:2013-4-10
得分:0 
以下是引用yhlvht在2013-4-11 12:28:21的发言:

连题都读不懂的飘过
好吧,估计是太复杂了点不好描述吧
2013-04-11 16:04
feiei
Rank: 2
来 自:河北省石家庄
等 级:论坛游民
帖 子:41
专家分:37
注 册:2012-9-15
得分:0 
真心看不懂题啊

小白初来。求各种罩。。。。
2013-04-11 17:00
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:10 
这个估计得高数大神才能解决,如果你是高数大神,可以把问题分析出来,然后描述得简单些,例如矩阵中的1个点在满足什么样条件的情况下,就是不稳定点,那我们就可以用语言把它写出来了
2013-04-11 17:41
vecent
Rank: 2
等 级:论坛游民
帖 子:19
专家分:29
注 册:2013-4-10
得分:0 
"满足什么样条件的情况是不稳定点"这个倒是很简单,不是重点。关键是循环寻找不稳定点,
比如有4个点,经过一个判断式得出存在不稳定点。
他们的矩阵是
1,2,3,4;
5,3,1,3;
2,3,4,1;
1,2,4,3;
要循环1-4找不稳定点,假如第一个是不稳定点,矩阵要分成四块后,第一块是(1)第二块是(2,3,4)第三块是
5;
2;
1;
第四块是
3,1,3;
3,4,1;
2,4,3;
再通过一系列运算,得到一个值,把四次算的的值比较,值最大的对应是不稳定点。(这算第一步吧,我已经做出来了)
再剩下三个点判读是否还有不稳定点,如果有就要继续循环寻找,还是那个矩阵,不过要把找出的不稳定点的信息删了,变成3*3的矩阵,然后再循环找不稳定点。依次重复上述步骤,直到把点都找出。就是这个循环的问题,求思路。。。
2013-04-11 19:26
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:0 
比如有4个不稳定点,当然不一定是4个,这个并不重要,因为我们会循环找到所有的

经过一个判断式得出存在不稳定点,程序里面就一定要知道怎么判断存在不称定点
if(判断式得出存在不稳定点)
{
   构造N*N的矩阵
   调用 找点方法(传入参数矩阵)
}
else
{
  没有不稳定点
}

//找不稳定点的方法
public void 找点(参数 矩阵)
{
    for(循环每个点)
    {
        取出每个点,当然一开始就是第一个点
        然后把矩阵分成4块,分别用4个数组保存
        再通过一系列运算,程序当然要知道是怎么运算的
        比较4次算出来的值,得出假设的点是不是真的不稳定点
        if(假设的点是真的不稳定点)
        {
            删点不稳定点,构造出新的矩阵
            调用自己找点方法,也就是递归,继续下一个点
        }
        else    //假设这个点是稳定点
        {
            //没事,什么都不用做,循环到下一点继续
        }
    }
}

不知道是不是这么理解的
2013-04-11 20:08
vecent
Rank: 2
等 级:论坛游民
帖 子:19
专家分:29
注 册:2013-4-10
得分:0 
以下是引用yhlvht在2013-4-11 20:08:19的发言:

比如有4个不稳定点,当然不一定是4个,这个并不重要,因为我们会循环找到所有的
 
经过一个判断式得出存在不稳定点,程序里面就一定要知道怎么判断存在不称定点
if(判断式得出存在不稳定点)
{
   构造N*N的矩阵
   调用 找点方法(传入参数矩阵)
}
else
{
  没有不稳定点
}
 
//找不稳定点的方法
public void 找点(参数 矩阵)
{
    for(循环每个点)
    {
        取出每个点,当然一开始就是第一个点
        然后把矩阵分成4块,分别用4个数组保存
        再通过一系列运算,程序当然要知道是怎么运算的
        比较4次算出来的值,得出假设的点是不是真的不稳定点
        if(假设的点是真的不稳定点)
        {
            删点不稳定点,构造出新的矩阵
            调用自己找点方法,也就是递归,继续下一个点
        }
        else    //假设这个点是稳定点
        {
            //没事,什么都不用做,循环到下一点继续
        }
    }
}
 
不知道是不是这么理解的
谢谢大神!基本思路差不多想清楚了,递归给了我很大启发! 以后编的过程中遇到什么问题再请教大神
2013-04-11 22:57



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




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

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