精华内容
下载资源
问答
  • 小波分解的出发点

    千次阅读 2018-12-12 21:50:42
    小波与傅里叶变换一样,都是基函数去拟合被测信号 与傅里叶变换不同的是,小波是采用非周期信号,通过这个基函数的不同尺度缩放去拟合被测信号的不同频率,再通过平移基函数去拟合不同频率分量在时间序列(也称为...

    经过持续学习研究,终于理解了小波分解的原理和目的
             小波与傅里叶变换一样,都是基函数去拟合被测信号
             与傅里叶变换不同的是,小波是采用非周期信号,通过这个基函数的不同尺度缩放去拟合被测信号的不同频率,再通过平移基函数去拟合不同频率分量在时间序列(也称为空间位置)上的位置
             最后得到经过缩放平移变换的基函数的系数,构成时频尺度图,以便分析突变信号的位置和频率
    可以选择性去除一部分系数,再反变换回时域信号,达到滤波的目的
    应用这一特性,可以实现去噪,数据压缩,去除周期纹理干扰以及分割纹理瑕疵的效果
             把话讲透了,其实原理不难。一开始觉得难,就难在看小波变换的公式,一堆参数还有那个可怕的小波函数符号,以及公式化的讲解,而没有讲实现原理和过程。

     

    www.intelvisioncn.com

    展开全文
  • 条件:一个人需要从他自身的出发点开始,游玩不同的城市,每个城市都只去一次 目标:寻找一条”最短“路径,使得该名游客可以遍历每一个城市 其实这个问题就是典型的TSP旅行商问题的一种变形,有很多种解法,...

     

    蚁群算法的理解:蚂蚁在寻找食物的时候会释放出一种信息素,用来与同伴进行交流,使得大家最终寻找食物。而蚁群算法就是利用蚂蚁的释放信息素的这种特性,来不断改变蚂蚁走的方向从而达到目标(路径最短等)。

    文章我会分成使用蚁群算法解决两种问题,第一种是简单的寻找最短路径,第二种是关于任务分配,即负载均衡调度。

    很多文章都描述了蚁群算法如何得到最短路径,但是这个方法直接带入任务分配的时候很多人就对一些符号的理解变得混乱,例如在任务分配中,蚂蚁代表的是什么,下一个选择的城市在任务分配中代表的是什么?

    寻找最短路径

    原文地址:https://blog.csdn.net/wayjj/article/details/72809344#commentsedit(其实这个地址中就对于代码已经有标注解释的了,大家可以去看原帖,我就不复制粘贴引用了,我认为讲得挺清楚的,基本看一遍就知道,下面我对于寻找最短路径,根据原文中的代码修改了一处达到我自己的需求,但基本是一样的,所以还是推荐大家去原文看一下,很清晰)

    条件:一个人需要从他自身的出发点开始,游玩不同的城市,每个城市都只去一次

    目标:寻找一条”最短“路径,使得该名游客可以遍历每一个城市

    其实这个问题就是典型的TSP旅行商问题的一种变形,有很多种解法,蚁群算法是其中一种启发式算法。为什么我会在”最短“上面打引号呢?因为通过蚁群算法得出来的路径方案可能并不是最短的。

    下面粘贴的是我根据原代码进行调整,从而达到我自己需求的代码(语言是matlab):

    function [Shortest_Length]=TSP(C)
    %这个是直接输入坐标的
    m=15;Alpha=1;Beta=5;Rho=0.1;NC_max=10;Q=100;
    C=[6,10;8,10;9,15];
    %C n个城市的坐标,n×2的矩阵
    %NC_max 最大迭代次数
    %m 蚂蚁个数
    % Alpha 表征信息素重要程度的参数
    % Beta 表征启发式因子重要程度的参数
    % Rho 信息素蒸发系数
    % Q 信息素增加强度系数
    % R_best 各代最佳路线
    % L_best 各代最佳路线的长度
    n=size(C,1);%n表示问题的规模(城市个数)
    D=zeros(n,n);%D表示完全图的赋权邻接矩阵
    for i=1:n
        for j=1:n
            if i~=j
            D(i,j)=((C(i,1)-C(j,1))^2+(C(i,2)-C(j,2))^2)^0.5;%每个城市之间的距离
            else
            D(i,j)=eps;      %i=j时不计算,应该为0,但后面的启发因子要取倒数,用eps(浮点相对精度)表示
            end
            D(j,i)=D(i,j);   %对称矩阵
        end
    end
    Eta=1./D;          %Eta为启发因子,这里设为距离的倒数
    Tau=ones(n,n);     %Tau为信息素矩阵
    Tabu=zeros(m,n);   %存储并记录路径的生成
    NC=1;               %迭代计数器,记录迭代次数
    R_best=zeros(NC_max,n);       %各代最佳路线
    L_best=inf.*ones(NC_max,1);   %各代最佳路线的长度
    L_ave=zeros(NC_max,1);        %各代路线的平均长度
    while NC<=NC_max        %停止条件之一:达到最大迭代次数,停止
        Randpos=[];  
        kk=(ceil(m/n));%随即存取
        for i=1:kk
            Randpos=[Randpos,1,1,1,1];
        end
        Tabu(:,1)=(Randpos(1,1:m));    %目的是为了设置每一只蚂蚁的出发地方,因为我自己的代码需要从游客本身的地方出发,所以Tabu都是1,即输入坐标中的第一个
     
        for j=2:n     %所在城市不计算
            for i=1:m     
                visited=Tabu(i,1:(j-1)); %记录已访问的城市,避免重复访问
                J=zeros(1,(n-j+1));       %待访问的城市
                P=J;                      %待访问城市的选择概率分布
                Jc=1;
                for k=1:n
                    if length(find(visited==k))==0   %开始时置0
                        J(Jc)=k;
                        Jc=Jc+1;                         %访问的城市个数自加1
                    end
                end
                %下面计算待选城市的概率分布
                for k=1:length(J)
                    P(k)=(Tau(visited(end),J(k))^Alpha)*(Eta(visited(end),J(k))^Beta);
                end
                P=P/(sum(P));
                %按概率原则选取下一个城市
                Pcum=cumsum(P);     %cumsum,元素累加即求和
                Select=find(Pcum>=rand); %若计算的概率大于原来的就选择这条路线
               to_visit=J(Select(1)); 
                Tabu(i,j)=to_visit;
            end
        end
        if NC>=2
            Tabu(1,:)=R_best(NC-1,:);
        end
    
        L=zeros(m,1);     %开始距离为0,m*1的列向量
        for i=1:m
            R=Tabu(i,:);
            for j=1:(n-1)
                L(i)=L(i)+D(R(j),R(j+1));    %原距离加上第j个城市到第j+1个城市的距离
            end
            %L(i)=L(i)+D(R(1),R(n));      %一轮下来后走过的距离
        end
        L_best(NC)=min(L);           %最佳距离取最小
        pos=find(L==L_best(NC));
        R_best(NC,:)=Tabu(pos(1),:); %此轮迭代后的最佳路线
        L_ave(NC)=mean(L);           %此轮迭代后的平均距离
        NC=NC+1;                      %迭代继续
    
        Delta_Tau=zeros(n,n);        %开始时信息素为n*n的0矩阵
        for i=1:m
            for j=1:(n-1)
                Delta_Tau(Tabu(i,j),Tabu(i,j+1))=Delta_Tau(Tabu(i,j),Tabu(i,j+1))+Q/L(i);           
                %此次循环在路径(i,j)上的信息素增量
            end
            Delta_Tau(Tabu(i,n),Tabu(i,1))=Delta_Tau(Tabu(i,n),Tabu(i,1))+Q/L(i);
            %此次循环在整个路径上的信息素增量
        end
        Tau=(1-Rho).*Tau+Delta_Tau; %考虑信息素挥发,更新后的信息素
    
        Tabu=zeros(m,n);             %%直到最大迭代次数
    end
    
    Pos=find(L_best==min(L_best)); %找到最佳路径(非0为真)
    Shortest_Route=R_best(Pos(1),:); %最大迭代次数后最佳路径
    Shortest_Length=L_best(Pos(1)); %最大迭代次数后最短距离
    
    
    
    

    其中这个蚁群算法中信息素的变化是按照:只要有蚂蚁选择这条路,那么这条路上的城市的信息素都会发生变化。

    关于这个TSP问题的变形,就在于游客一开始的位置和结束的位置,这个纯属靠自己设置即可,因为我需要游客从当前自身的位置开始出发游玩,我设置的开始位置的语句是

        Tabu(:,1)=(Randpos(1,1:m));    
    %目的是为了设置每一只蚂蚁的出发地方
    %因为我自己的代码需要从游客本身的地方出发,所以Tabu都是1,即输入坐标中的第一个

    负载均衡调度(任务分配)

    原本一开始使用的是这个网址的方式:原文地址:https://blog.csdn.net/u010425776/article/details/79517301,但是后来运用了之后发现总是陷入局部最优,而不是全局最优,后来分析了之后,发现它在更新信息素时,将本次迭代中最优路径的信息素增加q%。但是我觉得往往就是这个方法导致很容易陷入局部最优。接着我通过搜索相关ACO+task assignment的论文,找到了能够跳出局部最优的方法,并且我自己的实验也验证了它是可以达到跟全局最优相比的方案。论文有几篇,但其中我认为表达最清晰的是:Ant colony optimization for the nonlinear resource allocation problem(可以google scholar)。这个问题可以分成3步:1.获得所有蚂蚁的路径 2.计算所有路径的目标值 3.更新信息素

    1.获得所有蚂蚁的路径

    现在举一个例子:现在一共有100只蚂蚁,10个任务,20个工人。首先第1只蚂蚁为这10个任务分配工人(第1条路径);第2只蚂蚁为这10个任务分配工人(第2条路径);第3只蚂蚁为这10个任务分配工人(第3条路径)...第100只蚂蚁为这10个任务分配工人(第100条路径)。例如下面的这张图,对于第1只蚂蚁ant1来说,它的路径就是:3-4-1-6-12-16-17-8-5-13,对于第2只蚂蚁来说,它的路径就是2-5-7--76-24-28-20-15-13(如果你想说一个工人可以做多个任务,一个任务需要多个工人去完成,你可以自己设置一个worker_task的矩阵来去控制就可以了)。例子

    而实际上,上面这个这个我制作的表格,其实可以说是对应Ant colony optimization for the nonlinear resource allocation problem这篇文章中的下面这张图。其中i代表的就是第i个任务,而(e_ijk)代表的就是当前已经选择完第i个任务,其中为第i个任务选择了第j个工人,并且打算在下一个i+1任务中选择第k个工人来完成。所以start-(e_ijk)-(e_ijk)-(e_ijk)-...-sink从而构成一条路径。(如果你想说一个工人可以做多个任务,你可以自己设置一个worker_task的矩阵来去控制工人的最大任务数,这个工人的在这个矩阵中的列值超过多少就将它在接下来的选择中删去;一个任务需要多个工人去完成,那么将就T变成T*q,其中q为一个任务需要的工人数)

    在这个获得所有蚂蚁的路径(就是对这10个任务分配相对应的工人),对于每一只蚂蚁的路径规划,最重要的就是对于第i个任务,应该选择哪一个worker,即(e_ijk)的选择遵守下面的这条公式,其中(p_ijk)就是当前第i个任务选择了第j个工人,那么第i+1个任务准备选择第k个工人的可能性:

    里面的(tao_ijk)就是信息素,(η_i+1,l)是一个heuristic values启发值,它是与当前i+1层中的第k个任务的f(k)值相关(这个f函数自己定义,s是一个常数值),alpha和beta是两个参数,这两个参数代表的意义如下:

    所以这个(p_ijk)就相当于:

    (在i+1层选择第k个工人的信息素值*这第k个工人在第i+1层的启发值)除以(第i+1层所有可选择的工人的信息素值*启发值)

    接着选择就按照轮盘(好像是叫这个名字?)的方法,根据概率(p_ijk)去选择第i+1个任务的工人。

    2.计算所有路径的目标值

    这一步其实是为了下面更新信息素作出的铺垫,计算所有路径的目标值。例如,这个目标值是总质量,其中第i个任务由第j个工人完成这里就有一个质量值q_ij,那么总质量值就是所有选择任务工人对的质量值相加,在上面的这个例子中,第一只蚂蚁的路径为3-4-1-6-12-16-17-8-5-13,所以这条路径对应的总质量值是(斜杠前面的代表的是任务的编号,后面代表的是选择的工人):q_1\3+q_2\4+q_3\1+q_4\6+q_5\12+q_6\16+q_7\17+q_8\8+q_9\5+q_10\13

    当然你也可以选择其他的目标值,但是需要计算每一条路经对应的目标值。例如上面有100只蚂蚁(100条路径),所以可以得出100条路径的目标值

    3.更新信息素

    信息素的重要性体现在哪?体现在第1步中的获得所有蚂蚁的路径中的选择概率(p_ijk)的计算。信息素的更新分成两步:信息素的衰减和信息素的增加。衰减和增加的总式子如下:

    前面的部分代表的就是信息素的衰减,这部分比较容易理解,就是挥发百分之多少。

    后面的部分代表的就是信息素的增加,m代表的是蚂蚁的数量也是路径的数量,如果这条路径中有(e_ijk),那么这个delta_tao就是0,如果这条路径中有(e_ijk),那么

    其中J(X_t)就是这条路径在第2步计算的目标值。

     

    至此,这3步就描述清楚了,大家可以根据自己的需求去进行修改相关的内容,其实很多演化算法很有可能不能达到最优解,很容易陷入局部最优,所以很多论文都有加入一些适当的初始解来帮助加快达到全局最优。比如蚁群算法中,一开始所有的信息素都为0,但是可以引入一些已经在目标值表现良好的路径,去修改相关的信息素,从而加快达到全局最优。

    4.代码

    我用我自己的方式按照我自己的需求写一下:

    总体思路和框架:一共有三层循环

    for i=1:迭代次数

               for j=1:蚂蚁数目

                        for k=1:任务数目

                                //为每一个任务寻找最合适的worker,蚂蚁的路径就是挑选(worker,task)的pair

                        end

                        //得出一只蚂蚁的路径

               end

               //得出多只蚂蚁的路径,计算所有路径的目标值

              //根据目标值更新信息素矩阵

    end

     

    总结

    蚁群算法是一种很好解决问题的方法。比较容易理解,并且操作简单,适应于大多数场景。而缺点就是启发式算法,很难有得到保证参数。

     


           


                

    展开全文
  • 公司设立这种的项目经理,出发点是希望项目管理能有人去管,但忘记了项目经理如果懂行只懂项目管理知识是没有用的,PMP中其实是非常强调项目经理需要懂自己的业务的。 当项目工作比较多时,确实会有 项目经理 + ...

    曾经有几次系统集成(高级)项目经理课程,我发现学员当中有不少是没有项目管理或项目一线工作的经验的,但是他们是“项目经理”这样的头衔,你猜是怎么回事?

    有些公司是 “项目经理+技术经理”的模式,有些则项目经理需要身兼多职,有些公司有专门管项目的PMO(项目管理办公室)……  总之情况很多,可能会烦死你!

    我稍微小结一下,项目经理一般分两种情况:

    1)谈项目的项目经理,能谈下项目,这叫牛B!
    2)做项目的项目经理,做项目的,这叫苦B,你懂的……

    如果你具备了上述两种情况,恭喜你,你是“2B”,牛B + 苦B!

    部分公司可能会有第三种情况,就是“纯 ”项目经理,只做管理但又不懂技术和业务的。这种项目经理通常会在员工心中中被认为是“负累”、“没用”的。

    公司设立这种的项目经理,出发点是希望项目管理能有人去管,但忘记了项目经理如果不懂行只懂项目管理知识是没有用的,PMP中其实是非常强调项目经理需要懂自己的业务的。

    当项目工作比较多时,确实会有 项目经理 + 技术经理 的情况,但这种情况下的项目经理仍然需要懂业务或技术,仍然需要管全部或部分业务和技术相关的工作。

    某些公司或某些人会可能会认为这种情况下,项目经理懂项目管理知识就可以了,不需要懂业务和技术,此乃大错特错!这样的项目经理其实不能叫项目经理,最多叫协调员或传声筒,这样的角色对项目价值不大,因为他这样不懂那样不懂,甚至他需要其他角色多做很多工作才能让这位项目经理开展工作,也很可能需要项目组做一些增加负担但没有实质价值的工作,此乃是个大笑话。

     

    给公司老板和管理层的建议:

    不要设立“纯”项目管理的岗位,项目经理至少需要懂业务或技术,两者必须至少懂其一。

    如果你们公司本身就有技术经理,直接升级他为项目经理就行了。技术经理其实是项目中不可替换的角色,他只需要稍微补充一些项目管理知识,完全可以胜任项目经理一职。

    不建议外招一个项目经理来“压”着这位技术经理,你完全可以“升级”这位技术经理为项目经理,然后让他来招聘合适的项目成员,例如可以招一个副手来帮忙管理项目等。

    如果项目业务复杂、客户关系复杂,则可以招聘两种项目经理,分别是对外和对内的项目经理:
    对外的项目经理:谈项目、谈商务、谈需求
    对内的项目经理:负责完成项目,他在满足项目商务和需求的前提下,全权调配项目人手和资源。

     

    给想做项目经理的朋友的建议:

    项目经理的要求是很高的,你要以军队的统帅、电影的总导演那样角色的要求来要求自己。当然你可能无法一步做到,但你需要这样定位自己,不要自我设限。项目经理是一个为项目创造条件和环境、推动各项工作的角色,如果你要任职项目经理还需要技术经理和项目组额外做更多工作来配合你,只能说你很不称职,或者说你不可能拿到很高的薪金。

    除了系统学习项目管理知识外,还需要积累一线的工作经验,逐步做到“周身刀,把把锋利!”


    我在CSDN学院的“全能项目经理训练营”


    链接:http://edu.csdn.net/course/detail/357


    展开全文
  • 显式方法与隐式方法

    万次阅读 多人点赞 2013-10-18 14:48:03
     所谓显式和隐式,是指求解方法的不同,即数学上的出发点不一样。并不是说显式只能求动力学问题,隐式只能求静力学问题,只是求解策略不通。  显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于...

    简介

         所谓显式和隐式,是指求解方法的不同,即数学上的出发点不一样。并不是说显式只能求动力学问题,隐式只能求静力学问题,只是求解策略不通。
         显式求解是对时间进行差分,不存在迭代和收敛问题,最小时间步取决于最小单元的尺寸。过多和过小的时间步往往导致求解时间非常漫长,但总能给出一个计算结果。解题费用非常昂贵。因此在建模划分网格时要非常注意。

      隐式求解和时间无关,采用的是牛顿迭代法(线性问题就直接求解线性代数方程组),因此存在一个迭代收敛问题,不收敛就的不到结果。

            两者求解问题所耗时间的长短理论上无法比较。实际应用中一般感觉来说显式耗时多些。由于两者解题的出发点,所以一般来说显式用于求解和时间相关的动力学问题。隐式用来求解和时间无关的静力学问题。但也不是绝对的。比如,用隐式求解时,为了克服迭代不收敛,改用显式算,但是要多给点时间,这样虽然克服了不收敛的问题,但是求解的时间费用也是相当客观的。另外,隐式也可以求解动力学问题。
            显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。


    隐式积分求解有限元问题

          假设现在一个物体已经被离散成有点个单元。

           显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。

          有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。显式求解与隐式在数学上说主要是在求解的递推公式一个是用显式方程表示,一个是用影视方程来表示。比如a(n)=a(n-1)+b(n-1),后一次迭代可以由前一次直接求解,这就是显示方程,如果a(n)=a(n-1)+f[a(n)],f[a(n))为a(n)的函数,此时a(n) 不能用方程显示表示,及数学上的隐函数,一般很难直接求解,多用迭代试算法间接求解。有限元在求解动力学问题中直接积分法中的中心差分积分就是显示求解,而Newmark积分法则为隐式积分。


          首先定义几个变量:

          x : 当前物体位置;则 表示速度,表示加速度。

          为物体的质量矩阵,


    对于牛顿第二定律: F=ma,用矩阵的形式表示的话:

    其中:表示物体在X位置下,速度为X导的情况下的受力。


    首先问题的初始条件是初始位移和初始速度

    目的是求得h时间后的位移和速度


    对于式子:



    若用显示欧拉求解,记,则可得到:


    这样,就利用欧拉前向方法在小步长的条件下求得当前状态的位置和速度。


    对于欧拉隐式解法,上式就变成了


    前向解法和后向解法的区别就是前向的求解只依赖于前一时刻的状态量,而后向求解则不仅依赖于前一时刻的状态,还依赖于当前时刻的状态。

    上式是一个非线性方程,不好直接求解,先对 f 进行泰勒级数展开:


    代入原式:




    I 表示单位矩阵,对上式进行移项,有


    通过这个式子很容易求得 detaV,然后detaX也可以求出,那么当前时刻的状态就求出来了。


    参考

    Large Steps in Cloth Simulation

    展开全文
  • 该算法对相对平缓的异常趋势变化敏感,因为我们每次是对局部窗口的数据进行鲁棒回归来预测窗口最后一个流量值,没有使用足够的历史数据来判断当前的平缓趋势变化是否正常。 (2)   如果异常持续时间超过鲁棒回归...
  • 众所周知,微软在终端的影响力和覆盖能力是巨大的,当全面进入移动互联网以后,势必会带来不一样的气息。预见到未来发展机遇的开发者们当然不会懈怠,很多应用已经在原有成熟的基础上开设Windows Phone平台产品,而...
  • 路飞看起来说话做事脑子转弯。但他是个大智若愚的人。很清楚自己应该干什么。有着天生做王者的魄力与霸气。虽然路飞有时说话经过大大脑,让人想生气都提起劲。但没几个人敢真正说路飞聪明。路飞看起来说话...
  • 软件测试和调试的区别

    千次阅读 多人点赞 2017-01-15 13:48:40
    不知道为什么,我现在正处在功能测试往性能测试方向转,突然就有这种疑问,软件测试和软件调试到底有什么区别;...它们的出发点不一样。前者是挑错,是一种挑剔过程,属于质盘保证活动。后者是排错,是一种
  • VC与VB的三大区别

    千次阅读 2007-03-01 11:16:00
    两者的设计出发点不一样.vc更注重程序的效率,而vb则强调易用性 2. VC为编译型,编译后得到的程序可直接运行。VB为解释型,编译后得到的文件需要 在VB环境里解释执行,执行情况类似于VB Script这样的脚本语言。 3. ...
  • 今天看到一句话说很多事情就像是旅行一样,当你决定要出发的时候,最困难的那部分其实就已经完成了,特别的有共鸣。D说,比别人晚起步几年要紧,咱今后还要做个律师呢。后来呢,后来D跑到哥大读本科来了。 第三个...
  • Problem Description 在美丽的HDU,有一名大三的同学,他的...经过3次转折(每次向右转90°),回到出发点,而且呢,他每次转折前总是跑相同长度的路程,所以很多人都想知道如果用‘1’算他跑步出发的第一个残影的话,
  • 本篇文章中,我们一起探讨了OpenCV中Harris角检测相关的知识,学习了OpenCV中实现Harris角检测的cornerHarris函数的使用方法。此博文一共有两个配套的麻雀虽小但五脏俱全的示例程序,其经过浅墨详细注释过的...
  • 程序员到底要不要读研,过来人给你几建议!

    万次阅读 多人点赞 2019-03-13 17:28:56
    一直想写一篇关于读研方面的文章(之前写过一篇考研回忆,主要在讲复习方法),奈何最近脑袋太灵光给耽搁了,恰逢今日艳阳高照,刚好离今年的考研也就一个月左右的时间了,那么今天就来聊聊读研这件事吧。...
  • 2)一个活动的最晚开始几天影响,或者一个活动可以耽搁的时间,是有公式计算的 3)关键路径为起点到终点权值加起来最大的路径 直接例题 首先,关键路径为最大(大)的总值,计算可以得到ABCEFJ=18,所以关键路径的...
  • UI设计理念——一切从用户出发

    千次阅读 热门讨论 2014-09-30 21:22:14
    再比如说,每个用户的使用习惯是不一样的,关注角度也是不同的,为了人性化,我们就要区别对待,这上呢,我们可以向微软学习:在Office2003系统中,菜单下拉框的内容总是有一些隐藏的功能,如果我们需要使用那些...
  • 向梦想出发 - 全向轮移动底盘搭建

    千次阅读 2017-09-19 16:37:30
    更大的问题是,给编码器不同的电压值时,测出的电机的每圈脉冲数是不一样的,正常情况下应该一样才对,又是各种百度各种谷歌,还捐助了30块加入corvin建的微信群里。最后他提醒我,可能是由于中断数太多,mega2560的...
  • 你不得读的书籍清单

    万次阅读 多人点赞 2015-12-16 17:15:13
    你不得读的书籍清单,岁月如梭,转眼间2015年将要过去,本篇博文也就将告一段落!毕竟年复一年的累加下去,本篇文章可能会导致加载失败(笑,自嘲),约吗?让我们来年再战!
  • 虽然说SEO更多的是运营的工作,布关键词发外链是一项繁重而长期的工程,但是作为网站建设人员,我们也有一些可以注意,一样可以对SEO有所帮助,下面就是从前端的角度对网站进行的一些优化。 第三, 从前端...
  • Android 规则封闭区域填充 手指秒变油漆桶

    万次阅读 多人点赞 2015-05-25 08:59:28
    在上一篇的叙述中,我们通过图层的方式完成了图片颜色的填充(详情请戳:Android 规则图像填充 小玩着色游戏),不过在着色游戏中更多的还是基于边界的图像的填充。本篇博客将详细描述。 图像的填充有2种经
  • 指纹识别源代码(3)-特征匹配

    万次阅读 多人点赞 2018-02-10 12:02:02
    根据距离判断找到某一个特征,从该特征沿着纹线走num个距离,并计算出每走一步距离该特征的距离,最后会得到num个装有长度信息的数组,如果两幅指纹相同则他们含有相同的特征而且得到的数组对应的位置的数据...
  • 三维计算机视觉(四)--关键

    万次阅读 2017-09-30 15:55:28
    关键又称为感兴趣的,是低层次视觉通往高层次视觉的捷径,抑或是高层次感知对低层次处理手段的妥协。 1.关键,线,面  关键=特征;  关键线=边缘;  关键面=foreground;  上述三个概念在信息学中...
  • 1911年12月14日,挪成探险家罗尔德-阿蒙森和其他4名队员战胜罗伯特-F-斯科特领导的英国探险队到达... 编者按:1911-1912年,斯科特带领的英国探险队伍和挪威阿蒙森带领的探险队进行一场人类到达南极的竞赛。最后...
  • 运筹优化(五)--线性规划之内

    万次阅读 2019-01-12 14:34:51
    近年来的内算法主要有三大类: (1)投影尺度法,它是Karmarkar算法的原型。这个方法要求问题具有特殊的单纯形结构和最优目标值为零,在实际计算过程中, 需要用复杂的变换将实际问题转换为这种标准形式。因此, ...
  • 感觉自己不会的东西太多了,知道如何下手?

    万次阅读 多人点赞 2019-10-14 09:59:36
    GitHub 8.8k Star 的Java工程师成神之路 ,来了解一下吗? GitHub 8.8k Star 的Java工程师成神之路 ,真的来了解一下吗? GitHub 8.8k Star 的Java工程师成神之路 ,真的确定来了解一下吗? 如果让我统计下,粉丝...
  • 【转载】Java final 修饰符知识总结

    千次阅读 2017-01-05 11:01:48
    【转载】Java final 修饰符知识总结 final从字面上理解含义为“最后的,最终的”。在Java中也同样表示出此种含义。 final可以用来修饰变量(包括类属性、对象属性、局部变量和形参)、方法(包括类...
  • Note: lz发现好多地方凸函数定义可能是相反的,国内外定义好像也不一样。这里只要记得,正常的碗就是凸函数! 零点 1 如果 x * 使 f( x * )=0,则称 x * 为方 程的根,或称为 函数f( x )的零点; 当 f( x )为多项式时,...
  • 若0D,则所有稀疏值都一样。若是1D,则len(sparse_values)应该等于len(sparse_indices) default_values: 缺省的默认值 """ """ tf.random_shuffle tf.random_shuffle(value,seed=None,name=None) 沿着value的...
  • 《REWORK》启示录 发出你的心声——程序员与身体

    万次阅读 多人点赞 2013-11-14 17:14:30
    所谓的标题在这里并不是为了吸引眼球,不过也是为了吸引眼球,只是出发点已经不一样了。也许你认识李开复也可以给他看看,上过养生过,觉得他可以试试,而不是癌症的什么治疗方法。 突然,觉得这一篇文章不是写给...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 155,814
精华内容 62,325
关键字:

出发点不一样