11 2013 档案

摘要:这两个函数在画图时很常用,所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显示的方式。尽管许多属性所有的对象都有,但与每一种对象类型(比如坐标轴,线,曲面)相关的属性列表都是独一无二的。对象属性可包括诸如对象的位置、颜色、类型、父对象、子对象及其它内容。每一个不同对象都有和它相关的属性,可以改变这些属性而不影响同类型的其他对象。和每一种对象类型(图形,坐标轴,线,文本,曲面,补片和图象)相关的完整的属性列表在本章的后面给出。 对象属性包括属性名和与它们相联关的值。属性名是字符串,它们通常按混合格式显示,每个词的开头字母大写,比如:’ LineStyle ‘ 。但是,MAT... 阅读全文
posted @ 2013-11-30 22:59 技术让梦想更伟大 阅读(728) 评论(0) 推荐(0) 编辑
摘要:Linux系统中包含了GNU 调试程序gdb,它是一个用来调试C和 C++ 程序的调试器。可以使程序开发者在程序运行时观察程序的内部结构和内存的使用情况。 GDB提供了一下一些功能:(1)监视程序中变量的值;(2)设置断点以使程序在制定的代码上上运行;(3)一行一行的执行代码。 gdb程序调试的对象是可执行文件,,需在执行gcc指令编译程序时,加上-g参数,指定程序在编译时包含调试信息。调试信息包含程序里的每个变量的类型和在可执行文件里的地址映射以及源代码的行号。gdb 利用这些信息使源代码和机器码相关联。 启动gdb后,可以在命令行制定很多选项,也可以用下面的方式在命令行中指定想要... 阅读全文
posted @ 2013-11-30 16:28 技术让梦想更伟大 阅读(583) 评论(0) 推荐(0) 编辑
摘要:makefile里的变量就像一个变量,变量的作用主要如下:(1)保存文件名列表。(2)保存编译器的参数。 makefile中的变量是用一个字符串在makefile中定义的,这个文本串就是变量的值。只要在一行的开始写下这个变量的名字,后面跟一个‘=’,然后跟要设定的这个变量的 值即可定义变量,下面是定义变量的语法: 变量名=字符串使用时 ,把变量把括号括起来。并在前面加上“$”符号,就可以引用变量的值: $(变量名)make解释规则时“变量名”在等式右端展开为定义它的字符串,变量一般在makefile的头部定义。先让我们看看edit的规则:e... 阅读全文
posted @ 2013-11-30 10:20 技术让梦想更伟大 阅读(1745) 评论(0) 推荐(0) 编辑
摘要:在讲述这个Makefile之前,还是让我们先来粗略地看一看Makefile的规则:最基本的编写规则的方法是从最终的源程序文件一个一个的查看源码文件。把它们要生成的目标文件作为目标,而C语言源码文件和源码文件包含的头文件作为依赖文件生成规则。但是必须去分析源码文件的嵌套关系,如需要把某些头文件包含的头文件也作为依赖文件,当头文件很多时,这样很繁琐,正确性也不高。 gcc编译器可以自动的从源码文件中产生文件的相互依赖关系,当编译器编译每一个源码文件时,它知道包含怎么样的头文件。 当使用gcc时,用-M开关可以为每一个输入的C语言源文件输出一个依赖规则,把gcc将要生成的目标文件作为Make... 阅读全文
posted @ 2013-11-29 22:11 技术让梦想更伟大 阅读(371) 评论(0) 推荐(0) 编辑
摘要:Linux编程可以分为Shell(如BASH、TCSH、GAWK、Perl、Tcl和Tk等)编程和高级语言(C语言,C++语言,java语言等)编程,Linux程序需要首先转化为低级机器语言即所谓的二进制代码以后,才能被操作系统执行。 例如编程时,先用普通的编程语言生成一系列指令,这些指令可被翻译为适当的可执行应用程序的二进制代码。这个翻译过程可由解释器一步步来完成,或者也可以立即由编译器明确地完成。Shell编程语言都利用自己的解释器,用这些语言编制的程序尽管是应用程序文件,但可以直接运行。编译器则不同,它将生成一个独立的二进制代码文件然后才可以运行。 许多流行的Linux实用程序如... 阅读全文
posted @ 2013-11-29 20:07 技术让梦想更伟大 阅读(619) 评论(0) 推荐(0) 编辑
摘要:开始...首先,我们应该知道如何调用编译器。实际上,这很简单。我们将从那个著名的第一个C程序开始。#include int main(){ printf("Hello World!\n");}View Code把这个文件保存为lxy.c,保存到当前目录下,在命令行下编译它:gcc game.c在默认情况下,C编译器将生成一个名为a.out的可执行文件。 你可以键入如下命令运行它:a.outHello World每一次编译程序时,新的a.out将覆盖原来的程序。你无法知道是哪个 程序创建了a.out。我们可以通过使用-o编译选项:gcc –o lxy lxy.c //对文件进 阅读全文
posted @ 2013-11-29 18:04 技术让梦想更伟大 阅读(783) 评论(0) 推荐(0) 编辑
摘要:ADS是一款强大的软件,应用程序不能直接操作硬件,而ADS程序是无操作系统支持的,可以直接操作硬件,下面来介绍一下ADS的基本使用方法。编辑本段基本简介: ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具。ADS 是全套的实时开发软件工具,包编译器生成的代码密度和执行速度优异。可快速低价地创建ARM 结构应用。 编辑本段包括种类 ADS包括三种调试器: 1.AXD(ARM eXtended Debugger):ARM扩展调试器 2.armsd(ARM Symbolic Debugger):ARM ... 阅读全文
posted @ 2013-11-28 13:35 技术让梦想更伟大 阅读(1428) 评论(0) 推荐(0) 编辑
摘要:高质量学习资源免费获取,专注但不限于【Linux】【C/C++/Qt】【FPGA】【数据结构与算法】, 根据多年技术经验纯【原创】,纯【干货】,分享【技术心得】,力求【授人以鱼,更授人以渔】。 bvp4c--语法 1. bvp4c: sol = bvp4c(odefun,bcfun,solinit) 阅读全文
posted @ 2013-11-27 10:06 技术让梦想更伟大 阅读(2120) 评论(0) 推荐(0) 编辑
摘要:如果在北京拥有爱情半夜在簋街喝啤酒 吃小龙虾在后海的苦情歌声里搂着你数那四合院的瓦片如果在上海拥有爱情去外滩手挽手 吹吹风 坐一下午去城隍庙尝试各种小吃嘲笑你嘴角残余的糯米糕如果在杭州遇见爱情去断桥载着你骑单车让你骑在脖子上站在人群里也能看到西湖里的音乐喷泉 听你咯咯的笑如果在成都拥有爱情我们戴情侣的熊猫帽 吃井里的老字号看一串串的红灯笼像文艺片一样美好如果在哈尔滨遇见爱情我想手牵手在冰雪大世界里看大冰雕去中央大街看小玩意儿亲亲你冻得红扑扑的脸颊如果在台北拥有爱情在101大厦俯瞰台湾的夜景在小巨蛋和你看最爱的演唱会和几万人一起喊出我们最爱的歌如果在南京 在重庆 在昆明 在厦门拥有爱情我想好可在 阅读全文
posted @ 2013-11-26 20:14 技术让梦想更伟大 阅读(314) 评论(0) 推荐(0) 编辑
摘要:MATLAB函数,用来绘制双纵坐标图。 调用格式: 1.plotyy(X1,Y1,X2,Y2):以左、右不同纵轴绘制X1-Y1、X2-Y2两条曲线。 2.plotyy(X1,Y1,X2,Y2,FUN1):以左、右不同纵轴把X1-Y1、X2-Y2两条曲线绘制成FUN1指定形式的两条曲线。 3.plot 阅读全文
posted @ 2013-11-26 17:16 技术让梦想更伟大 阅读(11267) 评论(0) 推荐(0) 编辑
摘要:一、pie pie用于描绘平面饼图。 (1)pie(X) 利用向量X中的数据描绘饼图。 例如: X = [1, 1, 2, 2, 3, 4, 5]; pie(X) 得到 注意,X中的数据被看做频数,饼图中比率的获得:X中的元素x[i]/sum(X). 当X中所有元素的和sum(X)< 1.0时,图形 阅读全文
posted @ 2013-11-26 17:00 技术让梦想更伟大 阅读(8622) 评论(0) 推荐(0) 编辑
摘要:描述: patch是个底层的图形函数,用来创建补片图形对象。一个补片对象是由其顶点坐标确定的一个或多个多边形。用户可以指定补片对象的颜色和灯光。 patch(X,Y,C) 添加已填充的二维补片到当前坐标轴。X和Y中的元素指定了多边形的定点。如果X和Y是矩阵,MATLAB将每一列生成一个多边形。C决定 阅读全文
posted @ 2013-11-26 16:40 技术让梦想更伟大 阅读(51414) 评论(0) 推荐(0) 编辑
摘要:用Matlab画图时,有时候需要对各种图标进行标注,例如,用“+”代表A的运动情况,“*”代表B的运动情况。 legend函数的基本用法是: LEGEND(string1,string2,string3, ...) 分别将字符串1、字符串2、字符串3……标注到图中,每个字符串对应的图标为画图时的图标 阅读全文
posted @ 2013-11-26 16:12 技术让梦想更伟大 阅读(182185) 评论(0) 推荐(5) 编辑
摘要:2013-11-2615:59:56 一些事,只配当回忆 一些人,只能做过客既不回头,何必不忘 既然无缘,何需誓言 你如剪纸般烙印 放下尊严,放下个性,放下固执 只因为放不下那个人 淡去的琴声 一如夕晖里的孤烟 时间 太 瘦 指缝 太 宽 阅读全文
posted @ 2013-11-26 16:00 技术让梦想更伟大 阅读(311) 评论(0) 推荐(0) 编辑
摘要:functions:Graphical input from mouse or cursor ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。函数调用形式为: [x,y] = ginput(n) [x,y] = ginput [x,y,button] = ginpu 阅读全文
posted @ 2013-11-26 15:36 技术让梦想更伟大 阅读(3337) 评论(0) 推荐(0) 编辑
摘要:高质量学习资源免费获取,专注但不限于【Linux】【C/C++/Qt】【FPGA】【数据结构与算法】, 根据多年技术经验纯【原创】,纯【干货】,分享【技术心得】,力求【授人以鱼,更授人以渔】。 函数plot 是绘制二维图形的最基本函数,它是针对向量或矩阵的列来绘制曲线的。也就是说,使用plot 函数 阅读全文
posted @ 2013-11-26 14:55 技术让梦想更伟大 阅读(22696) 评论(0) 推荐(1) 编辑
摘要:格式:n=norm(A,p)功能:norm函数可计算几种不同类型的矩阵范数,根据p的不同可得到不同的范数p返回值1返回A中最大一列和,即max(sum(abs(A)))2返回A的最大奇异值,和n=norm(A)用法一样inf返回A中最大一行和,即max(sum(abs(A’)))‘fro’A和A‘的积的对角线和的平方根,即sqrt(sum(diag(A'*A)))2、如果A为向量norm(A,p)返回向量A的p范数。即返回sum(abs(A).^p)^(1/p),对任意1>a=magic(3)a = 8 1 6 3 5 7 4 9 2>> sum(sum(abs(a) 阅读全文
posted @ 2013-11-26 14:40 技术让梦想更伟大 阅读(1382) 评论(0) 推荐(0) 编辑
摘要:A题:风电功率波动特性的分析 ——从一个风电场入手 东北电力大学微通电力系统研究室 随着资源环境约束的日趋严苛,以化石能源为主的能源发展模式必须根本转变。近年来,可再生能源开发的热潮遍及全球。我国已经规划了8个千万kW级的大型风电基地。截至2012年底,我国风电装机容量已超过7000万kW,居世界第 阅读全文
posted @ 2013-11-25 23:41 技术让梦想更伟大 阅读(1225) 评论(0) 推荐(0) 编辑
摘要:pinv指令 在多数解的例子中,有时并不是仅要将其中一变数设定为零之解。为使整个系统得到最佳化,亦可利用pinv指令求得最小模组之合理解。pinv(A)又称为虚反矩阵(pseudoinverse),其功能与反矩阵之计算相同,但它会基于svd(A)函数(或称奇异值分解函数)之计算方式,求得一个不是属于全阶之矩阵A之反矩阵。这是长方形矩阵求解时,在多重解中求其反矩阵之折衷方式。故若矩阵A为方矩阵或非零矩阵,则其结果应与inv(A)相同。只是在这样的状况,宁可使用inv(A)较为省事。处理这些长方矩阵或特异矩阵时,使用pinv(A)会有意想不到的效果。其解法是根据反矩阵法:A=[3 2 1; 10 阅读全文
posted @ 2013-11-21 21:19 技术让梦想更伟大 阅读(1737) 评论(0) 推荐(0) 编辑
摘要:误差函数: 1.误差函数定义为: 它的性质如下: 2 互补误差函数定义为: 它具有如下性质: 下表给出了误差函数的部分数值: 0.00 0.00000 0.05 0.05637 0.10 0.11246 0.15 0.16800 0.20 0.22270 0.25 0.27633 0.30 0.32 阅读全文
posted @ 2013-11-21 18:47 技术让梦想更伟大 阅读(14292) 评论(0) 推荐(0) 编辑
摘要:函数功能:生成稀疏矩阵 使用方法 :S = sparse(A) 将矩阵A转化为稀疏矩阵形式,即矩阵A中任何0元素被去除,非零元素及其下标组成矩阵S。如果A本身是稀疏的,sparse(S)返回S。 S = sparse(i,j,s,m,n,nzmax) 由向量i,j,s生成一个m*n的含有nzmax个 阅读全文
posted @ 2013-11-21 16:51 技术让梦想更伟大 阅读(14435) 评论(0) 推荐(0) 编辑
摘要:高斯消元法求解线性方程,包括把增广矩阵转换为三角矩阵形式的过程,消去阶段工作 步骤是把矩阵A分解成为下三角L和上三角U的乘积。这种计算L,U的过程称为LU分解法。 lu实现对矩阵的分解。 [L,U] = lu(A) %%将矩阵A分解的上三角矩阵保存在U当中,将一个“心理学上的”下三角矩阵(例如一个下 阅读全文
posted @ 2013-11-20 20:18 技术让梦想更伟大 阅读(5301) 评论(0) 推荐(1) 编辑
摘要:在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有5种: (1) E=eig(A):求矩阵A的全部特征值,构成向量E。 (2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。 (3) [V,D]=eig(A,'noba 阅读全文
posted @ 2013-11-20 17:33 技术让梦想更伟大 阅读(2764) 评论(0) 推荐(0) 编辑
摘要:matlab有遗传算法工具箱。 核心函数: (1)function [pop]=initializega(num,bounds,eevalFN,eevalOps,options)--初始种群的生成函数 【输出参数】 pop--生成的初始种群 【输入参数】 num--种群中的个体数目 bounds-- 阅读全文
posted @ 2013-11-20 10:42 技术让梦想更伟大 阅读(4929) 评论(0) 推荐(0) 编辑
摘要:im2bw是基于转换为二值图像的算法,用的是otsu's method. matlab中DIP工具箱函数im2bw使用阈值(threshold)变换法把灰度图像(grayscale image)转换成二值图像。所谓二值图像, 一般意义上是指只有纯黑(0)、纯白(255)两种颜色的图像。 当然, 也可 阅读全文
posted @ 2013-11-20 00:22 技术让梦想更伟大 阅读(15113) 评论(0) 推荐(0) 编辑
摘要:拂弹每一个音符与心相印行走每一段风景和路缠绵花开的声音只能用心倾听无论曾经如何艰难我依然在最初的起点默念歌唱等你携手 阅读全文
posted @ 2013-11-20 00:00 技术让梦想更伟大 阅读(177) 评论(0) 推荐(0) 编辑
摘要:nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值,如下面的函数。 函数文件examp.m:function fout=charray(a,b,c)if nargin==1fout=a;else if nargin==2fout=a+b;e 阅读全文
posted @ 2013-11-19 19:47 技术让梦想更伟大 阅读(2914) 评论(0) 推荐(0) 编辑
摘要:disp函数直接将内容输出在Matlab命令窗口中, 关键是看disp函数怎么把字符和数字在一起进行显示。 matlab中disp()就是屏幕输出函数,类似于c语言中的printf()函数 %%以下是一个通过给定两点显示直线方程的程序, %%该程序需要给出两个点的坐标,结果返回为y=kx+b的格式, 阅读全文
posted @ 2013-11-19 16:53 技术让梦想更伟大 阅读(86978) 评论(0) 推荐(0) 编辑
摘要:函数textread可以按列读取ascii 文件中的元素,每一列中可能含有不同的数据类型。这函数读取其他程序生成的数据表时非常地有用。 实际应用中也要经常要读取txt文件,这个时候就需要用到强大的textread函数。 这个命令的形式如下: [A,B,C,…] = textread(filename 阅读全文
posted @ 2013-11-19 14:53 技术让梦想更伟大 阅读(1549) 评论(0) 推荐(0) 编辑
摘要:一种特别的输入参数varargin 可以在自定义函数中得到,这种函数支持输入参数的变量的个数。这个参数显在输入参数列表的最后一项,它返回一个单元阵列,所以一个输入实参可以包括任意数目的实参。每一个实参都变成了由varagin 返回的单元阵列元素。如果它被应用,varagin 必须是函数中的最后一个输入参数。 varargin 【功能描述】返回函数输入参数列表长度 【函数描述】function y=bar(varargin):得到函数输入参数列表长度,varargin函数仅用于函数m文件内。varargin参数位于函数输入参数列表的末尾,varargin必须小写。 【函数实例】新建一个名为... 阅读全文
posted @ 2013-11-19 13:21 技术让梦想更伟大 阅读(825) 评论(0) 推荐(0) 编辑
摘要:元胞数组:元胞数组是MATLAB的一种特殊数据类型,可以将元胞数组看做一种无所不包的通用矩阵,或者叫做广义矩阵。组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,所以元胞数组的元素叫做元胞(cell)。和一般的数值矩阵一样,元胞数组的内存空间也是动态分配的。关于cell的创建:1.跟一般创建举证一样,直接使用C = {A B D E}这种形式,不过这里把"[]"改成了}"{}"2.使用cell创建cell,C= {C1 C2},这里C1和C2都是cell类型,直接把C1 阅读全文
posted @ 2013-11-19 11:22 技术让梦想更伟大 阅读(2234) 评论(0) 推荐(0) 编辑
摘要:在求导数,积分,方程的过程中,难免会遇到一些参数要随着情况有点变化,这时,你就需要能够动态的表示出你的表达式,Num2str函数是一个相当有用的函数,一般配合[]连接符使用,下面将我接触到的一些用法写出来。1 用于求导数的表达式,函数X^2 – y^p + y^t,pt为数值,可以跟随程序的不同被赋 阅读全文
posted @ 2013-11-18 21:29 技术让梦想更伟大 阅读(6282) 评论(0) 推荐(1) 编辑
摘要:基本形式>> y=[1 2 34 5 6]; >> plot(y)生成的图形是以序号为横坐标、数组y的数值为纵坐标画出的折线。>> x=linspace(0,2*pi,30); % 生成一组线性等距的数值 >> y=sin(x); >> plot(x,y)生成的图形是上30个点连成的光滑的正弦曲线。多重线在同一个画面上可以画许多条曲线,只需多给出几个数组,例如:>> x=0:pi/15:2*pi; >> y1=sin(x); >> y2=cos(x); >> plot(x,y1,x,y2 阅读全文
posted @ 2013-11-18 18:26 技术让梦想更伟大 阅读(1443) 评论(0) 推荐(0) 编辑
摘要:季节背后,是时间编排的文字用心,用情,相逢,总有太多的意外,不期然,不尽然回望,那过去已经掩于无尽的虚空,似乎是割舍,似乎是收藏断了的线,是过去的冷寂,也是现在的温暖,难以追溯掩藏于心的,那份即使久远而依旧坚持的悸动在成长的期望中,或已悄然死去,我终是不忍剖开,求一个答案等待,最需要的是一个结局,伤感,或者美丽而我的等待,成了一种坚持,由春季到春季,时间相似,不是静止,而是催促我,选择忘记时间定下的距离远,近,风景,是必须的经历,只是,有心灵的,在意,或不在意,蔓延出来的气息活泼灵动,那些鲜艳,预示着繁荣清香阵阵,芳草萋萋埋于繁华之下的,是往昔的繁华与美丽若繁华,需以繁华作为养分,我期望恪守最 阅读全文
posted @ 2013-11-18 14:31 技术让梦想更伟大 阅读(275) 评论(0) 推荐(0) 编辑
摘要:有两个附加语句可以控制while 和for 循环:break 和continue 语句。 break 语句可以中止循环的执行和跳到end 后面的第一句执行,而continue 只中止本次循环,然后返回循环的顶部。如果break 语句在循环体中执行,那么体的执行中止,然后执行循环后的第一个可执行性语句。 用在for 循环中的break 语句的例子如下:%test_break.mfor ii = 1:5;if ii == 3;break;endfprintf('ii = %d \n', ii);enddisp('End of loop!');执行的结果为:>& 阅读全文
posted @ 2013-11-18 10:07 技术让梦想更伟大 阅读(752) 评论(0) 推荐(0) 编辑
摘要:简单地说,tic和toc是用来记录matlab命令执行的时间 tic用来保存当前时间,而后使用toc来记录程序完成时间。 两者往往结合使用,用法如下: tic operations toc 显示时间单位: 秒 Tic和toc函数可以计算运行一段时间的代码 例如: clc tic d=zeros(1, 阅读全文
posted @ 2013-11-18 08:53 技术让梦想更伟大 阅读(137016) 评论(0) 推荐(1) 编辑
摘要:MATLAB的数据显示格式虽然在MATLAB系统中数据的存储和计算都是双精度进行的,但MATLAB可以利用菜单或format命令来调整数据的显示格式。Format命令的格式和作用如下:l format|format short 5位定点表示l format long 15位定点表示l format short e 5位浮点表示l format long e 15位浮点表示l format short g 系统选择5位定点和5位浮点中更好的表示l format long g 系统选择15位定点和15位浮点中更好的表示l format rat 近似的有理数的表示l format hex 十六进制的 阅读全文
posted @ 2013-11-17 19:23 技术让梦想更伟大 阅读(1438) 评论(0) 推荐(0) 编辑
摘要:首先得吐槽一下湘大了,没电,我去,电脑几个小时就没电了,怎么做题,然后它还没网,到现在才来,感觉没网就很麻烦了,今天白天和几个队友一起做了这个题,毕竟是第一次,在琴湖食府,感觉还很不错的。述说这个题目吧。。 开始做这个题目,我们想的很简单。当然哈市做出啦,两张相邻图片的重叠部分的中心点,其实就是这条曲线的轨迹,这样一下一下的取,就会有一条轨迹,用matlab画出来: 针对这一问题,本文由血管的100张连续的平行切片图象计算血管的中轴线与半径,并绘制血管在三个坐标平面上的投影来探讨血管的三维重建.由于血管的表面是由球心沿着某一曲线(即中轴线)的球滚动而成,由此我们得出结论:每个切片一定包... 阅读全文
posted @ 2013-11-16 23:20 技术让梦想更伟大 阅读(948) 评论(0) 推荐(0) 编辑
摘要:line void LC(tree T,float cost) {//为找一个答案结点检索T0 if(T是答案结点) {输出T;return;}1 E=T; //E-结点2 将活结点表初始化为空;3 while(1) {4 for(E的每个子结点X) {5 if(X是答案结点) {输出从X到T的路径;6 return;7 };//endif8 Add(X); //X是新的活结点9 Parent(X)=E; //指示到根的路径10 };//for11 if(不再有活结点) { print(‘no answer node’);12 stop;13 };//if14 Least(E) ;15 } / 阅读全文
posted @ 2013-11-15 12:35 技术让梦想更伟大 阅读(2603) 评论(0) 推荐(0) 编辑
摘要:问题:检索4-皇后问题的状态空间树如下图的基本过程。(4-皇后问题解空间的树结构,结点按深度优先检索编号) 如果按序扩展这些结点,则下一个E-结点就是结点2。扩展结点2后生成结点3,8和13。利用限界函数(同行、列、对角线上只能放置1个皇后),结点3(放在第二列)立即被杀死。于是,仅将结点8和13加到活结点队列。结点18变成下一个E-结点,生成结点19(放在第一列),24(放在第三列)和29(放在第四列),限界函数杀死结点19和24,结点29被加到活结点队列。下一个E-结点是34,…。 下图显示了由FIFO分枝_限界检索生成图7.1所示的树的一部分(由FIFO分枝-限界法生成的4-皇后问题.. 阅读全文
posted @ 2013-11-15 09:45 技术让梦想更伟大 阅读(700) 评论(0) 推荐(0) 编辑
摘要:定义:分支定界 (branch and bound) 算法是一种在问题的解空间树上搜索问题的解的方法。但与回溯算法不同,分支定界算法采用广度优先或最小耗费优先的方法搜索解空间树,并且,在分支定界算法中,每一个活结点只有一次机会成为扩展结点。利用分支定界算法对问题的解空间树进行搜索,它的搜索策略是: 1 .产生当前扩展结点的所有孩子结点; 2 .在产生的孩子结点中,抛弃那些不可能产生可行解(或最优解)的结点; 3 .将其余的孩子结点加入活结点表; 4 .从活结点表中选择下一个活结点作为新的扩展结点。如此循环,直到找到问题的可行解(最优解)或活结点表为空。分支限界法的思想是:首先确定目标值... 阅读全文
posted @ 2013-11-15 09:24 技术让梦想更伟大 阅读(737) 评论(0) 推荐(0) 编辑
摘要:设G=(V,E)是一个n结点的连通图。一个哈密顿环是一条沿着图G的n条边环行的路径,它访问每个结点一次并且返回到它的开始位置。换言之,如果一个哈密顿环在某个结点v1∈V处开始,且G中结点按照v1,v2,…,Vn+l的次序被访问,则边(Vi,Vi+1),1≤i≤n,均在图G中,且除了v1和vn+l是同 阅读全文
posted @ 2013-11-14 22:21 技术让梦想更伟大 阅读(3057) 评论(0) 推荐(0) 编辑
摘要:已知一个图G和m>0种颜色,在只准使用这m种颜色对G的结点着色的情况下,是否能使图中任何相邻的两个结点都具有不同的颜色呢?这个问题称为m-着色判定问题。在m-着色最优化问题中,则是求可对图G着色的最小整数m。称m为图G的色数。 4种颜色足以对任何地图着色,如图,对一平面图的4-着色判定问题(平面图是一个能画于平面上而边无任何交叉的图)。将地图的每个区域变成一个结点,若两个区域相邻,则相应的结点用一条边连接起来。 假定用图的邻接矩阵Graph(1:n,1:n)来表示一个图G,其中若(i,j)是G的一条边,则Graph(i,j)=true,否则Graph(i,j)=false。。颜色用整... 阅读全文
posted @ 2013-11-14 18:43 技术让梦想更伟大 阅读(741) 评论(0) 推荐(0) 编辑
摘要:子集和数问题是假定有n个不同的正数(通常称为权),要求找出这些数中所有使得某和数为M的组合。子集和数问题的递归回溯算法,代码如下:void SumOfSub(s,k,r) {//找w(1:n)中和数为M的所有子集。进入此过程时x(1),…,X(k-1)的值已确定。k-1 n//s=ΣW(i)X(i)且r=ΣW(j)。W(j)按非递减排列。假定w(1)≤M,ΣW(i)≥Mj=1 j=kl int M,n;float W[n];bool X[n]; //M、W[n]、X[n]定义成全局变量2 float r,s;int k,j;//生成左子结点。注意,由于Bk-1=true,因此s + w[k.. 阅读全文
posted @ 2013-11-14 05:48 技术让梦想更伟大 阅读(1134) 评论(0) 推荐(1) 编辑
摘要:回溯法是一个既带有系统性又带有跳跃性的的搜索算法。它在包含问题的所有解的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。算法搜索至解空间树的任一结点时,总是先判断该结点是否肯定不包含问题的解。如果肯定不包含,则跳过对以该结点为根的子树的系统搜索,逐层向其祖先结点回溯。否则,进入该子树,继续按深度优先的策略进行搜索。回溯法在用来求问题的所有解时,要回溯到根,且根结点的所有子树都已被搜索遍才结束。而回溯法在用来求问题的任一解时,只要搜索到问题的一个解就可以结束。这种以深度优先的方式系统地搜索问题的解的算法称为回溯法,它适用于解一些组合数较大的问题。 回溯法的一般流程和技术在用回溯法... 阅读全文
posted @ 2013-11-13 20:02 技术让梦想更伟大 阅读(1695) 评论(0) 推荐(0) 编辑
摘要:假定要设计一个系统,这个系统由若干个以串联方式连接在一起的不同设备所组成(图6.1所示)。设ri是设备Di的可靠性(即ri是Di正常运转的概率),则整个系统的可靠性就是Πri。即便这些单个设备是非常可靠的(每个ri都非常接近于1),该系统的可靠性也不一定很高。 为了提高系统可靠性,最好是增加一些重复设备,并通过开关线路把数个同类设备并联在一起(见图6.2)。由开关线路来判明其中的设备的运行情况,并将能正常运行的某台投入使用. 若第i级的设备Di的台数为mi,那么这mi台设备同时出现故障的概率为(1-ri)mi。从而第i级的可靠性就变成1-(1-ri)mi。在任何实际系统中,每一级的可靠... 阅读全文
posted @ 2013-11-13 17:26 技术让梦想更伟大 阅读(488) 评论(0) 推荐(0) 编辑
摘要:对于0/1背包问题,可以通过作出变量x1,x2,…,xi的一个决策序列来得到它的解。而对变量x的决策就是决定它是取0值还是取1值。假定决策这些x的次序为xn,xn-1,…,x1。在对xn作出决策之后,问题处于下列两种状态之一: 背包的剩余容量是M,则没有产生任何效益; 剩余容量是M-w,则效益值增长了P。显然,对xn-l,xn-2,…,x1的决策相对于决策x所产生的问题状态应该是最优的,否则xn,xn-1,…,x1就不可能是最优决策序列。如果设fj(x)是Knap(1,j,X)最优解的值,那么fn(M)就可表示为: fn(M) = max {fn-1(M), fn-1(M-wn)+p... 阅读全文
posted @ 2013-11-13 12:29 技术让梦想更伟大 阅读(1255) 评论(0) 推荐(0) 编辑
摘要:前面给出了二分检索树的定义,下图给出了关于保留字的一个子集的两棵二分检索树。 为了确定标识符x是否在一棵二分检索树中出现,将x先与根比较,如果X比根中标识符小,则检索在左子树中继续;如果x等于根中标识符,则检索成功地终止;否则检索在右子树中继续下去。上述步骤可以形式化为过程Search。Line void Search (BinaryTree T,elemType x,int i) {//在二分检索树T上查找x,树的每个结点有三个信息段:LChild,IDent//和RChild。如果x不在T中,则置i=0,否则将i置成使得IDent(i)=x1 i = T;2 while(i!=0) ... 阅读全文
posted @ 2013-11-12 22:11 技术让梦想更伟大 阅读(2567) 评论(0) 推荐(0) 编辑
摘要:COST(i,j)=min{c(j,v) + COST(i+1,v)} (v∈Vk+1,∈E)COST(3,6) = min{6+COST(4,9), 5+COST(4,10)} = 7 (已知COST(4,9)=4,COST(4,10)=2)COST(3,7) = min{4+COST(4,9), 3+COST(4,10)}= 5COST(3,8) = 7COST(2,2) = min{4+COST(3,6), 2+COST(3,7), 1+COST(3,8)}= 7COST(2,3) = 9COST(2,4) = 18COST(2,5) = 15COST(1,1) = min{9+CO.. 阅读全文
posted @ 2013-11-12 17:53 技术让梦想更伟大 阅读(2261) 评论(0) 推荐(0) 编辑
摘要:在学习动态规划法之前,我们先来了解动态规划的几个概念1、 阶段:把问题分成几个相互联系的有顺序的几个环节,这些环节即称为阶段。2、 状态:某一阶段的出发位置称为状态。3、 决策:从某阶段的一个状态演变到下一个阶段某状态的选择。4、 状态转移方程:前一阶段的终点就是后一阶段的起点,前一阶段的决策选择导出了后一阶段的状态,这种关系描述了由k阶段到k+1阶段状态的演变规律,称为状态转 移方程。动态规划法的定义:在求解问题中,对于每一步决策,列出各种可能的局部解,再依据某种判定条件,舍弃那些肯定不能得到最优解的局部解,在每一步都经过筛选,以每一步都是最优解来保证全局是最优解,这种求解方法... 阅读全文
posted @ 2013-11-12 16:55 技术让梦想更伟大 阅读(2447) 评论(0) 推荐(0) 编辑
摘要:Kruskal最小生成树算法的概略描述:1 T=Φ;2 while(T的边少于n-1条) {3 从E中选取一条最小成本的边(v,w);4 从E中删去(v,w);5 if((v,w)在T中不生成环) {6 将(v,w)加到T中;7 else{舍弃(v,w);}8 };//if9 }//for 为了有效地执行第5和第6步,G中的结点的组合方式应该是易于确定结点v和w是否已由早先选择的边所连通的那种。在已连通的情况下,则将边(v,w)舍弃;若不连通,则把(v,w) 加人到T。一种可能的组合方法是把T的同一连通分图中所有结点放到一个集合中(T的各个连通分图都是树)。那么,T中的两个结点是连通的,当且. 阅读全文
posted @ 2013-11-12 14:31 技术让梦想更伟大 阅读(411) 评论(0) 推荐(0) 编辑
摘要:定义:设G=(V,E)是一个无向连通图。如果G的生成子图T=(V,E’)是一棵树,则称T是G的一棵生成树(Spanning Tree)。 应用生成树可以得到关于一个电网的一组独立的回路方程。第一步是要得到这个电网的一棵生成树。设B是那些不在生成树中的电网的边的集合,从B中取出一条边添加到这生成树上就生成一个环。从B中取出不同的边就生成不同的环。把克希霍夫(Kirchoff)第二定律用到每一个环上,就得到一个回路方程。用这种方法所得到的环是独立的(即这些环中没有一个可以用那些剩下的环的线性组合来得到),这是因为每一个环包含一条从B中取来的边(生成树固定的情况下),而这条边不包含在任何其它的... 阅读全文
posted @ 2013-11-12 13:53 技术让梦想更伟大 阅读(714) 评论(0) 推荐(0) 编辑
摘要:背包问题的描述如下: 已知有n种物品和一个可容纳m重量的背包,每种物品i的重量为wi。假定将物品i的一部分xi放人背包就会得到pixi的效益,0≤xi≤1,pi>0。采用怎样的装包方法才会使装入背包物品的总效益最大呢?显然,由于背包容量是m,因此,要求所有选中要装入背包的物品总重量不超过m。如果这n件物品的总重量不超过m,则把所有物品装入背包自然获得最大效益。如果这些物品重量的和大于m,则在这种情况下该如何装包呢?这是本节所要解决的问题。根据以上讨论,可将问题形式描述如下:极 大 化: Σpixi (4.1)1≤i≤n约束条件:Σ wixi ≤m (4.2)1≤i≤n0≤xi≤1,pi>0,. 阅读全文
posted @ 2013-11-11 00:33 技术让梦想更伟大 阅读(654) 评论(0) 推荐(0) 编辑
摘要:在现实世界中,有这样一类问题:它有n个输入,而它的解就由这n个输入的某个子集组成,不过这个子集必须满足某些事先给定的条件。把那些必须满足的条件称为约束条件;而把满足约束条件的子集称为该问题的可行解。问题的简单描述:In={n个输入}; 显然,满足约束条件的子Ina是In的子集; 集可能不止一个,一般来说Ina满足约定的条件; 可行解不是唯一的。Ina构成问题的解。 贪心方法是一种改进了的分级处理方法,选择能产生问题最优解的最优量度标准是使用贪心法设计求解的核心问题。但是,要选出最优量度标准并不是一件容易的事,不过,一旦能... 阅读全文
posted @ 2013-11-10 19:26 技术让梦想更伟大 阅读(277) 评论(2) 推荐(0) 编辑
摘要:实现的基本思想如下: 选取A的某个元素t,然后将A的其它元素重新排列,使 得在t以前出现的所有元素都小于或等于t,而所有在t后面出现的所有元素都大于t。称这种重新整理为划分(Partitioning),元素t称为划分元素(Partition element)。快速分类就是通过不断地对产生的文件进行划分来实现元素的重新排列。例如: 用A(m)划分集合A(m:P-1)void Partition(m,p)//在集合A(m),A(m+1),…,A(p-1)中的元素按如下方式重新排列://若最初t=A(m),则在重排完成之后,对于m和p-l之间的某个q,有A(q)=t,//并使得对于m≤k<q,有.. 阅读全文
posted @ 2013-11-10 15:51 技术让梦想更伟大 阅读(557) 评论(0) 推荐(0) 编辑
摘要:http://wenku.baidu.com/view/2aa76cc6aa00b52acfc7ca6f.html很容易理解。 阅读全文
posted @ 2013-11-09 22:29 技术让梦想更伟大 阅读(177) 评论(0) 推荐(0) 编辑
摘要:基本方法: 给定一个含有n个元素(又叫关键字)的集合,如果要把它们按一定的次序分类(本节中自始至终假定按非递减分类),最直接的方法就是插入法。对A(1:n)中元素作插入分类的基本思想是:for(j=2;n;++j){将A[j]放到已分类集合A[1:j-1]的正确位置上};从中可以看出,为了插入A(j),有可能移动A(1:j-1)中的所有元素,因此可以预计该算法在时间特性上不会太好,算法具体描述如下:void InsertionSort(elemType a[],int n) {//将A(l:n)中的元素按非递减分类。n≥1int i;for(j=2;n;++j) { //A(l:j-l)已分. 阅读全文
posted @ 2013-11-09 22:17 技术让梦想更伟大 阅读(357) 评论(0) 推荐(0) 编辑
摘要:现在理论的还是少说些,例子更能理解吧,来个例子用二分检索算法设计与分析,下面算法函数过程bin_search有n+2个输入:a,n 和 x,一个输出j。只要待检索的元素存在,while循环就继续下去。case语句根据compare(x,a[mid])的结果的三种情况进行选择运行。函数过程结束时,如果x不在表a中,则j=0,否则 a(j)=x。void bin_search(elemType a[],int n,elemType x,int &j) {//给定一个按非递减排列的元素数组a(1:n),n>1,判断x是否出现。//若是,则置j,使得x=a(j),若非,则j=0。函数返回 阅读全文
posted @ 2013-11-08 21:19 技术让梦想更伟大 阅读(351) 评论(0) 推荐(0) 编辑
摘要:分治法是最广泛使用的算法设计方法之一,其基本思想:把大问题分解成一些较小的问题,然后由小问题的解方便地构造出大问题的解。 分治法说穿了就是把问题放小,如果被分的问题还是比较大,那么久继续分下去。为了能清晰地反映采用分治策略设计算法的基本步骤,下面用一个称之为抽象化控制的过程来非形式的描述算法的控制流向,下面笔者举例来说明这个问题。void div(p,q) {int n,A[n]; //定义成全程变量int m,p,q; //1≤p≤q≤nif(small(p,q)) return(answer(p,q));else{m = divide(p,q); //p≤m<qreturn (com... 阅读全文
posted @ 2013-11-08 19:18 技术让梦想更伟大 阅读(350) 评论(0) 推荐(0) 编辑
摘要:(这一篇觉得写得很棒,故拷过来以便慢慢看,细细体会,详情请访问http://blog.csdn.net/shenmen123456/article/details/6575647)第一阶段:练经典常用算法,下面的每个算法给我打上十到二十遍,同时自己精简代码,因为太常用,所以要练到写时不用想,10-15分钟内打完,甚至关掉显示器都可以把程序打出来.1.最短路(Floyd、Dijstra,BellmanFord)2.最小生成树(先写个prim,kruscal要用并查集,不好写)3.大数(高精度)加减乘除4.二分查找. (代码可在五行以内)5.叉乘、判线段相交、然后写个凸包.6.BFS、DFS,同时 阅读全文
posted @ 2013-11-08 01:32 技术让梦想更伟大 阅读(377) 评论(0) 推荐(0) 编辑
摘要:尽管递归程序在执行时间上往往比非递归程序要付出更多,但有很多问题的数学模型或算法设计方法本来就是递归的,用递归过程来描述它们不仅非常自然,而且证明该算法的正确性也比相应的非递归形式容易得多,因此递归不失为是一种强有力的程序设计方法。 下面来举个例子:已知元素x,判断x是否在a(1:n)中。算法思想:在a(1:n)中检索x,若存在,返回该元素在a[]中的下标,否则,返回0。解决这一问题的递归算法可描述如下:算法4.3 在数组a(1:n)中检索x是否存在int void Search(int a[],int i,int x) {//设a[1..n]和x是全局变量//在a[1..n]中若有元素... 阅读全文
posted @ 2013-11-07 22:20 技术让梦想更伟大 阅读(624) 评论(0) 推荐(0) 编辑
摘要:时间复杂性的计算一般而言,较小的问题所需要的运行时间通常要比较大的问题所需要的时间少。设一个程序P所占用的时间为T,则 T(P)=编译时间+运行时间。编译时间与实例特征是无关的,且可假设一个编译过的程序可以运行多次而无需再编译。因此分析程序的时间特性就只需考虑程序的运行时间。令程序P的运行时间为tp(n),其中n是所要求解问题的实例特征。由于编写程序时,影响tp的许多因素还是未知的,所以只能对tp进行估算。由于代码P的主要操作通常包括加、减、乘、除、比较、读、写等,而这些操作的执行时间是可预知的,从而可用下面的公式计算程序P的运行时间: tp(n)=ca*ADD(n... 阅读全文
posted @ 2013-11-07 13:16 技术让梦想更伟大 阅读(674) 评论(0) 推荐(0) 编辑
摘要:1.大写Ο符号大写Ο符号给出了函数f的一个上限。定义[大写Ο符号]:f(n)=Ο(g(n)),当且仅当存在正的常数c和n0,使得对于所有的n≥n0,有 f(n)≤c*g(n)上述定义表明,函数f至多是函数g的c倍,除非n小于n0。因此,对于足够大的n(如n≥n0),g 是 f 的一个上限(不考虑常数因子 c )。在为函数 f 提供一个上限函数 g 时,通常使用比较简单的函数形式。比较典型的形式是含有 n 的单个项(带一个常数系数)。对于对数函数logn,没有给出对数的基数,是因为对于任何大于1的常数 a 和 b ,都有:logan=logbn/logba所以logan和logbn都有一个相对的 阅读全文
posted @ 2013-11-07 10:57 技术让梦想更伟大 阅读(432) 评论(0) 推荐(0) 编辑
摘要:Niklaus Wirth:Algorithm + Data Structures = Programs 这句话呢,觉得很正确,算法和程序是不同的概念,算法的思想呢有递推,枚举,分治,贪婪,试探法,模拟,这些都是一些基础的算法思想,一个“好”的算法,通常要考虑如下几个目标:􀀹正确性:算法应满足求解具体问题的需求。 对正确性的理解有不同程度1.不含语法错误;2.对几组输入数据能够得到满足规格需求的解;3.对精心选择的典型数据能够得到满足规格需求的解;4.对一切合法的输入数据都能得到满足规格需求的解。􀀹可读性:算法要便于交流,要有助于别人对算法的理解。h 阅读全文
posted @ 2013-11-07 09:56 技术让梦想更伟大 阅读(431) 评论(0) 推荐(0) 编辑
摘要:RealView MDK可以对各种嵌入式处理器的软件开发工具。这么高端,着实很吸引我,ADS12还不知道怎么搞,居然还有这么高端的,但是还是得了解一下唉。洗这个自动配置启动代码,集成Flash烧写模块,强大的Simulation设备模拟,性能分析等功能,与ARM之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20% 。 代码密度:比ADS 1.2编译的代码尺寸小10%; 代码性能:比ADS 1.2编译的代码性能高20%。 这样说来的话,随着realview mdk中文版在中国的使用,那么realview mdk在不久的将来将会取代ADS等软件,值得期待... 阅读全文
posted @ 2013-11-06 02:50 技术让梦想更伟大 阅读(876) 评论(0) 推荐(0) 编辑
摘要:1.首先要准确的弄清楚指针的含义,指针就是地址。 这个比较容易,前面也有提到,就不多解释了。2.什么叫“指向”? 地址就意味着指向,因为通过地址能找到具体该地址的对象。但是应该注意,并不是任何类型数据的地址都可以存放在同一个指针变量中的,只有与指针变量的基类型相同的数据的地址才能存在相应的指针变量中。例如:int a,*p; //p是int*型的指针变量,基类型是int型float b;p=&a; //a是int型,合法p=&b; //b是float型,类型不匹配3.要深入掌握在对数组的操作中正确使用指针一位数组名代表数组首元素的地址,如:int *p... 阅读全文
posted @ 2013-11-02 10:15 技术让梦想更伟大 阅读(378) 评论(0) 推荐(0) 编辑
摘要:指针和函数的关系 可以把一个指针声明成为一个指向函数的指针。intfun1(char*,int);int(*pfun1)(char*,int);pfun1=fun1;........inta=(*pfun1)("abcdefg",7);//通过函数指针调用函数。可以把指针作为函数的形参。在函数调用语句中,可以用指针表达式来作为实参。 例十三:intfun(char*);inta;charstr[]="abcdefghijklmn";a=fun(str);......intfun(char*s){intnum=0;for(inti=0;i{num+=*s; 阅读全文
posted @ 2013-11-01 18:41 技术让梦想更伟大 阅读(333) 评论(0) 推荐(0) 编辑
摘要:C语言的数组表示一段连续的内存空间,用来存储多个特定类型的对象。与之相反,指针用来存储单个内存地址。数组和指针不是同一种结构因此不可以互相转换。而数组变量指向了数组的第一个元素的内存地址。一个数组变量是一个常量。即使指针变量指向同样的地址或者一个不同的数组,也不能把指针赋值给数组变量。也不可以将一个数组变量赋值给另一个数组。然而,可以把一个数组变量赋值给指针,这一点似乎让人感到费解。把数组变量赋值给指针时,实际上是把指向数组第一个元素的地址赋给指针。12345678int myarray[4] = {1,2,3,0};int *ptr = myarray;printf("*ptr=% 阅读全文
posted @ 2013-11-01 18:30 技术让梦想更伟大 阅读(363) 评论(0) 推荐(0) 编辑
摘要:就像数组一样,指向结构体的指针存储了结构体第一个元素的内存地址。与数组指针一样,结构体的指针必须声明和结构体类型保持一致,或者声明为void类型。 1 2 3 4 5 6 7 8 9 10 11 12 13 struct person { int age; char *name; }; struct 阅读全文
posted @ 2013-11-01 16:50 技术让梦想更伟大 阅读(3325) 评论(0) 推荐(0) 编辑
摘要:一个指针可以被声明为void类型,比如void *x。一个指针可以被赋值为NULL。一个指针变量声明之后但没有被赋值,叫做未初始化指针。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 int *uninit; // int指针 阅读全文
posted @ 2013-11-01 16:48 技术让梦想更伟大 阅读(3876) 评论(0) 推荐(1) 编辑
摘要:指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、long和double。指针也可以是void类型、NULL指针和未初始化指针。 根据出现的位置不同,操作符 * 既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个 阅读全文
posted @ 2013-11-01 16:45 技术让梦想更伟大 阅读(23059) 评论(2) 推荐(2) 编辑