说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

阿里巴巴技术专家杨晓明:基于Hadoop技术进行地理空间分析

HTML文档下载 WORD文档下载 PDF文档下载
将交通领域产生的海量车辆位置信息和道路进行关联的统计操作是颇为浩大的工作。本文将介绍一种通过使用地理网格进行数据关联,并利用Shuffle过程的二次排序实现高效的统计各条道路上位置点分布情况的方法。

【编者按】交通领域正产生着海量的车辆位置点数据。将这些车辆位置信息和道路进行关联的统计操作则是一项颇为浩大的工作,而随着Hadoop技术的成熟和普及,使得在海量数据中进行该统计运算的工作变得相对容易了很多。本文将介绍一种通过使用地理网格进行数据关联,并利用Shuffle过程的二次排序实现高效的统计各条道路上位置点分布情况的方法。


中华人民共和国交通运输部、中华人民共和国公安部、国家安全生产监督管理总局于2014年1月28日公布了《道路运输车辆动态监督管理办法》,在该文件中规定,自2014年7月1日起,国内道路运输车辆须安装卫星定位装置,未按照要求安装卫星定位装置,或者已安装卫星定位装置但未能在联网联控系统正常显示的车辆,不予发放或者审验《道路运输证》。

随着该文件规定的落实,必将会产生海量的车辆位置点数据。将这些车辆位置信息与地理信息相结合进行统计,则是相关技术行业中常见的统计分析的应用场景。而在这些统计中,将位置点和道路进行关联的统计操作则属于一种较为复杂的情况。将TB级的车辆位置数据按照道路进行区分,并统计每条道路上的位置点分布情况,需要涉及较复杂的地理空间算法,而且在数据的组织方式上也需要进行更为精巧的设计。在几年前云计算与大数据的技术尚未兴起的条件下,进行这样的操作将会是一项颇为浩大的工作,既需要考虑分布式并行计算,又需要对地理算法进行尽量高效的设计,还需要兼顾分布式情况下系统的健壮性和可靠性。

Hadoop技术的成熟和普及,使得在海量数据中进行统计运算的工作变得相对容易了很多。作为Apache软件基金会的开源分布式计算平台,Hadoop提供了分布式文件系统(HDFS)和分布式计算(MapReduce/Yarn)的基础框架支持。在海量数据的分析与处理领域,Hadoop以其高可靠性、高效性、高扩展性和高容错性等优势,可以使用户很容易的架构和使用分布式计算平台,可以简便的进行海量数据的存储和检索,能够轻松的开发和运行处理海量数据的应用程序。在很多IT领域,尤其是互联网行业,Hadoop被广泛应用于用户行为分析、数据挖掘与机器学习、网页抓取与分析、构建搜索引擎以及推荐广告等与大数据相关的应用之中。

由于Hadoop的MapReduce模型是基于Key/Value对的操作,因此在Key/Value对中如何设计地理数据和位置数据的关联关系将会成为一个可以使统计性能产生质变的关键点。通过合理的Key/Value设计和对MapReduce的Shuffle过程的优化,将会使统计操作的性能产生质的飞跃。以下将介绍一种通过使用地理网格进行数据关联,并利用Shuffle过程的二次排序实现高效的统计各条道路上位置点分布情况的方法。

计算某位置点是否位于某条道路上的一种相对简单的方式是获取道路的轮廓数据(以道路边界的经纬度点组成的多边形顶点经纬度信息)和位置数据的经纬度信息,然后将道路的轮廓坐标构建一个多边形,并通过判断车辆位置的经纬度坐标是否位于多边形的内部来判断车辆是否位于道路之上。在获取车辆和道路关系信息后,可以生成一个类似如下结构的二维表数据模型,进而进行分布状态的统计。


实现这种统计的一个技术关键点是如何判断一个点是否包含于一个多边形内部,如下图中,如何判断各圆点和多边形的包含关系。


在已知多边形各顶点坐标的情况下,判断任意一个点是否位于该多边形的内部的方法在各种开发语言中均有较多实现,下面以Java为例,简述两种常见的方法:

方法一:使用顶点坐标构建一个java.awt.Polygon对象,该对象具有一个contains(int x,int y)方法,通过将x和y两个方向的坐标作为该方法的参数进行调用,即可判断该点是否位于多边形内部。

方法二:使用第三方空间拓扑关系工具包JTS Topology Suite进行判断。该工具包中存在一个抽象类com.vividsolutions.jts.geom.Geometry。该抽象类作为JTS的几何元素对象的基类,具有一个contains(Geometry g)方法,该方法可以用于判断一个几何元素是否位于另一个几何元素内部。com.vividsolutions.jts.geom.Geometry有一个表示多边形的子类com.vividsolutions.jts.geom.Polygon和一个表示位置点的子类com.vividsolutions.jts.geom.Point。使用多边形顶点坐标和位置点坐标分别构建com.vividsolutions.jts.geom.Polygon和com.vividsolutions.jts.geom.Point对象,然后根据Polygon.contains(Point p)方法即可判断位置点是否位于多边形内部。

在路网数据和位置点数据量非常巨大的情况下,直接使用这两种方法统计道路-位置点的方法将会遭遇非常严重的性能问题,尤其在统计一个较长时间段内全国道路上位置点的分布情况时候。对于TB级的位置数据和数十GB的路网数据,进行空间关系的判断,如果使用单台服务器会涉及大量的磁盘分片读写,性能会非常底下,而如果使用分布式架构进行统计,网络通信,容错控制,任务管理等工作又会大大增加操作的难度。面对这样的问题,使用Hadoop进行统计操作,则会非常合适。

Hadoop的MapReduce编程模型是Hadoop体系的分布式并行计算框架。MapReduce编程模型假设用户需要处理的输入是一系列的key/value。在此基础上定义了两个函数Map和Reduce。业务逻辑的实现者则需要提供这两个函数的具体实现。

Map函数:输入是一系列Key/Value对(k1,v1),经过相应处理之后,Map函数将会产生中间结果Key/Value对(k2,v2)。MapReduce框架将会对中间结果按照Reduce进行分区/汇总/排序,然后调用Reduce函数。

Reduce函数:输入是经过分区/汇总/排序以后的中间结果(k2,list(v2)),输出则是最后的输出,可记为list(v3)。

MaprReduce的大致过程可以描述为:Map(k1,v1)→list(k2,v2);Reduce(k2,list(v2)) →list(v3)。

MapReduce确保每个reducer的输入都按键排序。系统执行排序的过程——将map输出作为输入传给reducer——称之为shuffle。常见的Shuffle操作包括PartitionerClass中的getPartition方法,SortComparatorClass中的compare方法和GroupingComparatorClass的compare方法。Shuffle的过程如下图所示,该过程对于MapReduce相当重要,适当的优化就可以对整个操作的性能产生质的飞跃。


使用Hadoop统计道路-位置点分布状态,主要的思路是将路网数据和位置点数据存储在HDFS的两个目录下,通过运行MapReduce程序,对路网数据和位置点数据执行Reduce端的join的操作,并在每个Reduce函数内进行路网和位置点的关系判断,生成位置点所属车辆的ID和道路ID以及位置点和时间的关系记录。使用生成的关系记录,再执行一次MapReduce的统计,就可以计算出某个时段内每条道路上车辆的分布状态。

这个操作的关键点是在路网数据和位置点数据进行join操作并判断路网和位置点关系的这个流程,通过采用地理网格进行join并在Shuffle阶段以二次排序的方式进行路网和位置点的预排序,经过二次排序后的相同网格内的数据,可以在Reducer方法中进行高效的空间关系判断。执行这一流程的步骤如下:

1.确定地理网格的划分方式

划分地理网格的目的是使不同的网格内的路网和位置点数据可以在Reduce中并行的执行。适当的划分地理网格的范围,可以使资源更加合理的调配,提高运行的效率。每个地理网格会被设定一个ID,这个网格ID将会成为路网数据和位置点数据执行join操作的依据。例如ID为11025_3810的网格表示东经110.25度到110.30度,北纬38.10度到38.15度之间的地理区间。

2.Map阶段

由于HDFS中路网数据目录和位置数据的目录都被设定为MapReduce的InputPath,因此在map阶段,路网数据文件和位置数据文件的每行都会成为map函数的value参数,通过对该行数据格式的判断,可以确定该行数据是路网数据或是位置数据。

如果是位置数据,则以该网格的ID和”:point”组成的字符串(如11025_3810:point)作为key,以经度、纬度、时间、车辆ID组成的字符串作为value,生成一组map输出的key/value对并执行map的输出。

如果是路线数据,则需要找到与该路线相交的所有地理网格,实现该操作的方法是判断路线外接矩形的四个顶点所位于的地理网格,然后遍历经纬度位于所有顶点网格之间的所有网格。对于每一个网格,都会输出一个Key/Value对,Key是网格ID和” :line“组成的字符串(如11025_3810:line),value是路线点序列和路线ID组成的字符串。

该过程的主要步骤大致如下:

public void map(LongWritable key, Text value, Context context) {    if (isLine(key)) {    String[] gridIds = chooseGridIds(key);        for (String gridId : gridIds) {                                    context.write(new Text(gridId + ":line"),lineValue(value));        }       } else {       String gridId = chooseGridId(key);                                context.write(new Text(greidId + ":point"), pointValue(value));                        }}

3.shuffle阶段

在Map执行阶段,输出记录的key的格式是网格ID+数据文件类型的组合,为了使具有相同网格ID的输出进入相同的Parition,需要对Partitioner的getPartition函数进行重写,将选择分区的方式修改成使用key字符串的网格ID的部分进行选择。Partition阶段之后,会在map端和reducer端分别根据SortComparatorClass中指定的compare规则进行排序。对于相同的网格ID,由于”line”字符串的字典排序在”point”字符串之前,而我们也希望排序的最终结果是数据量相对很小的路网数据排列在位置点的前面,因此compare函数制定的排序规则是v1.toString().compareTo(v2.toString())即可。排序阶段完成后,会根据GroupingComparatorClass中制定的排序规则,确定最后的Value序列在reduce函数中的排序。GroupingComparatorClass的compare函数会确定最终具有哪些key的value会出现在同一个reduce函数的参数列表中。根据业务规则,我们希望具有相同的网格ID的数据被排列到相同的reduce函数中,因此该compare函数需要从key中获取网格ID部分,然后根据字典顺序排序。

SortComparatorClass的compare方法为:

 public int compare(WritableComparable v1, WritableComparable v2) {    return v1.toString().compareTo(v2.toString()); }GroupingComparatorClass的getPartition方法为:public int getPartition(Text key, Text value, int num) {    return (key.toString().split(":")[0].hashCode() & Integer.MAX_VALUE) % num;}Groupcomparator的compare方法为:public int compare(WritableComparable v1, WritableComparable v2) {    return v1.toString().split(":")[0].compareTo(v2.toString().split(":")[0]);}

4.reduce阶段

Reducer中的reduce函数每次被调用的时候,函数的第一个参数是一个包含网格ID的key,第二个参数是该网格内所有位置点以及与该网格相交的所有路线的数据组成的一个Iterable。通过Shuffle过程的优化,在使用Iterable遍历数据时,所有路网数据都排列在位置点数据的前端。这样的排序方式,可以使判断网格内所有路网和位置点的空间关系的操作只需要遍历一次Iterable。当遍历完位于最前端的路网数据的时候,就可以将所有的路网数据保存在一个list中。遍历的下一步就是开始遍历所有位置点,每遍历一个位置点,都要与保存路网数据的list中的每条数据进行空间关系判断,计算位置点是否位于该路网上。

该过程的主要步骤大致如下:

public void reduce(Text key, Iterable<Text> values, Context context) {    List<Road> roadList = new ArrayList<Road>();    boolean isPoint = false;               for (Text v : values) {           if (!isPoint) {					                if (isLine(v)) {  			    Road road = initRoad(v);                lineList.add(road);            } else {                isPoint = true;                 //以下5行代码应归属到某个业务方法中Position pos = initPosition(v);for(Road  road: roadList){if (road.contains(pos)) {                        output(road,pos,context);                    }}            }        } else {            //以下5行代码应归属到某个业务方法中            Position pos = initPosition(v);            for (Road road : roadList) {                if (road.contains(pos)) {                    output(road,pos,context);                }            }        }     }}

在数据规模较大的场景下统计位置点和路网的空间关系,由于涉及到两类数据进行join操作并执行空间计算的工作,因此传统的基于单服务器地理信息系统运算的模式会遇到很严重的性能问题,当数据量超过一定规模后,传统的方式甚至无法执行空间数据统计的工作。基于Hadoop的MapReduce框架,采用以地理网格进行join的方式,通过二次排序排列地理类型,可以使统计操作的空间、时间复杂度或是编程的工作量都会大为降低,使原本非常复杂的工作变成可以在生产环境中被常规操作的工作。

采用上述方法进行地理空间分析,对于类似在一个较大地理范围内统计某个时段内车辆在各条道路上的分布情况这样的应用场景可以发挥有效的作用。这种应用场景对于分析全国交通流量状态,规划路网设计的工作都有非常重要的参考价值。而在Hadoop上,使用基于网格的join操作,几乎可以应用于各种数据规模庞大的地理统计分析之中。目前,在实验环境下进行统计测试,对于600G的车辆轨迹点数据和300M的路网数据,在由10台PC服务器组成的Hadoop集群中,完成车辆轨迹点在路网上的分布情况的统计,大约耗时5小时可以完成,而采用传统技术对于这种数据规模的轨迹点和路网数据进行空间分析,需要耗费数天的时间。在下一步的工作中,可以将这样的地理空间统计方法推广到性能更加优秀的Spark平台,在数据规模不是很大的情况下,这种方法对于实时计算各条道路上的车辆分布情况,预测交通流量,解决道路拥堵问题,将会发挥很有实际意义的效用。

作者:杨晓明,阿里巴巴技术专家,曾担任中交兴路系统架构师。2003年开始全职从事软件研发工作,2007年后一直担任架构师的工作。曾参与民航航空安全管理信息系统、民航总局运行管理中心、中国空中交通流量预测系统、交通部全国货运监管服务平台、雅迅车联网系统、浪淘金全媒体推荐引擎、位客网、分分网、简单网等包括政府平台、SNS系统及电子商务平台的开发和架构工作。长期关注新兴技术,目前主要研究可应用于交通领域的高并发、大数据及数据挖掘相关技术。

Web应用在IE11里的实际使用性能 回顾2013年十个值得关注的WordPress设计主题 为什么Google眼镜注定会失败? 2013移动开发工具盘点:最火原型设计工具 2013年12月份浏览器份额:IE 11暴涨3倍 【PPT集萃】十位一线专家分享Spark现状与未来(二) 2014年,怎么做产品才能获得成功? 年末新游盘点:2014年移动游戏四大趋势 IDC:全球有1850万程序猿 4成爱好者在写代码 PHP开发框架流行度排名:Laravel居首 2013年度最强AngularJS资源合集 研发周报:回顾2013、技术栈的选择、开源成趋势 TIOBE 2014年1月编程语言排行榜:Transact-SQL力挫Objective-C 夺得桂冠 IBM:这五个智能技术的发展,将会改变我们生活 一周消息树: 微软的2013,Surface的2014 Amazon CTO Werner Vogels:云和SaaS正在快速风靡全球 “人类先知”Isaac Asimov 50年前的科技预测大多应验了 2014年10大Web设计趋势 Google野心:App Indexing改写应用搜索格局 Cocos2d-x,老牌引擎的新进化 Kingdom Rush创始人专访:游戏与电影元素混搭 超实用的JavaScript技巧及最佳实践(下) 盖茨和鲍尔默或成挑选微软新CEO的最大阻碍 移动开发进阶:触发式邮件深入分析 King.com传奇再续!Farm Heroes Saga强势登陆iOS、Android 2013综述稿:Clojure这一年及大事件 亚马逊AWS vs.谷歌GCE,彪的是价格? 2014,混合云被广泛采用的一年 传微软拉拢厂商推双启动系统手机 用户可选Windows Phone或Android 为什么游戏领域总是“抄抄抄”! 物竞天择、百家争鸣——评OpenStack生态圈 寻找采用WebSnap 技术的例子? matrxII观后感 关于JSP文件和BEAN的存放 创业中的软件公司招人(有兴趣的弟兄进来看看) c#做的程序可以直接在新安装的win98下(没有.net环境)跑吗?有经验的请留步 c#做的程序可以直接在新安装的win98下(没有.net环境)跑吗?有经验的请留步 存储过程分页有点问题,谁帮我看一下 基础问题!困扰我! 请哥哥姐姐帮忙,把下面的代码转换成VC代码 大家case工具都用到什么程度? 为什么编译的可执行文件在其他计算机无法运行? ACCESS操作问题,高手... 我是刚刚入门,请帮助 怎样把一个已建好的主域服务器更改域名(在线等) 如何得到DataGrid控件里面的某行某列得值? 关于rave报表的问题 weblogic部属程序问题! 组合查询的问题 怎样在改变一个下拉菜单,不刷新页面的情况下,改变另一个菜单的内容??? 有使用BCG库的朋友吗?有些问题不明白,想讨论一下。 sqlmangr.exe文件受到了损坏,应该怎么做恢复[急] 请问,广东的高程报名在什么时候?谢谢! lwangzi(磊子)请关注 win2000下读注册表的怪问题??? 在线等待,急急急 菜鸟百问之一 在VS.NET中无法调试ASP.NET应用程序 从一个表select等好久也没有东西返回,别的表正常,这是为什么呀 大哥大姐: 请问BC与DELPHI有什么区别 ? 问个小问题,权当散分 怎么把终端服务的3389端口号改为自己需要的端口? 怎么样使用实体bean来修改数据库中的记录? 高手请进!!急 如何知道打开子窗体的父窗体是谁 关于XML转换的问题!!请高手进!! *.xfm是什么文件?? 打包难题 help me 来这里问一下, DELPHI与C++ BUILDER 有什么区别 ? 北京时尚-- 海淀vs朝阳 (转) 请问:如何显示通过get来传递过来的带“+”的变量?(显示“+”会丢失) 如何获取指定范围内的随机数,急! 各位GGMM,请多关照新来的MM! applet中的swing可不可以用Look and Feel 请问如何获取字符串里特定字节,马上给分,谢谢, 高分:如何使用将datagrid放在Repeater控件中 转化asp--》asp.net c#版本,有经验借鉴一下么? Oracle的备份!!! 整了几天了,显示jpg图片问题!!!我的数据库表中存的是jpg图片,用代码显示图片为什么错误? 删除多余的列。(解决即得分) 封杀我吧!!!!!!! 封杀我吧!!!!!!! liusoft(凤梨罐头) 请进来接分 谁能用一段结构清晰的语句概括一下SOAP扩展? 1 改为一般疑问句并作否定回答:I can see a cat on the floor.2 You can't play basketball here.改为祈使句.3 Tom can drive the car.(对Tom进行提问) 生理啊生理2第二章 细胞的基本功能1.载体易化扩散有什么特点?①载体蛋白具有较高的结构特异性,即某种载体只选择性地与某种物质作特异性结合; ②具有饱和现象.膜上有关的载体数量 ous!安装问题启动不了.NET Framework安装程序啊. 改为一般疑问句,并作肯定和否定回答.1.I'm helrful! _____________________________________________2.I often read books and wash TV. ________________________________________ 生理过程 C语言!1.要求:完成标准中缀算术表达式求值运算.2.中缀表达式由键盘输入,以回车键结束.如:3*((4+6)-(5-2)^3)3.输入的中缀表达式符合以下要求:(1) 中缀表达式长度不确定.(2) 中缀表 怎样可以使花瓶里的花开的更久阿?买回家的花插花瓶里第二天就枯萎了,怎么回事呢,在花店都可以开一周左右的.怎样才能开的更久些啊/? 急!求帮助!求极限值和微分! 《数据结构》 索引顺序表上的查找分两个阶段:(1)?;(2)? 花瓶里的花开得真新鲜中的新鲜什么意思 关于生理过程请求详细科学的男生各阶段的发育过程.在几岁到几岁大致出现什么性状 西雅图告诫我们说:“河水是我们的兄弟,也是你们的兄弟.你们应该向善待自己的兄弟那样,善待我们的河水.”改为转述句. 子谓韶, 尽美矣,又尽善也. 谓武, 尽美矣,未尽善也. 找成语 子谓韶, 尽美矣,又尽 关于大一微分的极限,就是这3盗题目 纯合黄豌豆YYRR与绿皱yyrr豌豆杂交得F1,F1自交,得F2,将F2中全部绿圆豌豆再种值(自交)则F3中杂合的绿园豌豆占F3的比例是多少 子谓《韶》:“尽美矣,又尽善也.”谓《武》:“尽美矣,未尽善也.”(是什么成语的原型)子谓《韶》:“尽美矣,又尽善也.”谓《武》:“尽美矣,未尽善也.”成语:( )急 生理啊生理11-24.简述糖皮质激素的主要生理作用 ①对物质代谢的影响.糖皮质激素有显著的升高血糖的作用,因为它既促进氨基酸参与糖异生,增加血糖来源,又可抗胰岛素作用,抑制外周组织对 要有算式和解析 “子谓《韶》:‘尽美矣,又尽善也.’谓《武》:‘尽美矣,未尽善也.’” 这句话里有个什么成语 求下列极限,微分 求算式详解 子谓《韵》:“尽美矣,又尽善也.”谓《武》:“尽美矣,未尽善也”成语 b指什么生理过程 作文假如没有明天? 照样子写出恰当的成语 技术好 技术(百里挑一) 文章好 文笔( ) 态度好 对人( ) 天气好 天空( ) smile是什么意思啊谢谢了,大神帮忙啊v 请问这个蜈蚣的学名,有什么应用价值吗? 口才好的成语是什么?态度好的成语是什么?天气好的成语是什么? 桃花传粉的过程,花谢以后要结出桃子,号经历的重要一个生理过程是什么? 图中蜈蚣的学名是什么? 在氯化铜(Cucl2)的电解池中,10s内有N1=5×1018个铜离子和N2=1.0×1019个氯离子通过某横截面.求通过该在氯化铜(Cucl2)的电解池中,10s内有N1=5×1018个铜离子和N2=1.0×1019个氯离子通过某横截面。 几道求极限的题和几道微分题~急1.lim (x^1/3-1)/(x^1/2-1)=?x→12.lim tan2x/sin5x=?x→03.lim (e^x-1)/x=?x→04.f(x)=arccos1/x,则f'(-2)=?5.函数f(x)=(x-1)x^2/3的极小点为x=?6.d(e^sinx^2)=_____ d(sinx^2)=______d(x^2)下周考数学了 关于数据结构 查找定一个集合,查找元素是否在集合中出现.输入每个测试用例由多行组成,第一行是两个整数n和m,两个数范围在1到100000之间.自第二行起一共有n+m个整数,其中前面n个整数代表 仿照“山那边的山啊,铁青着脸”造一个句子:水那边的水啊,、、、、、、、 英语作文植树 已知向量组a1=(1,-1,2,4)T a2=(3,0,7,14)T a3=(0,3,1,2)T a4=(1,-1,2,0)T,判断其线性相关性,并将其余向量用最大无关组表示,请老师详细的说一下是怎么看出来是想关还是无关的, 已经过了N2了,还用过N1吗 夸脱等于多少升 已知向量组a1=(1,2,-1,1)a2=(2,0,t,0) a3=(0,-4,5,-2)的秩为2,则t=? 如图所示的电解池接入电路后,在t秒内有n1个一价正离子通过溶液内某截面S,有n2个一价负离子通过溶内某截面S,设e为元电荷,以下说法正确的是 ( ) A.当n1=n2时,电流为零 B.当n1>n2时,电流方 极限,和导数,还有微分,还有连续 到底是什么关系看见高数真的要跪了.导数是lim 极限也是lim,等价无穷小也有lim, 设向量组a1=(λ+3,λ,3λ+3)T a2=(1.1-λ,λ)T a3=(2.1.λ+3)问λ取何值时线性相关 答案是1或0 但是把0带进去 我感觉这个A不等于0啊 数据结构上的题:将一个顺序表中从第i个结点开始的k个结点删除 知了吃了,还有地下爬出来的那个东西,有什么好处吗?到了晚上从地下小洞里爬出来的那个叫什么呀?白天树上叫的叫知了,那晚上的那个叫什么呀? 甲已两队进形篮球赛,结果两对总分之和100分,现在已知甲队加上5分,就比已队多3分,两对各得几分? 已知三角形的三边长分别是a=2倍根号3+1,b是2倍根号3-1,c=根号26,试判定三角形的形状并求出三角形面积 ous什么意思 甲乙两队打篮球比赛,共得分l00分,现在知道给甲加7分就比乙多1分,甲乙原来各多少分. 日环食涉及天体系统有几个 一道极限微分的题目F(x)在R上有连续二介导 ,F(x)/x 在x趋近于0的时候等于0,为何可推出F(0)=0?,F'(0)=0? 求向量组a1=(1,-2,0.3)T,a2=(2,-5,-3,6)T,a3(0,1 ,3,0)T,a4=(2,-1,4,-7) a5=(5,-8,1,2)T的最大秩和最大现行无关组 smile是什么意思啊拜托各位大神 数据结构中有试写一算法,实现顺序表的就地逆置 概率题:从a b c d e五人中选择3个人参加比赛的基本事件都有哪些从五人中选择三个人怎么选 smile是什么意思 啊ya拜托各位大神 描写勤劳是好事的词语越多越好 帮忙猜猜这个成语是什么 英语翻译帮助企业根据产业动态和趋势寻找未来方向,确定发展战略,并通过运营战略实现组织架构、成本和利润等的最优化提高企业人力资源对业务发展的推动作用,建立人才培养战略和方案, ous的问题/> 安徽地区具体几点可以看到日环食的美丽奇观?安徽 亳州市 还有淮北市 今天可以看的到日环食吗?具体几点. 哈佛教授质疑美国饮食指南推出新版本饮罕见日食现象横扫非洲 遇恶劣天气仍壮日本约32万人观看自卫队航空节 特技刚果(金)反政府武装陷入绝境 要求立日本浜名湖渔船失火 恰逢货船经过救起坦桑尼亚当局在一中国人家中查出180日本浜名湖渔船失火 恰逢货船经过救起日本九州遭遇雾霾 政府呼吁民众尽量减玻利维亚北部发生坠机事故 已致8人死印度将发射火星探测器 被指火星探测失评论:新一轮财税体制改革应有新突破美国务卿称美国永远不会允许伊朗有核武民调显示超3/4德国人认为美国国安局克里开启中东之行 欲修复美国与沙特关罕见日食现象横扫非洲 遇恶劣天气仍壮日本进行最大规模军事演习 日媒受压力大学生寝室里开小超市营业俩月被学校勒中国云计算产业发展及大数据应用高峰论农夫山泉派员举报《京华时报》 称实行20家网贷平台陷兑付危机 投资人面临疑百度帮新客户侵权 百度老客户状告百长七运载火箭副总指挥张涛:长征七号任贝尔挖乌龙大坑!这球碰到就进 夺命传新疆举办“靓丽工程”成果展暨妇女巧手毒品案件集中宣判 厦门法院打好反毒攻百位国内外专家平潭论道海岛科学发展助俄罗斯一州长被控受贿 出庭受审(组图六月牧夫流星雨光临地球胡同填字海信或再赞助世界杯丰台区启动红色党课活动心理学家海灵格来京开讲张秉贵:心中“一团火”,温暖万人心战车出击红魔现身吴宗宪牵手YYLIVE推出新节目志愿者孙兴谈戒毒否认“毒枭”传言父与子中央财政紧急下拨1.6亿元赈灾王戈话剧《蠢蛋》一人饰三角本科志愿填报开始鸟巢开唱侯逸凡将与男棋手争霸
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘