『壹』 如何在c++定义一个学生类以实现平均成绩的计算和查询功能
一.中间件的定义与作用
1.什么是中间件?
图片摘自公众号“筋斗云与自动驾驶”
笔者在交流中发现,不同的人对中间件的理解并不一样,甚至可以说,到现在,这个概念还是模糊不清的。比如:
(1)有的人认为中间件仅指位于OS内核之上、功能软件之下的那部分组件,为上层提供进程管理、升级管理等服务;而有的人则认为中间件还应包括功能软件和应用软件中间的那部分(参见上图)。按茅海燕的说法,前者是“通用中间件”,而后者是“专用中间件”。本文中提到的“中间件”,若不做专门说明,便特指“通用中间件”。
(2)有一些人提到的自动驾驶中间件,包括了AUTOSAR(又分为AUTOSAR CP和AUTOSAR AP),还有一些人口中的中间件,特指ROS2、Cyber RT、DDS等。
(3)未动科技VP萧猛认为,“中间”一词是相对的,当有多层堆叠的时候,每一层都是其上下两层的中间层,因此,在用“中间件”这个词的时候,我们需要特别指明它究竟位于“哪两层之间”。按萧猛的说法,当我们称“ROS/ROS2 为中间件”时,其含义与 “AUTOSAR AP为中间件”并不是对等的关系。
(4)Vector产品专家蔡守群说,他理解的中间件,“是给App开发提供功能支撑的,对外是没有功能表征的;但是站在操作系统内核的角度,中间件跟App并没有本质的区别”。
2.中间件的作用
汪浩伟说:“专用中间件原本是应用程序的一部分,只是很多公司做自动驾驶都需要用到,就被抽象出来了。”
那么,它究竟有什么用?
毕晓鹏认为,自动驾驶中间件最主要的作用是:对下,它能够去适配不同的OS内核和架构;对上,它能够提供一个统一的标准接口,负责各类应用软件模块之间的通信以及对底层系统资源的调度。
据毕晓鹏解释,前者,使开发者们无需考虑底层的OS内核是什么,也无需考虑硬件环境是什么,即不仅实现了应用软件与OS的解耦,也实现了应用软件与硬件的解耦;而后者则确保了数据能够安全实时地传输、资源进行合理的调度。
为什么要通过中间件来支持软硬件解耦?毕晓鹏解释道:
我开发一个应用软件,其中很多内容都是与具体应用逻辑无关的,包括数据通信、通信安全、系统资源调度等,比如,有十个进程需要数据交互,完全没有必要在十个程序的软件代码里各自进行实现和配置。针对这种情况,我们就可以把重复的部分抽象成一种服务,单独封成一层东西(这就是中间件),并提供统一的库、接口和配置方法,供上层去调用。这样的话,有一部分人专门去做中间件的,而做上层应用的人也不需要考虑跟底层交互的事情。
举例说,如果要做一个自动泊车系统,它有各个模块或业务逻辑独立的不同软件,在进行通信、数据交互,或者调用底层资源时,只需要中间件的一个接口就可以实现,其他事情不需要考虑,这样开发人员就可以专注于自己的业务逻辑。
又比如,一个摄像头需要感知前面的车道线、红绿灯等,开发人员就专门做红绿灯和车道线检测算法,与外界的数据交互只需要使用中间件的通信服务(例如订阅摄像头信息,发布检测结果),而不必关心数据从哪里来、发给谁。
Nullmax纽劢科技系统平台总监苗乾坤博士在此前的一篇文章中写道:
“芯片算力大幅增长,摄像头像素呈翻倍之势,激光雷达出现在更多新车规划上……没有谁能够断言车上的传感器应该有多少,又或者是将来的汽车还会增加哪些硬件,但所有人都知道硬件的变化将会来得更加猛烈。
“所以我们也可以看到,汽车对软硬件架构的要求也越来越高,既要能满足当下的需求,还要具备相当的前瞻性、兼容性和扩展性,能够支持接下来软硬件升级换代、增减模块的需求。而自动驾驶的中间件,就正是这样一个可以按需调整、满足各样需求的现代温室。
“在早期开发中,中间件可以化整为零,将巨大的软件工程分解成若干小任务,分散解决。在后期应用时,它又可以化零为整,像拼积木一样,根据需求将一个个模块组合成一个整体,严丝合缝。”
在春节前的一场直播中,东软睿驰产品销售总监安志鹏说,在软硬件解耦、模块化管理后,再遇到问题,就不用整个系统都改,只改相对应的部分就行了。这样,软件的可复用程度就极大地提升了,同时,验证的工作量也会减少许多,整体开发效率也会因此提升。
相反,没有中间件的话,应用层就得直接调用操作系统的接口,后期要是换了操作系统,应用层的代码和算法可能就要推倒重来。
简言之,中间件通过对计算平台、传感器等资源进行抽象,对算法、子系统、功能采取模块化的管理,并提供统一接口,让开发人员能够专注于各自业务层面的开发,无需了解无关细节。
按东软睿驰产品销售总监安志鹏的说法,搞AUTSOAR这样的中间件,并不是只对OEM有利,“零部件供应商的选择面也大了——应用做好了,下面的软件、芯片可以选好几家供应商的,要比传统的开发模式快很多,因而,零部件供应商也是受益者”。
用萧猛的话说,中间件最直接的好处就是“为上层屏蔽底层的复杂性”,软件开发人员可以忽略芯片、传感器等硬件的差异,从而高效、灵活地将上层应用及功能算法在不同平台上实现、迭代、移植。萧猛认为,中间件可以看做是自动驾驶应用背景下的一项“新基建”。
(图片摘自冯占军博士的《AUTOSAR对基础软件开发是喜还是忧?》一文。AUTOSAR只是中间件的一种,但这里写的“AUTOSAR开发优势”基本也适用于其他中间件。)
不过,站在开发者的角度看,中间件的意义也未必全部是正面的。如冯占军博士在《AUTOSAR对基础软件开发是喜还是忧?》一文中就提到了如下两点:
底层软件工程师变成了工具人,“只要你去点点鼠标,用工具配合就可以了”,很多原本由自己做的测试也改由供应商来做,进而导致工程师的成就感严重降低;时间久了,工程师从0到1开发的能力也会降低。
(图片摘自冯占军博士的文章。尽管文章说的是Autosar,但实际上这些问题在ROS等其他中间件的使用过程中也会存在。)
对软件工程师来说,中间件造成的“能力退化”这一问题几乎是无解的。但冯占军博士认为,“如果这个中间件在开发过程中,有使用公司的工程师深度参与,提出需求并一起实施,会好一些”。
此外,殷玮在一篇文章提到,使用AUTOSAR这样的中间件,Tier 1们应该是很不情愿的,“因为不到增加了成本,还有可能逐步沦为硬件生产商”。但这个也不能说是中间件的锅,在软件定义汽车大大趋势下,这几乎是必然的。
二.常见的基本概念
1. AUTOSAR CP 与 AUTOSAR AP
在所有的中间件方案中,最著名的非AUTOSAR莫属了。
严格地说,AUTOSAR并非特指由某一家软件公司开发出来的某款操作系统或中间件产品,而是由全球的主要汽车生产厂商、零部件供应商、软硬件和电子工业等企业共同制定的汽车开放式系统架构标准。不过,在实践中,各公司基于AUTOSAR标准开发出来的中间件也被被称为“AUTOSAR”。
当前,AUTOSAR可分为Classic Platform和Adaptive Platform两个平台,两者分别被简称为AUTOSAR CP与AUTOSAR AP。
简单地说,AUTOSAR CP主要跑在8bit、16bit、32bit的MCU上,对应传统的车身控制、底盘控制、动力系统等功能,如果涉及到自动驾驶的话,AUTOSAR CP可能无法实现;而AUTOSAR AP主要跑在64bit以上的高性能MPU/SOC上,对应自动驾驶的高性能电子系统。
严格地说,AUTOSAR CP并不只是个“中间件”,它是相当于“OS内核+中间件”的一套完整的“操作系统”。 AUTOSAR CP定义了基本的上层任务调度、优先级调度等。
在基于分布式架构的ADAS功能中,AUOTSAR CP便是最常见的“操作系统”。在AUTOSAR的生态形成后,很多芯片厂商的MCU上标配的就是AUTOSAR CP,主机厂没有什么选择权。
由于分布式架构下的芯片主要是MCU,因此,便有了“AUTOSAR CP主要跑在MCU上”的说法。
在分布式架构下,不同的功能对应着不同的MCU,而每一个MCU上都需要跑一套AUTOSAR CP,若传感器的类型比较多,则仅ADAS相关功能就需要很多套AUTOSAR CP,那怎么收费呢?
常规的做法是:根据MCU的类型来收费——如果MCU是两个异构的MCU,那AUTOSAR CP就按两套来收费;如果MCU是同构的,那AUTOSAR CP就按一套来收费。
随着EE架构从分布式向集中式演进、芯片由MCU向SOC演进,计算量及通信量成数量级地上升,另外,多核处理器、GPU、FPGA以及专用加速器的需求,还有OTA等,都超出了AUTOSAR CP的支持范围。
(图片摘自安志鹏的直播课)
2017年,为更好地满足集中式架构+SOC时代的高等级自动驾驶对中间件的需求,AUTOSAR联盟推出了通信能力更强、软件可配置性更灵活、安全机制要求更高的AUTOSAR AP平台。
需要强调的是,不同于AUTOSAR CP自身已经包含了基于OSEK标准的OS,AUTOSAR AP只是一个跑在Lunix、QNX等基于POSIX标准的OS上面的中间件——它自身并不包含OS。
结合aFakeProgramer于2020年发表在CSDN上的《为什么要用AP?Adaptive AutoSAR到底给企业提供了一些什么?》一文及东软睿驰安志鹏在2022年春节前的一场直播中讲的内容,AUTOSAR CP与AUTOSAR AP最主要的区别有如下几点:
1).编程语言不同——AUTOSAR CP基于C语言,而AUTOSAR AP基于C++语言;
2).架构不同——AUTOSAR CP 采用的是FOA架构(function-oriented architecture),而AUTOSAR AP采用的则是SOA架构(service-oriented architecture);
3).通信方式不同——AUTOAR CP采用的是基于信号的静态配置通信方式(LIN\CAN...通信矩阵),而AUTOSAR AP采用的是基于服务的SOA动态通信方式(SOME/IP);
4).连接关系不同——在AUTOSAR CP中,硬件资源的连接关系受限于线束的连接,而在AUTOSAR AP中,硬件资源间的连接关系虚拟化,不局限于通信线束的连接关系;
5).调度方式不同——AUTOSAR CP采用固定的任务调度配置,模块和配置在发布前进行静态编译、链接,按既定规则顺序执行,而AUTOSAR CP则支持多种动态调度策略,服务可根据应用需求动态加载,并可进行单独更新。
6).代码执行和地址空间不同——AUTOSAR CP中,大部分代码静态运行在ROM,所有application共用一个地址空间,而在AUTOSAR AP中,应用加载到RAM运行,每个application独享(虚拟)一个地址空间。
这些区别,带给AUTOSAR AP的优势有如下几点——
1).ECU更加智能:基于SOA通信使得AP中ECU可以动态的同其他ECU同其他ECU进行连接,提供或获取服务;
2).更强大的计算能力:基于SOA架构使得AP能够更好地支持多核、多ECU、多SoCs并行处理,从而提供更强大的计算能力;
3).更加安全:基于SOA架构使得AP中各个服务模块独立,可独立加载,IAM管理访问权限;
4).敏捷开发:Adaptive AUTOSAR服务不局限于部署在ECU本地可分布于车载网络中,使得系统模块可灵活部署,后期也能灵活独立更新(FOTA);
5).高通信带宽:可实现基于Ethernet等高通信带宽的总线通信;
6).更易物联:基于以太网的SOA通信,更易实现无线、远程、云连接,方便部署V-2-X应用。
(图片摘自东软睿驰)
当然了,在某些方面,AUTOSAR AP与AUTOSAR CP相比是有一些“劣势”的。比如,AUTOSAR CP的时延可低至微秒级、功能安全等级达到了ASIL-D,硬实时;而AUTOSAR AP的时延则在毫秒级,功能安全等级则为ASIL-B,软实时。
上述区别也导致了两者应用领域的不同:AUTOSAR CP一般应用在对实时性和功能安全要求较高、对算力要求较低的场景中,如引擎控制、制动等传统ECU;而AUTOSAR则应用在对实时性和功能安全有一定要求,但对算力要求更高的场景中,如ADAS、自动驾驶,以及在动态部署方面追求较高自由度的信息娱乐场景。
尽管AUTOSAR AP有种种优点,但总的来说,它目前还不够成熟——主要是信息安全及UCM等模块不成熟。量产车上装AUTOSAR AP的不少,但主要用在娱乐场景,真正用在自动驾驶场景的还很少。
此外,由于SOC+MCU组合的现象会长期存在,因而,在今后相当长一段时间内,AUTOSAR AP都不可能彻底取代AUTOSAR CP——最常见的分工会是,需要高算力的工作交给AUTOSAR AP,而需要高实时性的工作则交给AUTOSAR CP。
(图片摘自超星未来)
2.ROS 2
ROS是机器人操作系统(Robot Operating System)的英文缩写,原生的ROS本是机器人OS,并不能直接满足无人驾驶的所有需求,用作自动驾驶中间件的是ROS 2。
ROS 2与ROS 1的主要区别如下:
(1).ROS 1主要构建于Linux系统之上,主要支持Ubuntu;ROS 2采用全新的架构,底层基于DDS(Data Distribution Service)通信机制,支持实时性、嵌入式、分布式、多操作系统,ROS 2支持的系统包括Linux、windows、Mac、RTOS,甚至是单片机等没有操作系统的裸机。
(2).ROS 1的通讯系统基于TCPROS/UDPROS,强依赖于master节点的处理;ROS 2的通讯系统是基于DDS,取消了master,同时在内部提供了DDS的抽象层实现,有了这个抽象层,用户就可以不去关注底层的DDS使用了哪个商家的API。
(3).ROS运行时要依赖roscore,一旦roscore出现问题就会造成较大的系统灾难,同时由于安装与运行体积较大,对很多低资源系统会造成负担;ROS2基于DDS进行数据传输,而DDS基于RTPS的去中心化的通信框架,这就去除了对roscore的依赖,系统的稳定性强,对资源的消耗也得到了降低。
(4).由于ROS 缺少Qos机制,topic的稳定性与质量难以保证;ROS2则提供了Qos机制,对通信的实时性、完整性、历史追溯等功能有了支持,这便大幅加强了框架功能,避免了高速系统难以适用等问题。
不过,ROS2的QoQ配置较为复杂,目前主要是国外一些专业的大学或实验室在使用,国内仅有极少数公司在尝试;此外,ROS 2的生态成熟度远不如ROS,这也给推广应用带来了不便。
跟AUTOSAR AP一样,ROS 2也是跑在soc芯片上、用于满足高等级自动驾驶的需求的。不过,萧猛在去年的一批文章中却特别强调:当我们称 “ROS/ROS2 为中间件”时,其含义与 “AUTOSAR AP为 中间件”并不是对等的关系。
萧猛的文章称:
当我们说 AutoSar是中间件时,这个中间件是很明确的 L.BSW层语义,即处于计算机OS与车载ECU特定功能实现之间,为 ECU功能实现层屏蔽掉特定处理器和计算机OS相关的细节,并提供与车辆网络、电源等系统交互所需的基础服务;
ROS/ROS2 是作为机器人开发的应用框架,在机器人应用和计算机OS之间提供了通用的中间层框架和常用软件模块(ROS Package),而且, ROS团队认为这个框架做得足够好,可以称作操作系统(OS)了。
ROS 2尽管在功能上跟AUTOSAR AP有不少重叠之处,但两者的思路是不一样的:
(1).从表现形式上看,AUTOSAR AP首先是一套标准,这个标准定义了一系列基础平台组件,每个平台组件定义了对应用的标准接口,但没有定义实现细节,和平台组件之间的交互接口(这些部分留给AUTOSAR AP供应商实现);ROS2则从一开始就是代码优先,每个版本都有完整的代码实现,也定义有面向应用标准API接口。
(2)AUTOSAR AP从一开始就面向ASIL-B应用;ROS 2不是根据ASIL的标准设计的,ROS 2实现功能安全的解决方案是,把底层换为满足ASIL要求的RTOS和商用工具链(编译器)。
ROS 2“过不了车规”似乎已成为一个很广泛的行业共识。但在萧猛看来,ROS2本来就不是为实时域设计的,如果一定要把实时性要求高的车辆控制算法运行在 ROS2中,“那是软件设计的错误,而不是ROS2的问题”。
萧猛认为,只要能补齐 L.BSW层所需要完成的所有功能、补齐 A 轴所有切面要求的特性,ROS 2就能用于自动驾驶量产车。如前段时间刚拿到采埃孚等多家巨头投资的Apex.AI公司基于ROS 2定制开发的Apex.OS就已经通过了最高等级的ASIL D认证。
萧猛说:“这实际上是基于 ROS 2的架构去实现一套 AUTOSAR AP 规范。这可以成为一个单独的产品,投入时间+人+钱可以开发出来,只是看有没有必要,值不值得”。
在具体的实践中,ROS 2跟AUTOSAR AP存在直接竞争关系——尽管对用户来说,并不存在严格意义上的“二选一”问题,但通常来说,若选了ROS 2,就不会选AUTOSAR AP了;若选了AUTOSAR AP,就不会选ROS 2了。
3. CyberRT
Cyber RT是网络Apollo开发出来的中间件,在Apollo 3.5中正式发布。Cyber RT和ROS2是比较像的, 其底层也是使用了一个开源版本的DDS。
网络最早用的是ROS 1,但在使用的过程中逐渐发现了ROS 1存在“若ROS Master出故障了,则任何两个节点之间的通信便受到影响”的问题,所以就希望使用一个“没有中间节点”的通信中间件来代替ROS 1,那时还没有ROS2,所以自己去做了一个Cyber RT。
为了解决 ROS 遇到的问题,Cyber RT删除了master机制,用自动发现机制代替,这个通信组网机制和汽车网络CAN完全一致。此外,Cyber RT的核心设计将调度、任务从内核空间搬到了用户空间。
(图片出处:https://blog.csdn.net/xhtchina/article/details/118151673)
其相对于其他系统,Cyber RT的一大优势是,专为无人架驶设计。网络已将Cyber RT开源,某互联网巨头的自动驾驶团队使用的中间件便是网络开源出来的Cyber RT。
Cyber RT跟ROS 2之间也存在竞争关系。
在谈到AUTOSAR AP、ROS 2与Cyber RT这些中间件的关系时,Vector产品专家蔡守群的解释是:
“不需要很机械地去分类,你可以把AUTOSAR AP, ROS和Cyber RT都想象成一个提供一组中间件的超市,用户可以按需从不同的超市购买,并不是说从一个超市买过一个中间件,就不能从其他超市买了。
蔡守群说:AUTOSAR AP中也包含了对ROS接口的支持。说不准哪天ROS和Cyber RT就会加入AUTOSAR AP的组件,或者 AUTOSAR AP会引入Cyber RT的组件。
4.DDS(通信中间件)
(1)什么是DDS?
在自动驾驶领域,中间件的功能涉及到通信、模块升级、任务调度、执行管理,但其最主要的功能就是通信。当前市场上,无论是Cyber RT还是 ROS,基本上90%的功能就是通信,狭义上说就是通信中间件。
通信中间可以分成开源和闭源的两种。开源的为OPEN DDS、FAST DDS、Cyclone等,闭源的就RTI的DDS和Vector的SOME/IP。DDS的全称为Data Distribution Service ,指一种数据分发服务标准,由对象管理组织(OMG)制定。
DDS能够实现低延迟、高可靠、高实时性的数据融合服务,能够从根本上降低软件的耦合性、复杂性,提高软件的模块化特性。高等级自动驾驶现在基本上都在探索依靠DDS来解决异构通信、低时延等CP解决不了的挑战。
融合了DDS的汽车软件能够更好地运行在下一代汽车的体系架构中,更能降低开发的成本、缩短研发的时间,更快地将产品推向市场。
(2)DDS与ROS 2、AUTOSAR AP之间的关系
ROS 2和Cyber RT的底层都使用了开源的DDS,将DDS作为最重要的通信机制。但也有自动驾驶公司的工程师认为,DDS可以起到替代ROS 2的作用,站在用户的角度看,两者之间其实存在“二选一”的关系。
AUTOSAR CP里一直没有包含跟DDS有关的东西,但AUTOSAR AP在 2018年3月的最新版(版本18-10)里开始支持DDS标准。将DDS与AUTOSAR AP结合使用,不仅可以保证和扩展AUTOSAR AP系统内部互操作性的功能,而且还可以将其开放给来自不同的生态系统(即ROS 2)。
从工程角度来看,将AUTOSAR和DDS结合起来的最大优势是,功能域和网络拓扑不再是对手,而是车辆中的盟友。网络拓扑结构能够更好地适应车辆的物理约束,功能域在物理车辆的顶部提供了一个灵活的覆盖层,这就是所谓的分区体系结构。
当然,DDS仅是通信中间件的一种。关于各类通信中间件之间的异同,我们将在本系列的第二篇做更详细的阐释。
三.AUTOSAR AP的地位正在弱化?
尽管AUTOSAR是当下最有名的自动驾驶中间件,但《九章智驾》在对诸多中间件厂商们的调研中得出一个结论:AUTOSAR在产业链中的地位可能正在弱化。 当然了,那些专注于AUTOSAR系统的厂商们并不认同这一观点。
我们在上文已经提到,随着EE架构从分布式向集中式演进、MCU被SOC取代,CP AUTSAR被AUTOSAR AP、ROS 2和Cyber RT等取代已是大势所趋,在下文,我们主要谈的是“AUTOSAR AP的地位会不会弱化”。
2021年12月中旬,两家AUTOSAR发起公司大陆集团、丰田联合采埃孚、捷豹路虎、沃尔沃、海拉等多家汽车行业龙头企业宣布投资车载操作系统初创公司Apex.AI,而Apex.AI的主力产品Apex.OS则是基于ROS 2发展起来的。
拿到了Apex.AI公司15%股权的采埃孚方面在接受媒体采访时说:“这意味着,我们可以为客户提供AUTOSAR AP的替代方案。”
尽管AUTOSAR AP已经有了标准,但还没有落地。安波福、采埃孚、大陆这些公司提供的方案,仍然是基于AUTOSAR CP标准的接口。事实上,越来越多的OEM不太想完全用AUTOSAR去解决智能驾驶操作系统的问题。
不仅特斯拉没有用AUTOSAR AP,国内的几大造车新势力也没有用(他们用的是AUTOSAR CP+DDS)。甚至,连一些正在转型的传统车企也没打算用AUTOSAR AP。
从产业链中各方的反应来看,AUTOSAR AP“地位不稳”的原因主要有以下几个:
1.使用成本太高
冯占军博士在《AUTOSAR对基础软件开发是喜还是忧?》一文中透露,AUTOSAR的费用通常是“几百万起”,并且,针对不同的域控制器、不同的芯片需要“重复收费”,一般小厂根本吃不消。“可能还没有什么产出,几百万就花出去了”。
除购买成本高外,毕晓鹏和萧猛都提到,AUTOSAR前期的学习难度很大、学习成本也非常高。为了学会如何使用AUTOSAR,企业甚至不得不专门培训一批人,如果受培训的人临时离职了,那培训费用就打了水漂。
2.效率不高
毕晓鹏认为,AUTOSAR AP的配置非常多,它是通过配置加上一部分代码去实现自己的功能,但配置多了之后,效率不高,而且代码臃肿。
3.静态部署与动态部署的理念冲突
毕晓鹏博士提到,AUTOSAR AP其实是从AUTOSAR CP发展而来的,AUTOSAR CP是静态部署,只适用于相对简单的业务逻辑和功能,其代码是固化的,有点像以前的功能手机——功能无法改变,不可能往里面再加一个APP;但AUTOSAR AP有点像现在的智能手机,软件开发人员开发一个APP,跨平台就可以用不同手机上了,这种动态部署的理念和之前的静态部署概念不甚相同,而其方法论却是基于静态部署衍生而来的,因此在实践层面会遇到不少问题。
4.无法满足智能网联的需求
由于云端跟车端所使用的操作系统不一样,AUTOSAR只能负责车内的通信,不能支持车端到云端的通信,因而无法支持车路协同场景(车端跟云端的通信,是通过MQTT、kafka等中间件来实现的)。除此之外,AUTOSAR能否兼容车辆网联化中需要用到的数据平台、通信平台和地图平台,也存在很大的疑问。
毕晓鹏说,在发现了这些问题后,有一些OEM开始逐渐放弃AUTOSAR架构,“转而自己去研发一套更适合动态部署、成本较低的新型软件架构”。
传统车厂是从使用CP过来的,所以在惯性上,他们可能还会考虑AP是否适合智能驾驶,但慢慢地也在尝试转型。如奥迪和TTTech合作做的通信中间件——zFAS,也没有采用AP。
不同于AUTOSAR CP已经是非常标准化的东西,大家用起来没什么问题,AUTOSAR AP现在的标准也不是很完善,每年也在更新,具体AP能发展成什么样,这个谁也不知道,大家更多也是观望的态度。
毕晓鹏认为,AUTOSAR标准并不能很好地支撑自动驾驶应用和创新的发展,因此,我们有必要建立一套更适合中国智能驾驶发展、且自主可控的技术架构和生态体系。
萧猛认为,由于从AUTOSAR CP到AUTOSAR AP一脉相承,一些已经对AUTOSAR形成路径依赖的公司会坚持使用AUTOSAR AP,但在经历过招人难、开发周期长等教训之后,他们有可能转向ROS 2。
当然,以AUTOSAR为主业的公司,显然不会认可上述“涉嫌唱衰”AUTOSAR AP的观点的。
比如,Vector蔡守群就认为,AUTOSAR AP只会越来越重要,因为它是顺应车载技术不断发展的一套规范,覆盖面会越来越广。
东软睿驰茅海燕也认为,要将整车域控制器和智驾域控制器合并到统一的中央计算平台上,没有AUTOSAR AP的支持很难搞定。“不是每家公司都能像特斯拉一样自己从头搭建系统的,目前,最好的工具还是AUTOSAR AP”。
『贰』 区块链里程碑是什么
区块链技术服务的意义是什么?意义有三个:
1.帮助企业更高效的解决业务痛点,更从容地应对复杂业务以及更快速地跟踪市场变化。
2.而区块链技术发展的两个标志性里程碑,Bitcoin和Ethereum/Fabric项目的发布,将其去中心化,安全不可篡改的属性带入大众视野,使很多业务问题的解决从不可能变为可能。那又为什么是企业级区块链呢?
3.近几年我们将市面上主流的区块链技术平台做了一个详细的技术对比,发现这些平台在企业中应用还有很多问题,只有企业级区块链才能应对如此海量的数据,承载复杂的业务体系。人人链正在做的企业级区块链云服务平台正是为了解决这些问题,通过一站式集成、持续交付、数据可视化以及支持多底层来帮助企业实现开箱即用。
Singularity区块链游戏王国
Metatron作为区块链技术的领域新的里程碑,在区块链1.0的数字货币时代和区块链2.0数字资产与智能合约时代的技术成熟前提下,基于区块链3.0时代,将发展区块链大社会的生态,使其去中心化和数据防伪功能在其他领域逐渐得到更加广泛地应用。
Metatron项目方早已意识到,区块链的应用是不应该局限于金融领域的,而是可以拓展到任何有需求的领域中去。其中最前沿的场景便是游戏平台领域。而Singularity便是一颗冉冉升起的明星现有的Singularity是一个以加密货币生态系统的形式发展,将贸易、投资、社交平台、市场和加密货币成功结合在一起的平台,目的在于打造链接数百万人以管理加密货币市场的国际社区。《singularity》游戏是Metatron生态中重要项目之一。其中文名为奇点,是由多位计算机工程师经过核算和根据真实区块链数据,运用辗转相除法推演出的一款集娱乐、投资理财为一体的游戏。
Metatron创新引入OCPC到奇点游戏,为游戏搭建强大的造血功能,游戏收益长久且稳健,根据时间周期和市场团队,会有一定的波动。每一个游戏玩家就是一个节点,相当于一台超级智脑中的一块CPU,通过游戏产生区块,生成虚拟数字资产,可以通过交易所进行交易。游戏画面精美流畅,玩法简单易上手。通过MTM解锁、升级岛屿和建筑,即可开始游戏,还有多种道具助力互动机制,收获更多惊喜与收益。
单独做游戏是无法满足未来需求的,游戏平台建设则是攻城略地首选。普通的游戏平台机制存在封闭的缺陷,在传统技术条件下,即使是互联网也会存在地区国别的限制。例如,跨区消费不便,欧美区只能由美元购买,国内外的用户无法直接通过简单的对接进行交易,常常需要多重中介。其次,游戏平台建设中总会因为技术条件的限制,数据流的篡改使得在用户不知情的情况下玩家作弊总无法避免。另外,游戏平台中,金融化程度开发较低,装备的交易十分麻烦,有的游戏根本就不支持,而游戏本身也只能通过法定货币的方式进行销售。再者,很多独立开发者是游戏的创造者,即使拥有良好的创意和开发平台,但因为缺少开发资金而难以制作游戏,游戏分发平台缺少对他们的支持。
但是Metatron旗下的Singularity平台却一举解决了诸多难题。用户可通过玩游戏、看广告免费获得生态代币MTM。MTM可用做游戏生态建设初期通用凭证。
Singularity其特色在于AI系统拥有自己的多币种钱包,可以存放各种数字货币,包括比特币、以太坊等等。钱包支持美金充值,对接美金第三方支付,如PerfectMoney、Advcash等。系统内部“SingularityExplorer”模块,可以非常方便舒适的实现MTN以及其他数字货币的交易转换。建立投资组合之后,拥有一套非常完善而且严谨的市场奖励计划,每天可以获取利润分红,并且可以当天提现,到账迅速。在metatron的强大生态平台支撑下,提供给游戏开发商和消费者的对接服务使得沟通诉求得到了前所未有的释放。
所以说,它近乎完美,与生俱来就已经攻克了现有平台的在安全属性不高,金融性较低,用户之间沟通较为闭塞等方面的缺点,就像一个绿洲,能在满足安全合规的前提下,肆意奔跑。
总的来说,人类需求日益迫切的现代互联网社会,一个全新的数字记录系统,必然就有着非凡的意义。作为最新一代的虚拟货币的应用,其开阔的前景,正致力于建设美好的货币世界,并鼓励和倡导虚拟货币在新技术经济环境下的创新与发展。
不发币、不碰ICO,蚂蚁链靠什么引发最大规模产业上链潮?本文授权转载自品玩
不知道什么时候开始,区块链变成了一系列庞大数字的集合体。动辄数万亿美元的资产,数以十亿计的节点和数亿的用户,让这个诞生十余年的新型技术,俨然成为了全球IT业和媒体眼中的庞然大物。
一个没有参与过DeFi,没有研究过DAO,没有在咖啡馆聊几句web3,都似乎成为了互联网人职业生涯的一种罪过。就好像一个20世纪的英国士兵,没有踏上过大陆;或者19世纪的西班牙水手,没有登上过美洲一样,没有接住上帝给予这份职业的慷慨。
在即将过去的六月里,区块链世界里发生三件有意思的事情。也许很多年后再回顾,区块链技术发展史上的里程碑就暗含在其中:
美联储加息,带崩了一众加密货币,尤其既5月中旬被看做是稳定币的Luna被几乎价值清零之后,比特币价格在6月加速下跌,整体跌去了超过75%;
6月23日,全球势头最盛的区块链Solana,在社交媒体上官宣,表示要推出web3的智能手机“Saga”及定制的web3手机操作系统、Dapp应用商店;
这两件web3世界的大事,被认为是在“熊市”来临之时,软件与硬件、应用泡沫与底层设计之间的一次势力切换。遭遇重创的web3们,要“洗心革面”向更务实的消费者应用出发,去获得更多真实的、有价值的客户。而这种由虚向实、持续向实体要价值的行为,或许将成为区块链度过潜在“熊市”的出路之一。
在上述区块链世界的背景下,第三个事件就显得颇具深意:
6月24日,中国最大的区块链技术平台,蚂蚁集团旗下的蚂蚁链宣布,其“物理设备”的上链规模已经突破了500万台。
这是全球范围内,产业区块链中“物理资产”“首次”实现如此大规模的上链,也是“物理资产”规模化的一次前所未有的突破。在此之前,从来没有人能做到物理设备如此大规模的在链运转。
没错,500万。
你已经有多久没有在web3世界的技术新闻里,听到500万这样级别的数字了?回顾web3的发展历史,上一次比特币用户突破500万还是在2017年;而如今,这个数字已经超过了2亿。其中像韩国这样的国家,加密货币在年轻人总人口中的用户比例也超过了20%。甚至一些大DAO组织、Dapp应用,都已经接近甚至超过这个数字了。
但区块链技术在产业端的发展,与在消费者端不同。后者因为加密货币的加持,“其兴也勃焉”,而前者需要了解产业的痛点、需要一个场景一个场景的推进,要下苦功夫,进入大规模商用难度更大。
这次这个产业区块链的第一个500万,可以说是一个里程碑式的数字。这意味着物理资产上链通过了规模化验证——区块链的一扇新门打开了。
孤独的产业区块链
首先,产业对于细分场景的要求是很高的,这意味着服务商就很难以同一套标准化的技术手段去满足各行各业的所有需求。而无论是DeFI、DAO(注:去中心化自治组织),都可以用一个通用型的技术模型来应付足够大的需求场景。
但对于产业区块链来说,有些时候一个专门的行业场景定制化,就需要耗费大量的时间精力。以蚂蚁链与奇瑞的合作为例,由于设备内存和带宽的需求,蚂蚁链需要将代码的内存资源,从300KB压缩到1.5KB,才能符合“车链”的要求。
这种“将大象塞进冰箱”级别的“变态”代码优化需求,对于区块链货币等开发者来说,是难以想象的。这也从侧面可以说明,在产业区块链中,跨链、跨设备的通用交互难度会有多大。
其次,产业对于链条的安全、稳定、经济的要求都是极高的。这在过去几乎就是一个“不可能三角”。
以比特币为例,全球各大矿场为了维护比特币世界的连续稳定可靠,每年要为这套2100万个货币的加密系统,耗费超过149太瓦时的电。如果比特币是一个国家的话,它的耗电量与越南相当,大概在全球排名第25位,相当于1.5个三峡大坝的发电量。如果按照我国8毛钱一度的社会电价均摊,一年需要1200亿人民币成本。
对于比特币来说,只要有人埋单,游戏就可以继续。但对于产业区块链来说,绝不可能找到任何一个市场主体为这么疯狂的运维成本埋单,即便有也不符合产业减碳的社会责任。刚性的成本收益,就是横在产业区块链头上的一道红线。
此外,产业对于加密的要求也非常谨慎。这是一个非常沉重的信任,因为区块链背后意味着去中心化的计数方式,一旦系统被心怀不轨的黑客攻破,将带来复杂的损失。公司以此建立的经济模型可能会出现漏洞。
这就意味着,不同于区块链货币分散在不同终端设备上的钱包,平台更多只用专注于算法。产业区块链公司除了在算法方面需要加强加密能力,还需要在信息采集建模、终端的计算设备、信息传输等全套设备做好加密服务。而这其中的每一个环节,又都是一个不小的、定制化的工程。
涉及到复杂的硬件场景本身就是个麻烦事儿。还是以汽车为例,车机内部有复杂的电子元器件带来的干扰,同时还要兼顾车辆部件在行驶过程中的温控条件。
总之,区块链产业无论是实际落地难度,还是前期的技术投入成本,都与区块链货币不在同一个等级上;但对于平台的收益来说,却只有一个后者的一个零头。大家都知道,将区块链技术用在产业的数字化升级上是“科技向实”,是一件正确的事,但大家更清楚,这也是一件艰难的事。
区块链中的“孤勇者”
“产业区块链”难做的一个直接后果,就是很多顶尖人才都流向web3了。有数据统计,2021年大约有3.4万名开发者加入到DeFi中,其中不乏有谷歌、苹果、脸书等头部互联网公司的员工全职加入。
相比于web3的百花齐放,产业区块链的动态显然是有点冷清了。一方面很多大型科技公司看不上这些不赚钱的“脏活累活”,另一方面初创团队又难以支撑起巨大的沉没成本和昂贵的市场教育费用。在全球范围的产业区块链领域,至今也没有什么像样的独角兽。
然而产业区块链虽然困难重重,但是产业端问题却不会因为开发者的逃离而消失。
在很多产业场景中,区块链依然是被视作打通产业中数据壁垒的最佳解决方案。
以商品的物流体系为例,我国几乎兼有着全球最细分的制造业基地与全球最复杂的商品流通市场。这种“复杂性”一方面当然是零售业态的多样性的结果,另一方面也要归咎于流通信息的不透明。一件产品从原材料、厂家、经销商、物流商、销售终端,其全链路的数据是断开的,在各个节点形成了细碎的信息孤岛。每年大的消费品牌商都要花费上千万的咨询费,去获取由笨重人工成本所获得的颗粒度很粗的中国零售数据。
毕竟任何一个中心化的数据中心,都没有办法解决如此复杂的数据流通问题,但产业区块链可以做到。
又或者以我国大能源产业网络为例,电网本身就是一个超级庞大的分布式计算系统,尤其是近年来我国着重发展分布式光伏发电产业以来,这种分布式的趋势会更加增强;另一方面,在使用端,新能源汽车、换电站、超充桩、电池所形成的新兴消费网络也天然是一个分布式的形态。
这其中的参与主体、数据类型都纷繁复杂,最好的方式自然是用分布式的计算网络去应对分布式的算力需求。
从商业常识的角度来说,大问题与大机会常常是划等号的。又或者源自一个中国IT人很朴素的理念,毕竟问题摆在那里,总要有人去做的。尽管这种坚守,相比于web3的大潮汹涌,显得有点孤独,这可能是一个逃不掉的必然。大概就像某位商业大佬流传甚广的一句名言:
“孤独有些时候价值连城”。
所以依然有很多中国的产业区块链公司在坚守,洗去了估值神话的光环,他们在共同等一个明天。
这次被披露的“蚂蚁链”超过500万物理设备上链的里程碑,其实就是专注在新能源产业中的“上链”,覆盖新能源车、太阳能光伏、新能源电池等多个产业。在顶级产业链上,建立顶级的产业区块链,这或许是未来中国区块链产业的重要趋势。
显然,“蚂蚁链们”正在尝试接下了时代交给自己的这一棒。当哥伦布发现美洲大陆的时候,去美洲最多的人是试图殖民和淘金;但哥伦布自己,却执着地去探索了中美洲、又在第三次航行中发现了南美洲。
哥伦布可能不是那个时代最富有的人,但却是世界会记住的名字。
为什么是“蚂蚁链”
很多人不知道的是,蚂蚁集团已经连续多年是全球区块链行业最大的专利输出者。一方面,蚂蚁确实在区块链上有很坚定的投入;另一方面,这也和蚂蚁链要做的事情确实很多不无关系。
如果你仔细了解“蚂蚁链”,你可能会惊叹于这家公司的全方位、无死角的投入,几乎以一己之力在“产业区块链”的低谷时期,在行业中孤身种植了一片大森林。这大概就像刘瑜所说的,“把一个人活成一支队伍”。
蚂蚁链之所以能够率先完成500万物理设备的上线,就离不开这种全方位的技术布局能力。
比如物理设备上链,中间会涉及到很多IOT技术的通信协同。
而早在2021年6月,蚂蚁链推出首批无线通信模组AntChainMaaS,通过基于设备唯一特征的可信根,让终端设备自动连接区块链,并进行全流程加密。7月,蚂蚁链方面又接着发布了高速通信网络BTN(BlockchainTransmissionNetwork),成为一种高吞吐量、低带宽成本的区块链“高速公路”。
这种数据可信上链的技术、大宽带条件下的吞吐能力,基本为后来大规模的物理设备上线做好了前期的通信准备。
不过这只是蚂蚁链众多技术储备中的一个小试牛刀。
而这些成就和创新技术,都是在“产业区块链”被大众忽视的2021年中达成的。这些在底层技术上的投入,一方面帮助了蚂蚁链在全球范围达成第一个“物理设备”500万上链的成绩;另一方面,也预示着500万也只是一个开始,就像2017年的比特币一样。
所以,当人们还在讨论Solana等新公链,相比于比特币和以太坊有什么带宽和延展性优势的时候,蚂蚁链已经做到了双十亿级别的上链能力——支持10亿账户规模、支持每日10亿交易量、实现每秒10万笔跨链信息处理能力(PPS)
而当黑客在攻击普通用户的比特币钱包,而web3至今没有硬件方案,而对此无能为力的时候。蚂蚁链已经从系统架构、终端、再到芯片,重新设计了一整套的产业互联网的加密系统。
而在这个过程中,这个全球最大的区块链专利输出者,没有支持过一个ICO、没有发过一个币。他们站着就把产业区块链给做了。
其实区块链本身就是一个基于信任而产生效率的事情,正如蚂蚁链负责人蒋国飞反复对媒体说的,“区块链是一种深层次的信任连接技术,(它的使命)是各行各业更好的链接与全新的价值流转。”
这是区块链的第一个500万,却是一个完全不同于过去认知的500万,它是一群孤独的中国IT人打开未来产业的一扇门。
里程碑指的是什么?里程碑指的有三种意思:
1、一般是指建立在道路旁边刻有数字的固定标志,通常每隔一段路便设立一个,以展示其位置及与特定目的地的距离。昔日里程碑是一块石碑,现在大多改用金属板。马路、山路、铁路均可能会设有里程碑。
2、里程碑一般是项目中完成阶段性工作的标志,标志着上一个阶段结束、下一个阶段开始,将一个过程性的任务用一个结论性的标志来描述,明确任务的起止点。一系列的起止点就构成了引导整个项目进展的里程碑。里程碑定义了当前阶段完成的标准和下一新阶段启动的条件和前提。
3、里程碑的另一种含义,是指某种重大标志性事件,或发生某种特定意义的典型事件,或具有开创性意义的重大事件,或具有重大学术理论意义的公认事件等。
里程碑时间界定
里程碑可用于工厂“问题解决”中的工作计划,也就是说对负责人的时间节点的界定。提醒团队中的成员遵守原则,注意自己工作计划中的节点。
里程碑在项目管理过程中的定义为一个状态点,代表在此时间点能够达到此状态,并非一个时间段。在项目计划的历时(ration)中通常标识为0天(days)。
什么可谓区块链发展的里程碑智能合约。
智能合约是基于这些可信的不可篡改的数据,可以自动化的执行一些预先定义好的规则和条款,允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于1995年由NickSzabo首次提出。智能合约的目的是提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。
(2)除法算力怎么写扩展阅读
数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。
更进一步地说明:
(1)达成协定
智能合约的参与方什么时候达成协定,答案取决于特定的智能合约实施。一般而言,当参与方通过在合约宿主平台上安装合约,致力于合约的执行时,合约就被发现了。
(2)合约执行
“执行”的真正意思也依赖于实施。一般而言,执行意味着通过技术手段积极实施。
(3)计算机可读的代码
另外,合约需要的特定“数字形式”非常依赖于参与方同意使用的协议。
『叁』 什么x20=780
应该就是780÷20=39…
利用除法计算。
『肆』 一道数学题,让芯片巨头亏了5亿美金
1993年,CPU 巨头Intel推出了Pentium处理器。
新的品牌顺利地摆脱了AMD等公司对286,386,486等数字系列的品牌“抄袭”,树立了全新的领先者的形象。
再加上90年代初斥巨资成功推进的Intel Inside计划, Intel 成功地从一家主要向电脑制造商供货的公司,转变成一家直接面向消费者的品牌。
不知道哪位天才把Pentium翻译成霸气的“奔腾”,真是惊艳全场的神来之笔。
新产品,新品牌,Intel 可谓意气风发,准备一统天下。
但谁也没想到的是,这个被寄予厚望的CPU内部居然隐藏着一个Bug!
Bug被发现的过程也颇为传奇,我们得从数学上的一个概念说起。
早在希腊时代,欧几里得就已经证明质数有无穷多个,并且数字越大,质数分布得越稀疏。
神奇的是,尽管分布得很稀疏,但只要出现一个质数,就可以在附近找到另外一个, 例如41 和 43、101 和 103、10007 和 10009,他们之间相差都是2。
数学家给这些相差为2的连续质数起了一个名称: 孪生质数。
1919年,挪威数学家 Viggo Brun证明了一件有趣的事情,就算有无穷多的孪生质数,它们倒数的和会收敛于一个常数,这个常数被称为“ 布朗常数 ”。
但是让数学家头疼的是:他们不知道这个布朗常数是不是无理数。
随着计算机的出现,有些人就想到一个招数:用计算机强大的算力,暴力求解。
美国 Lynchburg College 的数学教授Thomas Nicely就是其中的一员,他的实验室恰巧装备了新的奔腾计算机。
严谨的Nicely为了防止算错,用了两种算法做双保险,如果答案不同,肯定是某个地方出了问题。
Nicely满怀希望地开始了计算,可是结果让他失望:两种算法的结果真的不一样!
深入研究以后,Nicely发现:824 633 702 441和824 633 702 443这两个孪生质数,它们的倒数的小数点后的第10位被算错了!
Nicely换了一台老旧的486电脑来计算,答案算对了。
他再用奔腾电脑来重新计算,错误重现。
到底是自己的程序写错了?还是电脑的问题?
Nicely开始做排除法, 排除自己代码的错误,Borland编译器的错误,芯片组的错误,花了整整4个月的时间 ,终于找到了Bug的起源地: 奔腾CPU 。
1994年10月24号,Nicely打电话给Intel的技术支持部门,告知他们这个问题,Intel说几天内就会有回复,但是从此杳无音信。
原因很简单,Intel早在1994年6月就知道了这个问题:浮点除法运算(FDIV)出错。
奔腾CPU的FDIV引入了一种全新的、快速的实现方法,使用了一个2048项的硬件查找表,但是由于意外,有5个值没有被正确地设置,他们本应该是2,但是却设置成了0。
这个Bug只有在高精度计算的时候才会被触发,普通用户很难碰到,Byte杂志估计,出错的概率是90亿分之一。
既然影响不大,Intel的选择是:隐瞒,悄悄修复,不公布任何细节。
毕竟已经售出几百万片CPU了,大规模召回损失太大。
又不是不能用!
收不到回音的Nicely很不爽,10月30号,他开始给一些IT著名人士和杂志发邮件,包括Byte杂志,PC Week,InfoWorld,PC Magazine。
这件事情很快在网络上发酵,一大批牛人开始了问题定位的接力赛:
第一棒选手是上面提到的Nicely。
第二棒则是挪威的Terje Mathis,他很快确认了Nicely的问题,并且写了一个简单的汇编测试程序,发到了comp.sys.intel新闻组中(没错,那时候别说社交网络了,就连BBS还不流行)
第三棒是德国的Andreas Kaiser ,他找到了24个数字,它们的倒数在奔腾CPU只能得到单精度的结果。
第四棒是一位设计FPU(floating-point-unit)的专业人士,加州Vitesse半导体设计师Tim Coe。
他根据24个数字的线索,推测出奔腾CPU采用了基数为 4 的 SRT 算法,每个时钟周期可以生成两位的商,使得速度比原来快两倍。
事实也确实如此,内部专业人士的确厉害。
到了第五棒,一个超级大牛出现了,MATLAB之父:Cleve Moler
Moler总结了之前的数据,找到了Bug的规律。
可见犯了错误以后,想捂是捂不住的,你越想捂,这世界上越有人要把你扒个底朝天。
但是到目前为止,Intel奔腾这个硬件Bug还主要在 科技 圈中转悠,破圈还需要等待一个重要时刻。
1994年11月24号,JPL(喷气推进实验室,钱学森是重要创始人)有两名工程师得知了这个Bug,建议实验室停购奔腾电脑。
奔腾CPU这个本来很难出现的Bug一下子成为街头巷尾的热议话题。
在媒体的重压之下,Intel终于承认了浮点计算的漏洞,但依然嘴硬,它声称并不严重, 并且只给那些能证明自己受到影响的用户更换CPU 。
这种想蒙混过关的处理态度引发众怒,动摇了消费者对Intel CPU的信心。
其他厂商也顺时而动,IBM暂停销售装有Intel CPU的个人电脑,导致Intel股票大幅下跌。
1994年12月,撑不住的Intel终于宣布:召回所有有缺陷的处理器。
这也是 历史 上第一次全面召回计算机芯片。
Intel为此付出的代价是:4.75亿美元,名誉的损失更是难以估量。
故事到此并没有结束。
照理说硬件出了问题,无法修改,只能替换。
但是不要忘了我们刚提到的那一群天才,MATLAB之父Cleve Moler ,Tim Coe,阿贡国家实验室的 Peter Tang 以及来英特尔的几位工程师,他们通力合作,在12月5号居然开发出了一个非常巧妙的软件修复办法。
细节这里就不赘述了,大概是:在特定情况下,将被除数和除数都乘以15/16,就可以进入安全状态。
这个修复办法被发到新闻组中,让所有人免费使用。
精明的Cleve Moler让公司发布了一个可以检测和纠正除法错误的MATLAB版本,并且立刻发了一个新闻稿《MathWorks修复了Intel奔腾浮点数Bug》。
就在奔腾的Bug闹得沸沸扬扬,全国知的时候,新闻稿出现在了美国各大媒体的传真机上。
Cleve Moler成功地实施了一次完美营销,这一年,他的公司MathWorks只是一家不到250人的小公司,随后便走上了快车道,成为这一领域的巨头。
『伍』 三位数除以一位数口算
三位数除以一位数口算如下:
60÷2=30
第一种算法:60看作6个十,把6个十平均分成2份,每份是3个十,3个十就是30.
第二种算法:先算6÷2=3,60÷2=30.这种算法也是把60看作6个十,这种算法的算力就是第一种算法。
口算除法:
一、整十、整百数或几百几十数除以一位数的口算方法:
(1)利用表内除法口算:用被除数前一位或前两位的数除以一位数,算出结果后,被除数的末尾还剩几个0,就在上的末尾添几个0。
(2)利用“相乘法算除法”口算:想一位数乘几等于被除数,乘几商就是几。
(3)利用数的组成口算。
二、两位数除以一位数的口算方法:
(1)利用“相乘法算除法”口算:想一位数乘几等于被除数,乘几商就是几。
(2)利用数的组成口算:先把被除数分成一个整十数和一个一位数,再用分成的两个数分别除以除数,最后把两次除得的商加起来。
『陆』 三位数除以一位数口算
三位数除以一位数口算如下:
60÷2=30
第一种算法:60看作6个十,把6个十平均分成2份,每份是3个十,3个十就是30.
第二种算法:先算6÷2=3,60÷2=30.这种算法也是把60看作6个十,这种算法的算力就是第一种算法。
口算除法:
一、整十、整百数或几百几十数除以一位数的口算方法:
(1)利用表内除法口算:用被除数前一位或前两位的数除以一位数,算出结果后,被除数的末尾还剩几个0,就在上的末尾添几个0。
(2)利用“相乘法算除法”口算:想一位数乘几等于被除数,乘几商就是几。
(3)利用数的组成口算。
二、两位数除以一位数的口算方法:
(1)利用“相乘法算除法”口算:想一位数乘几等于被除数,乘几商就是几。
(2)利用数的组成口算:先把被除数分成一个整十数和一个一位数,再用分成的两个数分别除以除数,最后把两次除得的商加起来。