精华内容
下载资源
问答
  • 给你一个算法应该怎么写程序(数学建模 matlab)

    万次阅读 多人点赞 2017-08-27 13:29:52
    本文写作初衷:有个可爱的学妹问我在看到一个算法编程时的步骤是什么,然而作为伪大神的我,感觉并不知道怎么回答,感觉我编程就俩字死磕,错了咋办?再来一遍!不行咋办?换个写法试试!还不行?百度!不过既然人家...

    本文写作初衷:有个可爱的学妹问我在看到一个算法编程时的步骤是什么,然而作为伪大神的我,感觉并不知道怎么回答,感觉我编程就俩字死磕,错了咋办?再来一遍!不行咋办?换个写法试试!还不行?百度!不过既然人家诚心诚意的问了 o( ̄▽ ̄)o,还是说点建设性的经验。

    算法是什么?

    • 算法是处理解决问题的思路及办法,程序语言是按照一定语法把算法表达来。
    • 打个比方,你头脑里有了一套新思想,一个新发现,你可以用中文写出来,也可以用英文写出来,让大家明白。思想和发现可以比作是算法,用中文或英文可以比作是程序语言。
    • 因此核心是算法,但程序语言是实现算法的载体。在计算机等系统中,算法是处理某一问题的思路方法,而程序语言能具体表达算法从而使之运行起来通过算法需要完成的任务。

    前提假设:

    要实现的这个算法网上能搜到大量的资料,比如算法的思想是什么,使用这个算法的例子(翻书太慢,不够丰富,不推荐)。


    1. 给你一个算法,在动手编程之前,你应该把注意力放在哪里?

    算法的核心是解决问题的思路和方法,所弄明白一个算法的思路是非常有必要的(当然对于某些教材上的算法给出的步骤详细的不能再详细,不知道思路比着步骤也能编,这里不考虑)。

    比如:
    在用遗传算法解决问题时:

    1. 百度搜索遗传算法,比较多见的是百度百科,CSND博客,博客园,知乎,脚本之家的内容,也是我重点关注的搜索结果。前三者的内容相对比较系统,可以从中掌握这个算法的由来,思想,一般步骤。知乎大神的回答一般比较深入浅出,或者站在一个比较高的高度耳目一新,脚本之家给出的代码比较实用,百度知道一些论坛智库里面也会有一些有价值的回答,但是没有前面几个的思想有深度。

    2. 这里从百度百科的结果看思想:
      图片来自百度百科截图——遗传算法
      理解好这个介绍就完成了一大步(因为具体问题的具体实现不能照搬,只有思想是通用的):从这里理解了遗传算法就是仿真生物种群优胜劣汰的过程,适者生存,不适者淘汰。并且知道了这个算法的解决问题一般步骤是编码,产生初代种群,迭代演化(演化要计算个体适应度,交叉,变异,产生新的个体)
      此外还需要理解每个过程都需要实现什么功能:
      图片来自百度百科截图——遗传算法
      这里看得出整个算法的关键是构造一个迭代(不懂迭代就理解维循环),迭代的每一步需要计算种群中每个个体的适应度,优胜劣汰种群中的个体,种群中交叉运算,变异运算(是为了生成新的可行解,为寻找到初始种群里之外更好可行解提供了可能)得到新的种群

    3. 看懂了思想,知道了每步是干啥的,就可以联系我们要解决的问题思考(思考的方式大致就是要解决的问题有什么?可以对应到算法的那一部分上?这样对应后其他部分要怎么实现?):

    • 要求解的问题是最优化问题,那么个体(染色体)是不是就对应着每个可行解?
    • 适应度是不是对应着目标函数值?
    • 求得了适应度要怎么按照适应度的大小繁殖后代?(用rand函数怎么实现?)
    • 如何实现交叉运算?(不同可行解之间哪些部分可以交换,并且有益于构造出不同的可行解?)
    • 如何实现变异运算?(随机改变某些个体的某些属性的值可以吗?)
      对于这些细节有了大致的思路或者模糊的思路就可以开始尝试编写代码了
    1. 如果觉得自己的思路太模糊,可以看看别人的例子代码(如果没有理解这些算法的思想,直接看已有的代码,要看懂很困难,当然也可以从里面的循环和分支结构作为突破口,画画流程图,写一写注释,来帮助理解代码),也可以直接上手去编,遇到问题再去网上找解决方案(matlab那么杂,函数那么多,记不住的东西就要善于网上去搜)

    2. matlab编程应该熟练哪些知识?

    参考另一篇博客哪些知识点是学习matlab应该熟练掌握的?,基本功熟练,才能看到问题有想法思路(能力决定思维)


    比如针对这次数学建模第三轮训练——下料问题,假设建立了这样的模型:

    这里写图片描述

    • 可行解(切割方案)是由两个矩阵和两个向量表示的,矩阵A的每一行表示用一根5000mm长的材料切割出50种钢管的数量,由于钢管种类多达50种,如果穷举所有可能切法是困难的,所以矩阵A的行数暂定为200行,矩阵B的每一行表示用一根6000mm长的材料切割出50跟钢管的数量,同样暂定其行数为200行,列向量a的行数同A的行数一样,表示按照每种切割方法切割原材料的根数,列向量b表示按照B的每行的切割方法切割原材料的根数。
    • 目标函数是这种切割方案产生的废料的量。
    • 约束条件是每根原材料够长,切割出每种钢管数目达到需求。
      (精力有限,省去数学语言描述)

    怎么应用约束条件,是直接根绝约束条件生成可行解,还是随机生成后判断是否满足约束?前者设计困难,后者效率可能非常低下。

    1. 编写代码(本例中要遗传的个体比较复杂,就不进行编码解码,直接把80个可行解作为初始种群,相应的代价是交叉和变异不容易):
    close all;clear;clc;
    %% 数据
    AL=5000;BL=6000;
    NL=[] % 50种钢管的长度
    NN=[] % 50种钢管的数量
    %% 初始化,上面的步骤a)
    T = 1000; % 迭代1000步
    M = 80; % 种群规模
    P = []; % 种群
    for m=1:M % 初始化种群
    	temp.A = 
    	temp.B = 
    	temp.x = 
    	temp.y = 
    	P(m)=temp; % 上面需要构造一个合适的方法生成初始可行解,实现较麻烦,
    	% 我的大致思路是
    end
    %% 迭代(迭代包括个体评价,选择,交叉,变异)
    for t=1:T % 至多进化T次
    %%%%%%%%%% 个体评价,假设已有一个函数score,输入A、B、x、y,返回浪费材料的长度
    	sc = zeros(1,M);
    	for m=1:M
    		temp = P(m);
    		sc(m) = score(temp.A,temp.B,temp.x,temp.y); % 计算得分
    	end
    	% 做一个合适的变换,让浪费材料长度变为得分(适应度),这里简化了
    	sc = -sc;
    	sc = sc-min(sc)/(max(sc) - min(sc));
    %%%%%%%%%% 选择,轮盘赌算法,就是让得分对应于轮盘上扇形的宽度
    %选择50次,落到哪个扇区,对应的个体就有一个后代
    	sumsc = sum(sc);
    	csum = cumsum(sc);% 累加 a1,a1+a2,a1+a2+a3,...,sum(a)
    	oldP = P;
    	for m=1:M
    		[~,index]=find(sumsc*rand>csum);
    		if(isempty(index)) index=0;
    		P(m) = oldP(index+1);  
    	end
    %%%%%%%%%% 交叉运算,这里随机选择30对进行交叉运算,这里假设实现了交叉算子
    %across ,输入两个个体,函数交换两个个体里矩阵A,B,x,y里的部分行,列,数据
    	toex = ceil(M*rand(30,2));
    	for i=1:30
    		P(toex(i,:)) = across(P(toex(i,:)));% 两两做交叉运算
    	end
    %%%%%%%%% 变异运算,随机选取几个对象,改变A,B,x,y里的部分数据,
    %这里假设已经实现了变异算子variation
    	toch = ceil(M*rand(10,1));% 假设10个发生变异
    	for i=1:10
    		P(toch(i)) = variation(toch(i));
    	end
    end
    % 目前已经按照遗传算法的思想写出了整体骨架,细节有空再完善
    

    2021-2-10 补充
    原来鸽王竟是我自己!

    展开全文
  • 转载请注明出处:http://blog.csdn.net/sinat_34820292 https://blog.csdn.net/sinat_34820292/article/details/77619487本文写作初衷:有个可爱的学妹问我在看到一个算法编程时的步骤是什么,然而作为伪大神的我,...

    转载请注明出处:http://blog.csdn.net/sinat_34820292 https://blog.csdn.net/sinat_34820292/article/details/77619487

    本文写作初衷:有个可爱的学妹问我在看到一个算法编程时的步骤是什么,然而作为伪大神的我,感觉并不知道怎么回答,感觉我编程就俩字死磕,错了咋办?再来一遍!不行咋办?换个写法试试!还不行?百度!不过既然人家诚心诚意的问了 o( ̄▽ ̄)o,还是说点建设性的经验。

    算法是什么?

    • 算法是处理解决问题的思路及办法,程序语言是按照一定语法把算法表达来。
    • 打个比方,你头脑里有了一套新思想,一个新发现,你可以用中文写出来,也可以用英文写出来,让大家明白。思想和发现可以比作是算法,用中文或英文可以比作是程序语言。
    • 因此核心是算法,但程序语言是实现算法的载体。在计算机等系统中,算法是处理某一问题的思路方法,而程序语言能具体表达算法从而使之运行起来通过算法需要完成的任务。

    前提假设:

    要实现的这个算法网上能搜到大量的资料,比如算法的思想是什么,使用这个算法的例子(翻书太慢,不够丰富,不推荐)。


    1. 给你一个算法,在动手编程之前,你应该把注意力放在哪里?

    算法的核心是解决问题的思路和方法,所弄明白一个算法的思路是非常有必要的(当然对于某些教材上的算法给出的步骤详细的不能再详细,不知道思路比着步骤也能编,这里不考虑)。

    比如: 
    在用遗传算法解决问题时:

    1. 百度搜索遗传算法,比较多见的是百度百科,CSND博客,博客园,知乎,脚本之家的内容,也是我重点关注的搜索结果。前三者的内容相对比较系统,可以从中掌握这个算法的由来,思想,一般步骤。知乎大神的回答一般比较深入浅出,或者站在一个比较高的高度耳目一新,脚本之家给出的代码比较实用,百度知道一些论坛智库里面也会有一些有价值的回答,但是没有前面几个的思想有深度。

    2. 这里从百度百科的结果看思想: 
      图片来自百度百科截图——遗传算法 
      理解好这个介绍就完成了一大步(因为具体问题的具体实现不能照搬,只有思想是通用的):从这里理解了遗传算法就是仿真生物种群优胜劣汰的过程,适者生存,不适者淘汰。并且知道了这个算法的解决问题一般步骤是编码,产生初代种群,迭代演化(演化要计算个体适应度,交叉,变异,产生新的个体) 
      此外还需要理解每个过程都需要实现什么功能: 
      图片来自百度百科截图——遗传算法 
      这里看得出整个算法的关键是构造一个迭代(不懂迭代就理解维循环),迭代的每一步需要计算种群中每个个体的适应度,优胜劣汰种群中的个体,种群中交叉运算,变异运算(是为了生成新的可行解,为寻找到初始种群里之外更好可行解提供了可能)得到新的种群

    3. 看懂了思想,知道了每步是干啥的,就可以联系我们要解决的问题思考(思考的方式大致就是要解决的问题有什么?可以对应到算法的那一部分上?这样对应后其他部分要怎么实现?):

      • 要求解的问题是最优化问题,那么个体(染色体)是不是就对应着每个可行解?
      • 适应度是不是对应着目标函数值?
      • 求得了适应度要怎么按照适应度的大小繁殖后代?(用rand函数怎么实现?)
      • 如何实现交叉运算?(不同可行解之间哪些部分可以交换,并且有益于构造出不同的可行解?)
      • 如何实现变异运算?(随机改变某些个体的某些属性的值可以吗?) 
        对于这些细节有了大致的思路或者模糊的思路就可以开始尝试编写代码了
    4. 如果觉得自己的思路太模糊,可以看看别人的例子代码(如果没有理解这些算法的思想,直接看已有的代码,要看懂很困难,当然也可以从里面的循环和分支结构作为突破口,画画流程图,写一写注释,来帮助理解代码),也可以直接上手去编,遇到问题再去网上找解决方案(matlab那么杂,函数那么多,记不住的东西就要善于网上去搜)

    2. matlab编程应该熟练哪些知识?

    参考另一篇博客哪些知识点是学习matlab应该熟练掌握的?,基本功熟练,才能看到问题有想法思路(能力决定思维)


    比如针对这次数学建模第三轮训练——下料问题,假设建立了这样的模型:

    这里写图片描述

    • 可行解(切割方案)是由两个矩阵和两个向量表示的,矩阵A的每一行表示用一根5000mm长的材料切割出50种钢管的数量,由于钢管种类多达50种,如果穷举所有可能切法是困难的,所以矩阵A的行数暂定为200行,矩阵B的每一行表示用一根6000mm长的材料切割出50跟钢管的数量,同样暂定其行数为200行,列向量a的行数同A的行数一样,表示按照每种切割方法切割原材料的根数,列向量b表示按照B的每行的切割方法切割原材料的根数。
    • 目标函数是这种切割方案产生的废料的量。
    • 约束条件是每根原材料够长,切割出每种钢管数目达到需求。 
      (精力有限,省去数学语言描述)

      怎么应用约束条件,是直接根绝约束条件生成可行解,还是随机生成后判断是否满足约束?前者设计困难,后者效率可能非常低下。

      1. 编写代码(本例中要遗传的个体比较复杂,就不进行编码解码,直接把80个可行解作为初始种群,相应的代价是交叉和变异不容易):
    close all;clear;clc;
    %% 数据
    AL=5000;BL=6000;
    NL=[] % 50种钢管的长度
    NN=[] % 50种钢管的数量
    %% 初始化,上面的步骤a)
    T = 1000; % 迭代1000M = 80; % 种群规模
    P = []; % 种群
    for m=1:M % 初始化种群
        temp.A = 
        temp.B = 
        temp.x = 
        temp.y = 
        P(m)=temp; % 上面需要构造一个合适的方法生成初始可行解,实现较麻烦,
        % 我的大致思路是
    end
    %% 迭代(迭代包括个体评价,选择,交叉,变异)
    for t=1:T % 至多进化T%%%%%%%%%% 个体评价,假设已有一个函数score,输入AB、x、y,返回浪费材料的长度
        sc = zeros(1,M);
        for m=1:M
            temp = P(m);
            sc(m) = score(temp.A,temp.B,temp.x,temp.y); % 计算得分
        end
        % 做一个合适的变换,让浪费材料长度变为得分(适应度),这里简化了
        sc = -sc;
        sc = sc-min(sc)/(max(sc) - min(sc));
    %%%%%%%%%% 选择,轮盘赌算法,就是让得分对应于轮盘上扇形的宽度
    %选择50次,落到哪个扇区,对应的个体就有一个后代
        sumsc = sum(sc);
        csum = cumsum(sc);% 累加 a1,a1+a2,a1+a2+a3,...,sum(a)
        oldP = P;
        for m=1:M
            [~,index]=find(sumsc*rand>csum);
            if(isempty(index)) index=0;
            P(m) = oldP(index+1);  
        end
    %%%%%%%%%% 交叉运算,这里随机选择30对进行交叉运算,这里假设实现了交叉算子
    %across ,输入两个个体,函数交换两个个体里矩阵A,B,x,y里的部分行,列,数据
        toex = ceil(M*rand(30,2));
        for i=1:30
            P(toex(i,:)) = across(P(toex(i,:)));% 两两做交叉运算
        end
    %%%%%%%%% 变异运算,随机选取几个对象,改变A,B,x,y里的部分数据,
    %这里假设已经实现了变异算子variation
        toch = ceil(M*rand(10,1));% 假设10个发生变异
        for i=1:10
            P(toch(i)) = variation(toch(i));
        end
    end
    % 目前已经按照遗传算法的思想写出了整体骨架,细节有空再完善

    展开全文
  • 主要是要对函数优化,函数是三范数只和求最小值。用遗传算法来优化。
  • 算法程序设计

    千次阅读 2018-07-21 18:35:40
    内容:1、简要介绍程序算法程序的关系;  2、了解结构化程序设计;  3、构建对称方阵。 1、什么是程序?  所谓程序,就是组计算机能识别与执行的指令。每条指令使计算机执行特定的操作,用来完成一定...

    内容:1、简要介绍程序,算法与程序的关系;

               2、了解结构化程序设计;

               3、构建对称方阵。


    1、什么是程序?

          所谓程序,就是一组计算机能识别与执行的指令每一条指令使计算机执行特定的操作,用来完成一定的功能。

          计算机的一切操作都是由程序控制的,离开了程序,计算机将一事无成。从这个意义来说,计算机的本质是程序的机器,程序算机的灵魂。


    2、程序与算法是什么关系?

         算法是程序的核心。程序是某一算法用计算机程序设计语言的具体实现。事实上,当一个算法使用计算机程序设计语言描述时,就是程序。具体来说,一个算法使用C语言描述,就是C程序。

        程序设计的基本目标是应用算法对问题的原始数据进行处理,从而解决问题,获得所期望的结果。在能实现问题求解的前提下,要求算法运行的时间短,占用系统空间小。 

        而初学者往往把程序设计简单地理解为编写一个程序,这是不全面的。程序设计反映了利用计算机解决问题的全过程,通常先要对问题进行分析并建立数学模型,然后考虑数据的组织方式,设计合适的算法,并用某一种程序设计语言编写程序实现算法。

    显然,一个程序包括对数据的描述与对运算操作的描述。

    著名计算机科学家尼克劳斯.沃斯就此提出一个公式:

                      数据结构+算法=程序

    概述:数据结构是对数据的描述,而算法是对运算操作的描述。


    3、结构化程序设计

    结构化程序设计的基本要点:

    (1)、自顶向下,逐步求精;

    (2)、模块化设计;

    (3)、结构化编码。

          自顶向下是指对设计求解的问题要有全面的理解,从问题的全局入手,把一个复杂的问题分解成若干个相互独立的子问题,然后对每个子问题再作进一步的分解,如此重复,直到每一个子问题都容易解决为止。

          逐步求精是指程序设计的过程是一个渐进的过程,先把一个子问题用一个程序模块来描述,再把每个模块的功能逐步分解细化为一系列的具体步骤,直至能用某种程序设计语言的基本控制语句来实现。

          逐步求精总是和自顶向下结合使用,将问题求解逐步具体化的过程,一般把逐步求精看作自顶向下设计的具体体现。

          模块化是结构化程序设计的重要原则。所谓的模块化就是把纷繁复杂的主程序按照功能来划分为若干个小程序,用来实现特定的功能。子模块也可以划分为更为详细的子程序,由此便形成了程序的模块化结构


    4、结构化程序设计的基本结构

      算法是由一系列操作组成的,这些操作之间的执行次序就是控制结构

      计算机科学家Bohm和Jacopini证明了这样的事实:

      任何简单或复杂的算法都可以由顺序结构、选择结构和循环结构这三种结构组合而成。

     因此,这三种结构是结构化程序设计基本也是必须采用的结构。


    ps:本博客内容主要源于杨克昌主编清华大学出版的《计算机常用算法与程序设计案例教程》。    

    谢谢关注!!!

          

    不忘初心,方得始终!

     

     

                                       

     

         

    展开全文
  • 一个一个简单的遗传算法例子,代码注释详尽,很适合初学者进行学习。代码已经经过测试,请放心下载
  • Kruskal算法的C语言程序

    千次阅读 2017-02-06 23:14:24
    Kruskal算法是两个经典的最小生成树算法之一,另外一个是Prim算法程序来源:Kruskal's Algorithm。 百度百科:Kruskal算法。 维基百科:Kruskal's Algorithm。 C语言程序(去除了原文中非标准的C语言代码):...

    Kruskal算法是有关图的最小生成树的算法。Kruskal算法是两个经典的最小生成树算法之一,另外一个是Prim算法

    程序来源:Kruskal's Algorithm

    百度百科:Kruskal算法

    维基百科:Kruskal's Algorithm

    C语言程序(去除了原文中非标准的C语言代码):

    #include<stdio.h>
    #include<stdlib.h>
    int i,j,k,a,b,u,v,n,ne=1;
    int min,mincost=0,cost[9][9],parent[9];
    int find(int);
    int uni(int,int);
    
    int main()
    {
        printf("\n\tImplementation of Kruskal's algorithm\n");
        printf("\nEnter the no. of vertices:");
        scanf("%d",&n);
        printf("\nEnter the cost adjacency matrix:\n");
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n;j++)
            {
                scanf("%d",&cost[i][j]);
                if(cost[i][j]==0)
                    cost[i][j]=999;
            }
        }
        printf("The edges of Minimum Cost Spanning Tree are\n");
        while(ne < n)
        {
            for(i=1,min=999;i<=n;i++)
            {
                for(j=1;j <= n;j++)
                {
                    if(cost[i][j] < min)
                    {
                        min=cost[i][j];
                        a=u=i;
                        b=v=j;
                    }
                }
            }
            u=find(u);
            v=find(v);
            if(uni(u,v))
            {
                printf("%d edge (%d,%d) =%d\n",ne++,a,b,min);
                mincost +=min;
            }
            cost[a][b]=cost[b][a]=999;
        }
        printf("\n\tMinimum cost = %d\n",mincost);
    }
    
    int find(int i)
    {
        while(parent[i])
        i=parent[i];
        return i;
    }
    
    int uni(int i,int j)
    {
        if(i!=j)
        {
            parent[j]=i;
            return 1;
        }
        return 0;
    }

    运行结果:

    	Implementation of Kruskal's algorithm
    
    Enter the no. of vertices:6
    
    Enter the cost adjacency matrix:
    0 3 1 6 0 0
    3 0 5 0 3 0
    1 5 0 5 6 4
    6 0 5 0 0 2
    0 3 6 0 0 6
    0 0 4 2 6 0
    The edges of Minimum Cost Spanning Tree are
    1 edge (1,3) =1
    2 edge (4,6) =2
    3 edge (1,2) =3
    4 edge (2,5) =3
    5 edge (3,6) =4
    
    	Minimum cost = 13


    展开全文
  • 程序算法

    万次阅读 2018-07-06 12:54:57
    课程导言【从本篇开始,就要学习编程知识了。...程序是指完成某些事物的种既定方式和过程,可以将程序看成是系列动作的执行过程的描述。在百度百科中,计算机程序被定义为“组指示计算机执行动作或做出判断的...
  • DEMATEL算法程序

    千次阅读 多人点赞 2019-01-11 11:23:11
    DEMATEL算法程序 写了一个简单对的DEMATEL算法的程序 clear;clc; %% 计算直接关联矩阵 w=[1,2,3,4,5,6]; %整体权值向量 m=length(w); B=zeros(m); %初始化直接关联矩阵 for i=1:m for j=1:m B(i,j)=w(i)/w(j); B...
  • 算法程序的区别与联系

    万次阅读 多人点赞 2019-05-20 14:54:55
    (3)程序并不都满足算法所要求的特征,例如操作系统,是一个在无限循环中执行的程序,因而不是一个算法。 (4)一个算法可以用不同的编程语言编写出不同的程序。 (5)算法是解决问题的步骤;程序算法的代码实现。 ...
  • 广度优先算法、最佳优先算法、A*算法寻路程序一个用三种算法寻路的程序,版本VS2015,截图如下:广度优先算法(迷宫为自绘):最佳优先算法:A*算法寻路程序:下载链接:...
  • Dijkstra算法的C语言程序

    千次阅读 多人点赞 2017-02-04 23:21:53
    Dijikstra算法是从一个顶点到其余各顶点的最短路径算法,解决的是有向图中最短路径问题。该算法是由荷兰计算机科学家迪杰斯特拉于1959年提出的。 程序来源:Dijkstra's Algorithm。 百度百科:Dijkstra算法。 ...
  • 设计一个按照优先级调度算法实现处理机调度的程序 一、优先级调度算法实现处理机调度的程序设计提示如下: ( 1 ) 假设系统有n个进程,每个进程用一个进程控制块(PCB)来代表。进程控制块的格式如下表所示,且参数...
  • 爬山算法matlab程序

    热门讨论 2010-08-30 23:14:12
    里面是用matlab写的爬山算法程序,对于初学算法的人有帮助,想用的下载看看。
  • 蒙特卡洛算法和matlab程序

    热门讨论 2009-10-30 11:19:04
    蒙特卡洛算法和matlab程序 随机变量的抽样 离散系统的模拟
  • 经典SVM算法matlab程序

    热门讨论 2011-10-19 11:32:35
    经典SVM算法matlab程序,用于各种利用MATLAB对数据进行SVM仿真的实验。
  • 算法 - 程序的灵魂

    千次阅读 2020-05-28 17:18:47
    行代码都是改变世界的能量,算法程序具有灵魂
  • 基本蛙跳算法MATLAB程序

    热门讨论 2011-01-07 21:06:31
    蛙跳算法 MATLAB程序 用MATLAB编写的基本蛙跳算法
  • 聚类算法之k均值算法+实例程序

    万次阅读 2018-06-05 10:46:54
    看完周志华老师的《机器学习》中关于聚类算法k均值算法的介绍,根据书上的介绍,自己用MATLAB编了程序,并与网上找的程序作了比较,比网上的运行更快一些。 数据采用《机器学习》书P202页的西瓜数据集,根据P203的...
  • K-SVD算法程序

    热门讨论 2012-06-26 10:43:05
    这是K-SVD算法MATLAB程序,里面包含了几追踪算法,和一些子程序,希望对于研究字典的朋友有所帮助。
  • 一个详细描述A星算法过程的C#例子,有源代码。 这个例子不追求运算速度,追求的是对算法逻辑的描述。 代码中运算过程是中文的,面向对象的。
  • 算法程序的区别

    千次阅读 2020-09-26 22:30:18
    程序是指用某种计算机语言对一个算法的具体实现,即具体要怎么做, 算法偏重于对解决问题的方法的描述,即要做什么。 算法必须满足有穷性,而程序不一定满足有穷性,比如Windows操作系统在用户没有退出、硬件不...
  • 匈牙利算法的MATLAB 程序代码

    万次阅读 2017-09-16 20:11:43
    匈牙利算法的MATLAB 程序代码如下(算例):
  • 算法程序的区别

    万次阅读 2018-03-11 23:13:12
    算法是指解决问题的一种方法或一个过程。算法是若干指令的有穷序列,满足性质:(1)输入:由外部提供的量作为算法的输入。(2)输出:算法产生至少一个量作为输出。(3)确定性:组成算法的每条指令是清晰,无歧义的。(4)...
  • 算法

    万次阅读 2018-02-08 00:13:09
    1.算法定义 ...如果一个算法有缺陷,或不适合于某个问题,执行这个算法将不会解决这个问题。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
  • apriori算法MATLAB程序

    热门讨论 2010-10-10 17:27:56
    用MATLAB软件实现关联规则中频繁项集挖掘算法Apriori 调试可用 附带测试数据集 程序完整
  • MWC飞控算法详细程序

    千次下载 热门讨论 2011-11-21 17:20:44
    这是从MWC官网下下来的程序,里面有MWC飞控最新的算法程序,很经典,可以借鉴使用!
  • 人工蜂群算法matlab程序

    热门讨论 2013-05-27 16:04:28
    人工蜂群算法是模仿蜜蜂行为提出的一种优化方法,是集群智能思想的一个具体应用,它的主要特点是不需要了解问题的特殊信息,只需要对问题进行优劣的比较,通过各人工蜂个体的局部寻优行为,最终在群体中使全局最优值...
  • 数学建模10大算法详解+程序源码打包

    千次下载 热门讨论 2011-01-29 10:30:49
    此份资源为数学建模十大算法详解+程序源码,为他人整理,现在,我拿出来供各位打包下载。 关于此数学建模的十大算法,更多,可参见My Blog: http://blog.csdn.net/v_JULY_v 谢谢,各位。 July、二零一一月二...
  • diff程序算法

    千次阅读 2010-02-09 21:46:00
    diff程序很重要,linux中的源代码补丁都是diff作出来的,diff在比较两文本文件的不同方面很高效,它是基于行的,diff会将两文件都按照行分成若干部分,然后计算这些行每行的校验码,之后的问题就是比较这两...
  • 算法:(贪心算法)-程序存储问题

    千次阅读 2017-11-21 19:19:33
    程序存储问题 ... 程序存储问题要求确定这n 个程序在磁带上的一个存储方案, 使得能够在磁带上存储尽可能多的程序。 对于给定的n个程序存放在磁带上的长度,计算磁带上最多可以存储的程序数。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,468,167
精华内容 587,266
关键字:

一个算法应该是程序