1. 建筑矩形设计优缺点
简单但无新意。
建筑通常采用矩形设计,是因为矩形设计是最简单的,最方便建造,但是也是最没有新意,没有创意的,追求创意可以考虑别的形状设计。
现在的技术都更倾向于直线。古代的技术可想而知,并不是做不了,而是这种建筑更加复杂,耗费资金更高。从古代开始就是矩形多,延伸到现代。
2. 剩余矩形填充算法是优化算法吗
剩余矩形填充算法是优化算法。剩余矩形匹配算法是一种动态的局部寻优算法,针对矩形件排样问题提出的一种新的空白矩形填充优化算法。
3. 概率算法
最近做了一个活动抽奖需求,项目需要控制预算,概率需要分布均匀,这样才能获得所需要的概率结果。
例如抽奖得到红包奖金,而每个奖金的分布都有一定概率:
现在的问题就是如何根据概率分配给用户一定数量的红包。
算法思路 :生成一个列表,分成几个区间,例如列表长度100,1-40是0.01-1元的区间,41-65是1-2元的区间等,然后随机从100取出一个数,看落在哪个区间,获得红包区间,最后用随机函数在这个红包区间内获得对应红包数。
时间复杂度 :预处理O(MN),随机数生成O(1),空间复杂度O(MN),其中N代表红包种类,M则由最低概率决定。
优缺点 :该方法优点是实现简单,构造完成之后生成随机类型的时间复杂度就是O(1),缺点是精度不够高,占用空间大,尤其是在类型很多的时候。
算法思路 :离散算法通过概率分布构造几个点[40, 65, 85, 95,100],构造的数组的值就是前面概率依次累加的概率之和。在生成1~100的随机数,看它落在哪个区间,比如50在[40,65]之间,就是类型2。在查找时,可以采用线性查找,或效率更高的二分查找。
算法复杂度 :比一般算法减少占用空间,还可以采用二分法找出R,这样,预处理O(N),随机数生成O(logN),空间复杂度O(N)。
优缺点 :比一般算法占用空间减少,空间复杂度O(N)。
算法思路 :Alias Method将每种概率当做一列,该算法最终的结果是要构造拼装出一个每一列合都为1的矩形,若每一列最后都要为1,那么要将所有元素都乘以5(概率类型的数量)。
此时会有概率大于1的和小于1的,接下来就是构造出某种算法用大于1的补足小于1的,使每种概率最后都为1,注意,这里要遵循一个限制:每列至多是两种概率的组合。
最终,我们得到了两个数组,一个是在下面原始的prob数组[0.75,0.25,0.5,0.25,1],另外就是在上面补充的Alias数组,其值代表填充的那一列的序号索引,(如果这一列上不需填充,那么就是NULL),[4,4,0,1,NULL]。当然,最终的结果可能不止一种,你也可能得到其他结果。
举例验证下,比如取第二列,让prob[1]的值与一个随机小数f比较,如果f小于prob[1],那么结果就是2-3元,否则就是Alias[1],即4。
我们可以来简单验证一下,比如随机到第二列的概率是0.2,得到第三列下半部分的概率为0.2 * 0.25,记得在第四列还有它的一部分,那里的概率为0.2 * (1-0.25),两者相加最终的结果还是0.2 * 0.25 + 0.2 * (1-0.25) = 0.2,符合原来第二列的概率per[1]。
算法复杂度 :预处理O(NlogN),随机数生成O(1),空间复杂度O(2N)。
优缺点 :这种算法初始化较复杂,但生成随机结果的时间复杂度为O(1),是一种性能非常好的算法。
4. 公司矩形组织结构的优缺点。。。越详细越好。。555拜托了
矩阵制组织的特点
矩阵制组织是为了改进直线职能制横向联系差,缺乏弹性的缺点而形成的一种组织形式。它的特点表现在围绕某项专门任务成立跨职能部门的专门机构上,例如组成一个专门的产品(项目)小组去从事新产品开发工作,在研究、设计、试验、制造各个不同阶段,由有关部门派人参加,力图做到条块结合,以协调有关部门的活动,保证任务的完成。这种组织结构形式是固定的,人员却是变动的,需要谁,谁就来,任务完成后就可以离开。项目小组和负责人也是临时组织和委任的。任务完成后就解散,有关人员回原单位工作。因此,这种组织结构非常适用于横向协作和攻关项目。
矩阵结构的优点是:
(1)将企业的横向与纵向关系相结合,有利于协作生产。
(2)针对特定的任务进行人员配置有利于发挥个体优势,集众家之长,提高项目完成的质量,提高劳动生产率。
(3)各部门人员的不定期的组合有利于信息交流,增加互相学习机会,提高专业管理水平。
矩阵结构的缺点是:
项目负责人的责任大于权力,因为参加项目的人员都来自不同部门,隶属关系仍在原单位,只是为"会战"而来,所以项目负责人对他们管理困难,没有足够的激励手段与惩治手段,这种人员上的双重管理是矩阵结构的先天缺陷;由于项目组成人员来自各个职能部门,当任务完成以后,仍要回原单位,因而容易产生临时观念,对工作有一定影响。
矩阵结构的适用范围
矩阵结构适用于一些重大攻关项目。企业可用来完成涉及面广的、临时性的、复杂的重大工程项目或管理改革任务。特别适用于以开发与实验为主的单位,例如科学研究,尤其是应用性研究单位等。
5. 经常听到某某算法更精确比如积分梯形法就比矩形法更精确,那么这种精确有什么区别呢只要分割更细,矩形
(1)梯形法和矩形法精确度相同的。
(2)更精确,指的是数据一样的前提下,一种算法比另一种算法的误差更小,
比如积分,同样9个点,
龙贝格算法的精度比辛普森高,辛普森的精度比梯形和矩形高。
6. 字符串的模式匹配(BF算法与KMF算法)
Brute-Force算法的实现:
测试程序以及运行结果:
虽然没有任何丢失可能匹配字符的可能,但是每次的匹配没有用到前一次匹配的比较结果,比较多次重复,降低了算法效率。
时间复杂度:
m = pattern.length();
n = target.length();
最好的情况:O(m) (一次比较成功)
最坏的情况:O(n(n-m+1) m) 一般n>>m,所以O(n m) (比较到最后一次才成功)
先来一波kmp算法的 网络 介绍:
无回溯的模式匹配算法首先目标串的祛除了目标串的回溯,其次,通过getNext()算法,匹配串也做到了部分不回溯。
无回溯算法的核心是如何实现这个 next() 算法:
实际上next()算法就是来 判断pattern的子字符串与当pattern的0位置开始的字符串是否相同,第一个next[0]默认为1,接下来的如果不相同next[i]为0,如果第一个相同,为0,若连续开始相同,则依次++1
如:
如果pattern的首字符在pattern剩余的字符串里没有再出现过,那么getNext()获取的next[]必然是[-1,0,...,0]这样的。
匹配方法如下:
kmp算法的最坏的比较次数是m+n,next算法的时间复杂度是0(m),kmp比较是O(n),与BF算法相比,已经大大缩小了比较的时间。
7. 四节点矩形单元有哪些优缺点
四节点矩形单元优点:较容易进行网络划分和逼近边界形状,应用比较灵活。其缺点是它的位移模式是线性函数,单元应力和应变都是常数,精度不够理想。缺点:单元不能适应曲线边界和斜边界,也不能随意改变大小,适用性非常有限。
对于这个单元而言也等于单元本身在节点位置受到的外荷载;单元的应力是力学的概念,单位面积的力,通过对单元应力的积分可以得到单元的节点力。如果是均匀受拉的杆单元,单元力=应力*单元横截面积。
作用
(1)为了保证构件的平面外的稳定性,减小构件平面外的计算长度。当横梁和柱的内侧翼缘需要设置侧向支撑点时,可以利用连接于外侧翼缘的檩条或墙梁设置隅撑。隅撑一般宜采用单角钢制作,按照轴心受压构件设计。
(2)为了防止受压翼缘(梁下翼缘和柱的内侧翼缘)屈曲失稳,增加受压翼缘的稳定性而设置的。隅撑的设置是用来保证梁的下翼缘受压部分的局部稳定。梁的上翼缘的局部稳定由与之连接的檩条保证。
8. c++ 游戏碰撞检测怎么做
在游戏开发中,经常需要进行碰撞检测算法的实现,例如判断前面是否有障碍以及判断子弹是否击中飞机,都是检测两个物体是否发生碰撞,然后根据检测的结果通过碰撞检测算法做出不同的处理。
进行碰撞检测算法的物体可能有些的形状和复杂,这些需要进行组合碰撞检测,就是将复杂的物体处理成一个一个的基本形状的组合,然后分别进行不同的检测。
下面简单介绍一下两种最基本的形状进行碰撞的时候进行的处理。
1、矩形和矩形进行碰撞检测算法
一般规则的物体碰撞都可以处理成矩形碰撞,实现的原理就是检测两个矩形是否重叠。我们假设矩形1的参数是:左上角的坐标是(x1,y1),宽度是w1,高度是h1;矩形2的参数是:左上角的坐标是(x2,y2),宽度是w2,高度是h2。
在检测时,数学上可以处理成比较中心点的坐标在x和y方向上的距离和宽度的关系。即两个矩形中心点在x方向的距离的绝对值小于等于矩形宽度和的二分之一,同时y方向的距离的绝对值小于等于矩形高度和的二分之一。下面是数学表达式:
x方向:| (x1 + w1 / 2) – (x2 + w2/2) | < |(w1 + w2) / 2|
y方向:| (y1 + h1 / 2) – (y2 + h2/2) | < |(h1 + h2) / 2|
在Java ME程序中,只需要将上面的条件转换成代码就可以实现了。
但是矩形碰撞只是一种比较粗糙的碰撞检测算法,因为很多实际的物体可能不是一个规则的矩形。
下面介绍一下圆形碰撞。
2、圆形和圆形的碰撞检测算法
圆形和圆形的碰撞应该说是一种最简单的碰撞,因为在数学上对于两个圆形是否发生重叠,有计算两个圆心之间的距离的公式。那么条件就变为:计算两个圆心之间的距离是否小于两个圆的半径和。
假设圆形1的左上角坐标是(x1,y1),半径是r1,圆形2的左上角的坐标是(x2,y2),半径是r2。
因为MIDP1.0中没有浮点数,而且浮点数的运算比较慢,所以我们将条件做一个简单的变换:对于条件的两边都进行平方,这样就去掉了开方的运算步骤。
下面是数学表达式:
(x1 – x2)2 + (y1 – y2)2 < (r1 + r2)2
在Java ME程序中,只需要将上面的条件转换成代码就可以了。
上面介绍的只是最基本的碰撞检测算法的实现,而实际的编程过程中遇到的碰撞检测问题要比这些复杂很多,还需要其他形式的检测,还需要进行更加深入的学习。
9. 平面有限元分析中,三角形单元与矩形单元各有何优缺点
三角形单元具有适应性强的优点,较容易进行网络划分和逼近边界形状,应用比较灵活。其缺点是它的位移模式是线性函数,单元应力和应变都是常数,精度不够理想。
矩形单元的位移模式是双线性函数,单元的应力、应变式线性变化的,具有精度较高,形状规整,便于实现计算机自动划分等优点,缺点是单元不能适应曲线边界和斜边界,也不能随意改变大小,适用性非常有限。
(9)剩余矩形匹配算法优缺点扩展阅读:
通过变分方法,使得误差函数达到最小值并产生稳定解。类比于连接多段微小直线逼近圆的思想,有限元法包含了一切可能的方法,这些方法将许多被称为有限元的小区域上的简单方程联系起来,并用其去估计更大区域上的复杂方程。
它将求解域看成是由许多称为有限元的小的互连子域组成,对每一单元假定一个合适的(较简单的)近似解,然后推导求解这个域总的满足条件(如结构的平衡条件),从而得到问题的解。这个解不是准确解,而是近似解,因为实际问题被较简单的问题所代替。
由于大多数实际问题难以得到准确解,而有限元不仅计算精度高,而且能适应各种复杂形状,因而成为行之有效的工程分析手段。
10. 剩余矩形填充算法是优化算法吗
是,针对矩形件排样问题提出的一种新的空白矩形填充优化算法.
首先,设计空白矩形填充算法时,提出了消除多余空白矩形的方法,以减小计算时间复杂度.其次,利用邻域搜索算法优化矩形件排放顺序,通过挖掘矩形件排样的问题特征,设计了受限距离的交叉和插入两种邻域算子,并提出了特殊算子执行点选择策略.然后,设计了基于两种邻域算子交替迭代的邻域搜索算法.最后,对文献中的21个经典案例进行试验计算,4个案例的排样利用率达到了100%,绝大多数案例的排样利用率超过了99%,最小排样利用率超过了98%.将其他常用算法和文献中算法进行比较,验证了本文算法的有效性