精华内容
下载资源
问答
  • 全书共分16章。第1章主要介绍了Unity 3D的诞生、特点、开发环境的搭建及运行机制...第16章介绍了完整的大型3D游戏案例间足球(由于文件157M较大,直接发的分享,如果链接失效,请私信补链接,看到后会补充链接的)
  • 从10个经典工业设计案例来看什么是工业设计,很多人都知道工业设计这个词,但是却不知道工业设计到底是设计什么的。说到这个话题,首先让我们来看一下工业设计的定义(理论知识很枯燥,看完你也是云里雾里,建议直接...
    从10个经典工业设计案例来看什么是工业设计,很多人都知道工业设计这个词,但是却不知道工业设计到底是设计什么的。说到这个话题,首先让我们来看一下工业设计的定义(理论知识很枯燥,看完你也是云里雾里,建议直接跳过,滑到下面看看为大家总结的10个工业设计案例)

    1970年国际工业设计协会ICSID(International Council of Societies of Industrial Design)是这么解释的:
    工业设计,是一种根据产业状况以决定制作物品之适应特质的创造活动。适应物品特质,不单指物品的结构,而是兼顾使用者和生产者双方的观点,使抽象的概念系统化,完成统一而具体化的物品形象,意即着眼于根本的结构与机能间的相互关系,其根据工业生产的条件扩大了人类环境的局面。

    1980年国际工业设计协会理事会ICSID给工业设计重新定义:
    就批量生产的工业产品而言,凭借训练、技术知识、经验及视觉感受,而赋予材料、结构、构造、形态、色彩、表面加工、装饰以新的品质和规格,叫做工业设计。根据当时的具体情况,工业设计师应当在上述工业产品全部侧面或其中几个方面进行工作,而且,当需要工业设计师对包装、宣传、展示、市场开发等问题的解决付出自己的技术知识和经验以及视觉评价能力时,这也属于工业设计的范畴。

    到2006年国际工业设计协会理事会ICSID又给出自己的声音:
    设计是一种创造活动,其目的是确立産品多向度的品质、过程、服务及其整个生命周期系统,因此,设计是科技人性化创新的核心因素,也是文化与经济交流至关重要的因素。

    这么多理论知识,相信大家看的挺枯燥乏味的。就算你给出那么多解释,我还是听的云里雾里。没关系,今天共享吧小编为大家总结了10个经典的工业设计案例,看完你一定会惊呼:哇!原来它们全都运用在我身边!

    一、带橡皮擦的铅笔


    虽然这个产品我们已经见多不怪了,但是请千万不要小看这项产品。在1858年发明这个产品之后,从社会意义和经济效益上讲,这样的小改动取的了极大的成功。这个产品将常用的两种功能巧妙地结合在了一起,而成为热卖的卖点,易用性不言而喻。


    二、椭圆形孔的日式绣花针

    穿针引线是一个细致活儿,而有了这个椭圆形孔之后,这个工作就变得轻松了许多。这个设计取得的成功,是实实在在的方便,也是工业设计能带给人们的好处。而这款日式绣花针,在很长一段时间垄断了中国绣花针的市场。因为从工艺上讲,当时的中国只能生产圆孔的针孔。

     

    三、会“叫”的水壶

    如今的开水壶在水烧开之后会“鸣叫”这似乎是司空见惯的事情嘛,但是,这款设计最早使于1985年,由设计大师迈克尔格雷夫斯设计。这件作品产生于波普运动时期,其经典之处在于壶口的位置安装了一个小哨子,当水烧开时,小哨子就自然发出鸣叫,引起使用者的注意,从此不再担心烧水的顾虑了。 创新不止在形态的创新,功能与形式的结合也从另一方面诠释了工业设计。

     

    四、0系列剪刀

    及其符合人机关系的剪刀设计,改善了人们长时间使用剪刀的痛苦。 充分注重人机交互的设计,也是工业设计的一个重要方面。

     

    五、可口可乐玻璃瓶

    工业设计能够拉卡商品之间的差别,其意义是品牌的命脉和精髓。 可口可乐的玻璃瓶,设计大师罗维通过造型的设计,铸就了这样一个经典的形象,塑造了完美的可口可乐形象。

    六、IMac全套彩虹系列电脑

    色彩的、新鲜的、透明的、明了的。这是苹果IMac全套彩虹系列带给我们的感受。

     

    七、贝伦斯设计的风扇

    形式追随功能的一个典型代表工业设计作品,工业设计不是单纯的艺术手法,工业设计要在满足功能的基础上实现好的造型。

    八、PH灯

    工业设计创造“好”商品。这款PH吊灯的设计,在造型和材料方面均综合考虑,并利用灯光的折射作用从而得到柔和和舒适的灯光。

     

    九、甲壳虫汽车

    工业设计师企业生产过程中的第一环节,直接决定着工业生产的成败。一件真正成功的产品,能够产生极大的影响力,给企业的发展指出新的战略方向,带来巨大的市场和商业利润,创造出名牌效应。

    十、iphone

    好的工业设计提升产品的附加值。iphone就是一个很好的例子,同样是手机,苹果经典的设计使之成为经典。

     

    总结:工业设计是一门综合的学科,不仅要在造型上实现美感的塑造,还要在功能及工艺方面取得突破,从而帮助企业塑造品牌形象,实现批量生产的利润。

    展开全文
  • Unity 5.X 3D游戏开发技术详解与典型案例对Unity 3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细介绍,内容深入浅出,是一本适合不同需求、不同开发水平读者的技术宝典。 全书共分16章。第1章主要...
  • 本书对Unity 3D集成开发环境界面、脚本的编写和众多高级特效的实现进行了详细介绍,内容深入浅出,是一本适合不同需求、不同开发水平读者的技术宝典。...第16章介绍了完整的大型3D游戏案例间足球。
  • 以下是无线城市典型案例介绍:移动视频监控在无线城市建设过程中,移动视频监控正在发挥着很大的作用,目前移动视频监控主要应用于金融行业(各银行网点、信用社、邮政储蓄的远程集中联网监控);公安、交通系统(城市...
  • 为了方便后续的研究,在此先结合之前同学们的研究成果,综合整理一下,提供工具型网站的定义版本,供参考:——所谓工具型网站,顾名思义就是构筑在互联网上的工具,是为帮助人们完成某一特定领域的目标需求而提供...
  • 《剑offer:名企面试官精讲典型编程题》是2012年出版的图书,作者是何海涛。本书精选谷歌、微软等知名IT企业的50余道典型面试题,提供多角度的解题辅导。 目录: 第1章 面试的流程 1 1.1 面试官谈面试 1 1.2 面试...
  • 《剑Offer:名企面试官精讲典型编程题》剖析了50个典型的程序员面试题,从基础知识、代码质量、解题思路、优化效率和综合能力五个方面系统整理了影响面试的5个要点。全书分为7章,主要包括面试的流程,讨论面试流程...
  • 常见信息安全威胁与经典案例

    万次阅读 2020-04-15 18:35:05
    文章目录 信息安全威胁现状 网络战争的开端:“震网”病毒 信息安全攻击事件的演变 安全威胁分类 网络安全威胁 案例 美国Dyn DNS服务遭受DDoS攻击 Mirai病毒发动攻击过程(DDos攻击过程) 扫描 获取控制权限 发起...

    信息及信息系统由于具备脆弱性、敏感性、机密性、可传播等多种特性,其遭受到的威胁也可以来自各种场景和手段。

    信息安全威胁现状

    目前由于互联网越来越发达,信息的重要程度越来越高,信息安全的事件也层出不穷,如:

    1. 2017年5 月 12 日晚8 时左右,WannaCry勒索软件全球爆发,存在漏洞的电脑开机上网就可被攻击
    2. 2017年国内多款软件在升级更新时,遭遇网络流量劫持攻击,用户以为在升级,实际却把病毒安装到电脑上
    3. 电信网络诈骗案件 90% 以上是违法分子靠掌握公民详细信息进行的精准诈骗
    4. 2018年2月,人气网游《最终幻想XIV》遭遇持续长达3小时的DDoS攻击
    5. 2016年11月10日,俄罗斯五家主流大型银行遭遇长达两天的DDoS攻

    网络战争的开端:“震网”病毒

    震网病毒又名Stuxnet病毒,是一个席卷全球工业界的病毒。
    作为世界上首个网络“超级破坏性武器”,Stuxnet的计算机病毒已经感染了全球超过 45000个网络,伊朗遭到的攻击最为严重,60%的个人电脑感染了这种病毒。计算机安防专家认为,该病毒是有史以来最高端的“蠕虫”病毒。蠕虫是一种典型的计算机病毒,它能自我复制,并将副本通过网络传输,任何一台个人电脑只要和染毒电脑相连,就会被感染。

    震网(Stuxnet),指一种蠕虫病毒。它的复杂程度远超一般电脑黑客的能力。这种震网(Stuxnet)病毒于2010年6月首次被检测出来,是第一个专门定向攻击真实世界中基础(能源)设施的“蠕虫”病毒,比如核电站,水坝,国家电网。互联网安全专家对此表示担心。
    “震网”病毒利用了微软视窗操作系统之前未被发现的4个漏洞。通常意义上的犯罪性黑客会利用这些漏洞盗取银行和信用卡信息来获取非法收入。而“震网”病毒不像一些恶意软件那样可以赚钱,它需要花钱研制。这是专家们相信“震网”病毒出自情报部门的一个原因。
    据全球最大网络保安公司赛门铁克(Symantec)和微软(Microsoft)公司的研究,近60%的感染发生在伊朗,其次为印尼(约20%)和印度(约10%), 阿塞拜疆、美国与巴基斯坦等地亦有小量个案。
    由于“震网”感染的重灾区集中在伊朗境内。美国和以色列因此被怀疑是“震网”的发明人。
    这种新病毒采取了多种先进技术,因此具有极强的隐身和破坏力。只要电脑操作员将被病毒感染的U盘插入USB接口,这种病毒就会在神不知鬼不觉的情况下(不会有任何其他操作要求或者提示出现)取得一些工业用电脑系统的控制权。(在当时工控电脑的信息安全还未被注意到)

    发现历史:

    1. 2010年6月,“震网”病毒首次被发现,它被称为有史以来最复杂的网络武器,因为它悄然袭击伊朗核设施的手法极其阴险。
    2. 2010年9月,瑞星公司监测到这个席卷全球工业界的病毒已经入侵中国。瑞星反病毒专家警告说,我国许多大型重要企业在安全制度上存在缺失,可能促进Stuxnet病毒在企业中的大规模传播。
    3. 2010年12月15日,一位德国计算机高级顾问表示,“震网”计算机病毒令德黑兰的核计划拖后了两年。这个恶意软件2010年一再以伊朗核设施为目标,通过渗透进“视窗”(Windows)操作系统,并对其进行重新编程而造成破坏。
    4. 2011年1月26日,俄罗斯常驻北约代表罗戈津表示,这种病毒可能给伊朗布什尔核电站造成严重影响,导致有毒的放射性物质泄漏,其危害将不亚于1986年发生的切尔诺贝利核电站事故。
    5. 2011年2月,伊朗突然宣布暂时卸载首座核电站。此前业界表示伊朗只需一年就能拥有快速制造核武器的能力。而在遭受“震网”病毒攻击后,1/5的离心机报废。导致此项研究至少延迟两年。
    6. 2012年6月1日的美国《纽约时报》报道,揭露“震网”病毒起源于2006年前后由美国前总统小布什启动的“奥运会计划”。2008年,奥巴马上任后下令加速该计划。
    7. 2013年3月,中国解放军报报道,美国曾利用“震网”蠕虫病毒攻击伊朗的铀浓缩设备,已经造成伊朗核电站推迟发电,目前国内已有近500万网民、及多个行业的领军企业遭此病毒攻击。 这种病毒可能是新时期电子战争中的一种武器。震网病毒,截止2011年,感染了全球超过45000个网络,60%的个人电脑感染了这种病毒。

    在这里插入图片描述

    信息安全攻击事件的演变

    1. 攻击方式变化小

      攻击的方式仍然是我们所能看到的病毒、漏洞、钓鱼等,看起来似乎形式并无太大变化
      
    2. 攻击的手段由单一变得复杂

      一次重大攻击往往需要精密的部署,长期的潜伏,以及多种攻击手段相结合以达到最终目的
      
    3. 攻击目的多样化

      攻击的目标从个人电脑攻击到经济、政治、战争、能源,甚至影响着世界格局
      

    安全威胁分类

    • 网络安全威胁

       1. DDoS攻击
       2. 网络入侵等
      
    • 应用安全威胁

       1. 操作系统漏洞
       2. 2. 病毒、木马、蠕虫
       3. 钓鱼网站
       4. 数据泄露等
      
    • 数据传输与终端安全威胁

        1. 通信流量挟持
        2. 中间人攻击
        3. 未授权身份人员登录系统
        4. 无线网络安全薄弱等
      

    网络安全威胁

    案例

    美国Dyn DNS服务遭受DDoS攻击

    Dyn是DNS SaaS提供商,其核心业务就是为其用户管理托管DNS服务。DDoS攻击严重影响其DNS业务,导致客户网站无法访问。因其服务众多公司,造成的损害如星火燎原一般,影响极其恶劣。导致近半个美国陷入断网,涉及超过百家网站出现无法访问的情况,严重断网长达3小时,仅亚马逊一家损失就已达千万美元以上。

    攻击的“肉鸡”主要是网络摄像机、数字硬盘录像机和智能路由器 (主要由物联网设备组成)。Mirai僵尸网络感染设备上百万 ,而在此次攻击中仅十分之一设备参与。
    目前,互联网中存在着大量的僵尸主机和僵尸网络,在商业利益的驱使下,DDoS攻击已经成为互联网面临的重要安全威胁。

    为什么使用物联网设备发动攻击?

    1. 物联网设备一般没有密码或者密码简单,容易暴力破解
    2. 目前物联网设备数量众多,数量大概在几十亿上百亿的水平,对攻击者来说是非常好的资源
    3. 物联网设备难以检测是否被入侵

    Mirai病毒发动攻击过程(DDos攻击过程)

    在这里插入图片描述

    • 寻找肉鸡:物联网设备通常默认开启telnet远程登录功能,方便管理员进行远程管理。攻击者可以通过IP地址扫描来发现存活的物联网设备,通过端口扫描来进一步判断物联网设备是否开启telnet服务。

    • 组建僵尸网络:部分物联网设备使用者,会直接使用出厂密码,或者设置简单的密码(类似admin/123456的简单用户名/密码组合),这些密码很容易被攻击者暴力破解。当攻击者成功破解物联网设备的密码,并通过telnet登录成功后,接着在物联网设备上进行远程植入恶意软件Mirai,从而获得设备的绝对控制权。

      • 恶意软件对感染的设备拥有绝对控制权,除了利用设备发起DDoS攻击以外,还能够对设备本身的系统、业务、数据造成严重危害,比如能够篡改数据、窃取隐私、修改配置、删除文件等,并可能以此为跳板攻击核心业务系统。
    • 加载攻击模块:攻击者在物联网设备上加载DNS DDoS攻击模块。

    • 发起攻击:攻击者通过僵尸网络向美国Dyn DNS服务发起DDoS攻击,导致上百家网站出现无法访问的情况。

    扫描

    扫描是一种潜在的攻击行为,本身并不具有直接的破坏行为,通常是攻击者发动真正攻击前的网络探测行为。

    扫描可以分为地址扫描和端口扫描:

    • 地址扫描

      攻击者运用ICMP报文探测目标地址,或者使用TCP/UDP报文对一定地址发起连接,通过判断是否有应答报文,以确定哪些目标系统确实存活着并且连接在目标网络上。(如ping目的主机,若是能ping通则说明改目的地址主机存活在目标网络上)

    • 端口扫描
      攻击者通过对端口进行扫描探寻被攻击对象目前开放的端口,以确定攻击方式。在端口扫描攻击中,攻击者通常使用Port Scan攻击软件,发起一系列TCP/UDP连接,根据应答报文判断主机是否使用这些端口提供服务。

    获取控制权限
    1. 攻击者可以通过密码暴力破解方式来获取控制权限

    2. 也可以通过各种欺骗攻击来获取访问和控制权限,如IP欺骗攻击:

      攻击者通过向目标主机发送源IP地址伪造的报文,欺骗目标主机,从而获取更高的访问和控制权限。

    IP欺骗是利用了主机之间的正常信任关系来发动的。基于IP地址的信任关系的主机之间将允许以IP地址为基础的验证,允许或者拒绝以IP地址为基础的存取服务。信任主机之间无需输入口令验证就可以直接登录。

    lP欺骗攻击的整个步骤:

    1. 首先使被信任主机的网络暂时瘫痪,以免对攻击造成干扰(若是想要获取B的权限,则需要先攻瘫B信任的主机A,如下图)
    2. 然后连接到目标主机的某个端口来猜测序列号和增加规律
    3. 接下来把源地址伪装成被信任主机,发送带有SYN标志的数据段请求连接
    4. 然后等待目标机发送SYN+ACK包给已经瘫痪的主机
    5. 最后再次伪装成被信任主机向目标机发送的ACK,此时发送的数据段带有预测的目标机的序列号+1
    6. 连接建立,发送命令请求

    在这里插入图片描述

    发起DDoS攻击

    在这里插入图片描述

    DDos(Distributed Denial of Service)即分布式拒绝服务攻击,是典型的流量型攻击。

    DDoS攻击是指攻击者通过各种手段,取得了网络上大量在线主机的控制权限。这些被控制的主机称为僵尸主机,攻击者和僵尸主机构成的网络称为僵尸网络。当被攻击目标确定后,攻击者控制僵尸主机向被攻击目标发送大量精心构造的攻击报文,造成被攻击者所在网络的链路拥塞、系统资源耗尽,从而使被攻击者产生拒绝向正常用户的请求提供服务的效果。

    根据采用的攻击报文类型的不同,网络中目前存在多种DDoS攻击类型,主要有以下这几种常见的DDoS攻击:SYN Flood、UDP Flood、ICMP Flood、HTTP Flood、HTTPS Flood、DNS Flood等。

    DDoS的目的:
    - 耗尽网络带宽
    - 耗尽服务器资源
    - 使得服务器无法正常提供服务(瘫痪)

    网络类攻击的防御手段

    部署专业的防护设备:

    • 防火墙:通过在大中型企业、数据中心等网络的内网出口处部署防火墙,可以防范各种常见的DDoS攻击,而且还可以对传统单包攻击进行有效地防范。

    • AntiDDoS设备:Anti-DDoS解决方案,面向运营商、企业、数据中心、门户网站、在线游戏、在线视频、DNS域名服务等提供专业DDoS攻击防护。

    应用安全威胁

    案例

    微博网站曾遭遇到一次蠕虫攻击侵袭,在不到一个小时的时间,超过3万用户受到该蠕虫的攻击。攻击过程如下:
    在这里插入图片描述

    漏洞

    漏洞是在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。

    漏洞带来的威胁:

    • 注入攻击(如SQL注入攻击)
    • 跨站脚本攻击(Cross-site scripting,通常简称为XSS或跨站脚本或跨站脚本攻击)
    • 恶意代码传播
    • 数据泄露

    常见攻击手段

    钓鱼攻击

    “钓鱼”是一种网络欺诈行为,指不法分子利用各种手段,仿冒真实网站的URL地址以及页面内容,或利用真实网站服务器程序上的漏洞在站点的某些网页中插入危险的HTML代码,以此来骗取用户银行或信用卡账号、密码等私人资料。

    钓鱼网站的设计通常有两种方式:

    1. 第一种以“中奖”等名义为诱饵,诱骗用户填写身份证号码、银行帐户等信息;
    2. 第二种模仿银行在线支付、电子交易网站,骗取用户的银行卡信息或者在线支付账号密码。

    整个过程如同钓鱼一般,这样的恶意网站也就被称作“钓鱼网站”。这样的钓鱼手法技术含量并不高,或者利用人们贪图便宜的心理上当受骗,或者利用部分网民防范欺诈意识的薄弱。人们一旦上当,或者个人隐私信息泄露并被贩卖,或者因为在网站上填写了银行账号信息,相应的资产会被立刻转走,追悔莫及。

    恶意代码

    病毒

    攻击者利用计算机软件和硬件所固有的脆弱性编制的一组指令集或程序代码,通过修改其他程序的方法将自己的精确拷贝或者可能演化的形式放入其他程序中,从而感染其他程序,能够破坏计算机系统,纂改、损坏业务数据。(简单的来说就是依附于其他程序的恶意代码)

    特点:

    • 需要宿主程序

    木马

    伪装成系统程序的恶意代码。通过一段特定的程序(木马程序)来控制另一台计算机。

    特点:

    • 很难发现,很难杀死。最好的方法就是重装系统
    • 目的:获得目的主机的控制权限
    • 木马通常有两个可执行程序:一个是客户端,即控制端;另一个是服务端,即被控制端。植入被种者电脑的是“服务器”部分,而所谓的“黑客”正是利用“控制器”进入运行了“服务器”的电脑。运行了木马程序的“服务器”以后,被种者的电脑就会有一个或几个端口被打开,使黑客不仅可以窃取计算机上的重要信息,还可以对内网计算机破坏。

    蠕虫

    一种能够利用系统漏洞通过网络进行自我传播的恶意程序.

    特点:

    • 利用网络能够进行自我复制和自我传播,传染途径是通过网络和电子邮件。
    • 主要危害:消耗主机资源,甚至破坏主机系统,造成主机拒绝服务;蠕虫传播造成的流量导致网络拥塞,甚至导致整个互联网瘫痪、失控。(威胁很大,大到能破坏一个国家的网络如:永恒之蓝Wanna Cry)

    后门

    指隐藏在程序中的秘密功能,通常是程序设计者为了能在日后随意进入系统而设置的。

    特点:

    • 一般在系统前期搭建或者维护的时候后门程序被安装
    • 主要目的:窃取信息

    间谍软件

    一种能够在用户不知情的情况下,在其电脑上安装后门、收集用户信息的软件,搜集、使用、并散播企业员工的敏感信息,严重干扰企业的正常业务的恶意软件

    特点:

    • 伪装成终端信任的文件
    • 悄无声息的安装在你的终端设备上

    应用类攻击防御手段

    • 定期修复漏洞

       1. 漏洞扫描
       2. 安装补丁
      
    • 提高安全意识

        1. 对可疑网站、链接保持警觉
      
    • 专业设备防护

        1. 防火墙(防火墙作为边界设备,可对用户的上网行为、网页及邮件病毒、非法应用程序等进行阻断,从而达到保护内网的作用)
        2. WAF(Web Application Firewall,Web应用防火墙。它是通过执行一系列针对HTTP/HTTPS的安全策略专门为Web应用提供保护的一款防护设备)
        3. 杀毒软件
      

    数据传输与终端安全威胁

    案例

    用户通信遭监听

    美国国家安全局(NSA)在云端监听Google(包括Gmail)和Yahoo用户的加密通信。NSA利用谷歌前端服务器做加解密的特点,绕过该设备,直接监听后端明文数据。

    Tumblr用户信息遭泄露

    轻博客网站Tumblr上超过半数的账号密码被黑客盗取。
    黑客首先通过一定的方式侵入了Tumblr的服务器,获取了Tumblr用户信息。Tumblr曾发声因数据库信息加密,对用户不会造成影响。然而事实证明用户信息采用了较弱的算法,黑客获取到该加密的用户信息后,在较短时间内便破解了大量的用户信息。

    通信过程中的主要威胁

    1. 传输安全隐患

       1. 中间人攻击
       2. 数据传输未加密或加密程度不够
      
    2. 终端安全隐患

       1. 服务器存在漏洞
       2. 用户使用弱密码
       3. 用户身份未经验证
      

    中间人攻击

    中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。中间人攻击主要的威胁是信息篡改和信息窃取
    在这里插入图片描述

    主要防御手段

    1. 数字签名
    2. 信息存储必须加密
    3. 信息传输必须加密
    4. 采用强加密算法
    5. 安装正版杀毒软件
    6. 采用高强度密码
    7. 降低多密码之间的关联性
    展开全文
  • 国外量化投资经典案例介绍

    千次阅读 2019-09-19 13:44:51
    文/量化投资部 王高 ...量化投资包含程序化高频交易,但并不等同于高频交易,本文主要讨论选取国际市场上关于高频交易的著名案例,用尽量简单的语言解读其中涉及的投资策略及经验教训。 一、高频交易介...

    文/量化投资部 王高

     

    量化投资将人的投资思想规则化、变量化、模型化,形成一整套完整、可量化的操作思路,这套操作思路可以用历史数据加以分析验证,在交易的执行阶段可以选择使用计算机自动执行。量化投资包含程序化高频交易,但并不等同于高频交易,本文主要讨论选取国际市场上关于高频交易的著名案例,用尽量简单的语言解读其中涉及的投资策略及经验教训。

     

    一、高频交易介绍

     

    高频交易是量化投资的一种。高频交易主要是基于统计的历史数据运用计算机程序进行的高频率交易,它的主要特征体现在交易速度快、交易延迟低、交易量大、头寸管理严格和时间期限短等特点。

     

    d8a1542d19ed4d41b456a828b925b391_th.jpg

     

    1、交易速度快

     

    大部分情况下,高频交易处理的都是分笔交易数据,数据之间的间隔时间以秒、毫秒计,显然对于如此高频率的数据,人脑根本无法做出有效的反应,必须构建数理模型,依靠计算机强大的数据处理能力对数据进行分析、计算,发现交易机会并快速下单交易。

    9059911472264fa7af29316e4a7a379d.jpg

     

    2、交易延迟低

     

    高频交易一般是低延迟交易,对于数据处理速度和网络接入速度很敏感。速度是高频交易最明显的竞争。具有最强大的数据处理能力、最快的网络接入速度的交易者将能最先发现市场上瞬间的交易机会,闪电下单,赚取利润。速度过慢的指令到达交易所时,交易机会可能早已经被别人抢占,不但无法盈利,还可能产生亏损。

    e32c24ec6acd423c9daf4378b488fdec_th.jpg

     

    3、交易量大

     

    高频交易会极大的增加市场的交易量。数据显示,2005 年,高频交易占美国市场总交易量的20%左右,这一数字在2014 年已经升至50%,并一度在 2009年达到过 61%的最高点。从欧洲的情况来看,2005年高频交易只占欧盟国家总交易量的2%,而在2014年高频交易量已经大幅增加到市场成交量的25%,并在2010年一度达到高点38%。

    4、持仓期限短,仓位控制严格

    高频交易者通常需要不断的买入卖出来实现小额套利收益的积累。证券价格的一些微小变化常常会触发大量开平仓信号。 一旦套利信息被交易系统检测到,程序会自动执行买卖指令,建立相应的头寸,并在单笔交易完成后平掉持有头寸,整个过程历时非常短。因为高频交易持有时间短,交易频繁,每次开仓时持有的头寸都相对较小,很少有重仓买卖的情况,积少成多,累计利润。

     

     

    二、国外高频交易著名案例

     

    (1)Virtu,闪击者和高频交易之争

     

    2014年3月11日,美国高频交易公司Virtu Financial向美国证券交易委员会(SEC)提交首次公开募股(IPO)申请文件。该公司公开的财务报表显示公司2013年营收约为6.65亿美元,同比增长8%;净利润为1.82亿美元,同比增长一倍以上。令人称奇的是,从2009年初到2013年底,由于实时的风险管理策略和技术,在总共1238个交易日里只有1天出现亏损。

    94a1b76c4e294eab9a1fde3e225f9bba_th.jpg

     

    该公司有效的高频交易策略不但没有引起社会的认可,反倒是引起了普通交易者和监管机构的极大不满。美国财经作家迈克尔·刘易斯(Michael Lewis)于2014年3月中旬出版了新书《闪击者》(Flash Boys),书中对高频交易基本持批评态度。作者主要抓住高频交易捕捉微观价差这一事实,为私人交易所鸣不平。

     

    2014年4月15日,欧洲议会通过包含一系列限制高频交易措施的《金融工具市场指令Ⅱ》,内容包括限制报价货币单位过小,强制对交易算法进行测试,要求做市商每个交易日每小时上报交易额,以及当价格波动超过一定限制时的熔断机制(价格增量规则标准)。

    因为受到社会各界的不认可,Virtu Financial公司的IPO受到了极大影响,2014年上市的计划也遭到了搁浅。

     

    (2)3Red公司和Panther Energy公司的幌骗交易

     

    86d84a7d014a41de9e499a389a0f7973_th.jpg

     

    幌骗交易(Spoofing)采用高频交易的技术手段,以哄骗交易对手、操作市场为目的获取利润。常见的做法是,以低于市场卖价的价格挂出卖单,这样其他卖家就会被迫挂出更低的价格以寻求快速成交,当发现更低的卖价后,幌骗策略迅速撤单,反手做多,这样通过诱骗交易对手得以以更低的价格获取头寸。同理,用高于市场买价的价格挂出买单诱骗买家,以更高的价格结清头寸。幌骗交易完成的时间极短,大部分手动交易者对此并不敏感。但对于高度依赖盘口信息捕捉市场微管机构的高频交易策略而言,幌骗交易几乎是他们的天敌。

     

    2014年11月,美国商品期货交易委员会(CFTC)发布公告称,芝加哥投资公司3 Red Trading LLC以及交易员伊格尔·奥斯塔赫涉嫌利用幌骗手段及欺诈设备操纵市场,CFTC对其发起诉讼。据CFTC的指控文件,奥斯塔赫在359790份交易合约中累计进行1316次幌骗交易。同期,芝加哥商业交易所(CME)向奥斯塔赫处以15万美元的罚款和一个月的市场禁入,奥斯塔赫同意支付罚款并接受处罚,但对于违规行为既不承认也未否认。有评论认为,奥斯塔赫通过发现僵化的高频交易市场漏洞,从而操纵了其他的高频交易者。

    7aeca607965d4d2a9d7b0281067f5f45_th.jpg

     

    2015年11月3日,美国联邦法院裁定Panther Energy Trading公司的负责人迈克尔·科斯夏(Michael Coscia)的商品交易欺诈以及幌骗(spoofing)罪名成立,这是美国2010年《多德-弗兰克法案》出台以来关于其中"防欺诈法规"的首个案例,也是全球首宗此类刑事起诉。在庭审中,来自美国证券交易委员会和美国商品期货交易委员会的证人提供的相关数据表明,嫌疑人自2011年以来在期货市场挂出大量买卖单,但事实上这些买卖单的目标不是执行,而是制造需求假象,诱使其他交易员入市,从而让自己从中获利。比如嫌疑人常常在挂出大单之后撤单,但对小单撤单的概率较小。检方则指控嫌疑人在3个月的时间里通过"诱饵调包阴谋(bait-and-switch Scheme)"非法获利140万美元。最终法院裁定科斯夏六项商品欺诈和六项幌骗罪名全部成立。

     

     

    从上面的例子中我们看出,幌骗策略是法律明确禁止的市场操作手段。与正常的高频交易策略截然不同,某种意义上不以成交为目的的下单是对市场信息资源的无效消耗,如果还有诱使对手出单的行为,那就是直接的刑事犯罪--任何时候,高频交易不能违背为市场提供流动性的初衷。

     

     

    (3)骑士资本的梦魇:乌龙指

     

    美国骑士资本集团(Knight Capital Group)成立于1995年,是华尔街最知名证券公司之一,规模庞大,风格稳健,业务遍布全球。骑士资本的高频交易平台可以把来自于不同机构客户和零售客户的交易订单组合起来,形成一个巨大的撮合池,当市场流动性不足的时候,通过投放公司自有资金为市场提供需要的流动性,因此骑士资本也是美国证券市场上最大的流动性提供商之一。由于该平台强大的交易处理能力,不只是买方,一些美国证券市场上重量级的证券公司也是骑士资本的客户,通过上述平台向交易所和其他交易中心发送交易订单。骑士资本的这种超级交易平台极大提高了交易效率,但同时也埋下了巨大的运营风险。

    c96c93a69a654bac9cb6a8a865c995bd.jpg

     

    2012年7月27日,系统维护人员在系统升级过程中,遗漏了一台服务器,没有升级上面的高频交易系统SMARS,该失误股票交易指令出错,导致150只股票价格集体异动,近1万亿股票市值受到影响。根据美国证监会的调查结果,从9:30到10:15的45分钟交易时间里,骑士资本原本只收到由零售客户发出的212笔小交易订单,交易系统原本仅应该把212笔交易订单发送到纽交所,但出错的交易系统却在不到45分钟的时间里发送了几百万笔交易订单。事故期间,纽交所在这段时间里成交了超过400万笔的交易订单,平均每秒钟的成交超过了1500笔,涉及的股票代码达到了154个。错误交易导致纽交所启动了熔断机制,并对部分个股启动临时停牌。当日交易开始20分钟之后,纽交所才确定错误订单来自骑士集团。最终纽交所查验了140只非正常交易股票,取消了其中6只股票的全部交易。

     

    交易事故之后的骑士资本陷入经营危机,直接损失就达到了4.6亿美元,公司股价也在短短的两个交易日里从10美元跌到了2.5美元,市值大量蒸发,公司陷于破产边缘,随即被GETCO公司收购。

     

     

    三、国外高频交易的严厉监管

     

    在经历了多次高频交易引起的交易事故之后,各个国家的证券交易监管机构相继出台了针对程序化高频交易的严厉监管法案。

    814d9ebd347244479891a0e424a99149.jpg

     

    在欧洲,欧盟的《金融工具市场指令Ⅱ》致力于以投资机构作为执行主体,引入一系列安全保护措施,综合考虑价格、成本、速度、指令执行可能性、规模、性质等多种因素后执行客户指令,既针对使用算法交易的市场参与者,也针对发生算法和高频交易的交易场所。德国联邦金融管理局于2012年9月出台了全球第一部专门针对高频交易的监管草案,并分别于2013年2月、3月在德国众议院与参议院通过。2014年4月15日,欧洲议会通过了包含一系列限制高频交易措施的《金融工具市场指令Ⅱ》。

     

    2009年9月,美国证监会基于市场信息公平性的考虑,提议禁止能使高频交易商比其他市场参与者提前数毫秒看到交易指令的闪电指令(Flash Orders)。

     

    2010年1月13日,美国证监会基于错误指令增加经纪商和市场参与者风险暴露的考虑,要求经纪商实行严格的事先风险校验,在指令到达交易所之前,必须进行资金校验,绝对禁止对外提供无资金校验的免审核通道(Naked Access),包括交易席位和其他相关的高速通道。2010年4月14日,美国证监会提议为大额交易者和频繁交易者分配识别代码,在交易发生后的次日,经纪商需要将交易记录上报美国证监会,以便分析与调查是否存在操纵市场等行为。

     

     

    拓展阅读:

    市面上经典的量化交易策略都在这里了!(源码)

    期货/股票数据大全查询(历史/实时/Tick/财务等)

    网格交易法,一个不容易亏钱的投资策略(附源码)

    配对交易—这个股票策略曾年赚5000万美元

    一个量化策略师的自白(好文强烈推荐)

     

    展开全文
  • 动态规划算法经典案例

    千次阅读 2019-04-29 19:20:10
    动态规划算法是从暴力搜索算法优化过来的,如果我们不清楚暴力搜索的过程,就难以理解动态规划的实现,当我们了解了动态规划算法的基本原理的文字...这个时候我们不能停留在文字层面上,而应该去学习经典动态规划...

    转载自:https://blog.csdn.net/uestclr/article/details/50760563 

    动态规划算法是从暴力搜索算法优化过来的,如果我们不清楚暴力搜索的过程,就难以理解动态规划的实现,当我们了解了动态规划算法的基本原理的文字概述,实现条件之后,这时可能并不是太理解这种思想,去面对实际问题的时候也是无从下手,这个时候我们不能停留在文字层面上,而应该去学习经典动态规划算法的实现,然后倒回来看这些概念,便会恍然大悟。

    动态规划算法的难点在于 从实际问题中抽象出动态规划表dp,dp一般是一个数组,可能是一维的也可能是二维的,也可能是其他的数据结构。


    动态规划的关键点:

    1、最优化原理,也就是最有子结构性质。这指的是一个最优化策略具有这样的性质,无论过去状态和决策如何,对前面的决策所形成的状态而言,余下的决策必须构成最优策略,简单来说就是一个最优化策略的子策略总是最优的,如果一个问题满足最优化原理,就称其有最优子结构性质。

    2、无后效性,指的是某个状态下的决策的收益,只与状态和决策相关,与达到该状态的方式无关。

    3、子问题的重叠性,动态规划将原来指数级的暴力搜索算法改进到了具有多项式时间复杂度的算法,其中的关键在于解决了荣誉,重复计算的问题,这是动态规划算法的根本目的。

    4、总体来说,动态规划算法就是一系列以空间换取时间的算法。

    案例一:

    有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。

    分析:动态规划的实现的关键在于能不能准确合理的用动态规划表来抽象出 实际问题。在这个问题上,我们让f(n)表示走上n级台阶的方法数。

    那么当n为1时,f(n) = 1,n为2时,f(n) =2,就是说当台阶只有一级的时候,方法数是一种,台阶有两级的时候,方法数为2。那么当我们要走上n级台阶,必然是从n-1级台阶迈一步或者是从n-2级台阶迈两步,所以到达n级台阶的方法数必然是到达n-1级台阶的方法数加上到达n-2级台阶的方法数之和。即f(n) = f(n-1)+f(n-2),我们用dp[n]来表示动态规划表,dp[i],i>0,i<=n,表示到达i级台阶的方法数。

    /*dp是全局数组,大小为n,全部初始化为0,是题目中的动态规划表*/
    int fun(int n){
        if (n==1||n==2)
            return n;
        /*判断n-1的状态有没有被计算过*/
        if (!dp[n-1])
            dp[n-1] = fun(n-1);
        if(!dp[n-2])
            dp[n-2]=fun(n-2);
        return dp[n-1]+dp[n-2];
    }

    案例2:
    给定一个矩阵m,从左上角开始每次只能向右走或者向下走,最后达到右下角的位置,路径中所有数字累加起来就是路径和,返回所有路径的最小路径和,如果给定的m如下,那么路径1,3,1,0,6,1,0就是最小路径和,返回12.

    1 3 5 9

    8 1 3 4

    5 0 6 1

    8 8 4 0

    分析:对于这个题目,假设m是m行n列的矩阵,那么我们用dp[m][n]来抽象这个问题,dp[i][j]表示的是从原点到i,j位置的最短路径和。我们首先计算第一行和第一列,直接累加即可,那么对于其他位置,要么是从它左边的位置达到,要么是从上边的位置达到,我们取左边和上边的较小值,然后加上当前的路径值,就是达到当前点的最短路径。然后从左到右,从上到下依次计算即可。

    #include <iostream>
    #include <algorithm>
    using namespace std;
    int dp[4][4] = {};
    int main(){
        int arr[4][4] = {1,3,5,9,8,1,3,4,5,0,6,1,8,8,4,0};
        //cout << fun(arr,4,4) << endl;
         const int oo = ~0U>>2;
         for (int i = 0;i<4;i++)
             for (int j = 0; j < 4;j++)
                 dp[i][j] = oo;
         //dp[0][0] = oo;
         for (int i = 0; i < 4;i++){
             for (int j = 0; j<4;j++){
                 if (dp[i][j] == oo){
                    if (i==0&&j==0)
                        dp[i][j] = arr[i][j];
                    else if (i==0&&j!=0)
                        dp[i][j] = arr[i][j] + dp[i][j-1];
                    else if(i!=0&&j==0)
                        dp[i][j] = arr[i][j] + dp[i-1][j];
                    else{
                        dp[i][j] = arr[i][j]+min(dp[i-1][j],dp[i][j-1]);
                    }
                 }
             }
         }
        // cout << dp[3][3] << endl;
         for (int i = 0; i< 4;i++){
             for (int j = 0; j<4;j++){
                cout << dp[i][j] << "  ";
             }
             cout << endl;
         }
    }


    案例3:
    给定数组arr,返回arr的最长递增子序列的长度,比如arr=[2,1,5,3,6,4,8,9,7],最长递增子序列为[1,3,4,8,9]返回其长度为5.

    分析:

    首先生成dp[n]的数组,dp[i]表示以必须arr[i]这个数结束的情况下产生的最大递增子序列的长度。对于第一个数来说,很明显dp[0]为1,当我们计算dp[i]的时候,我们去考察i位置之前的所有位置,找到i位置之前的最大的dp值,记为dp[j](0=<j<i),dp[j]代表以arr[j]结尾的最长递增序列,而dp[j]又是之前计算过的最大的那个值,我们在来判断arr[i]是否大于arr[j],如果大于dp[i]=dp[j]+1.计算完dp之后,我们找出dp中的最大值,即为这个串的最长递增序列。

    #include <iostream>
    #include <algorithm>
    using namespace std;
    /*动态规划表*/
    int dp[5] = {};
    int main(){
        int arr[5] = {2,4,5,3,1};
        dp[0] = 1;
        const int oo = 0;
        for (int i = 1;i<5;i++){
            int _max = oo;
            for (int j=0;j<i;j++)
                if(dp[j]>_max&&arr[i]>arr[j])
                    _max = dp[j];
            dp[i] = _max+1;
        }
        int maxlist=0;
        for (int i = 0; i < 5;i++)
            if (dp[i] > maxlist)
                maxlist=dp[i];
        cout << maxlist << endl;
    }


    案例四:

    给定两个字符串str1和str2,返回两个字符串的最长公共子序列,例如:str1="1A2C3D4B56",str2="B1D23CA45B6A","123456"和"12C4B6"都是最长公共子序列,返回哪一个都行。

    分析:本题是非常经典的动态规划问题,假设str1的长度为M,str2的长度为N,则生成M*N的二维数组dp,dp[i][j]的含义是str1[0..i]与str2[0..j]的最长公共子序列的长度。

    dp值的求法如下:

    dp[i][j]的值必然和dp[i-1][j],dp[i][j-1],dp[i-1][j-1]相关,结合下面的代码来看,我们实际上是从第1行和第1列开始计算的,而把第0行和第0列都初始化为0,这是为了后面的取最大值在代码实现上的方便,dp[i][j]取三者之间的最大值。


    int findLCS(string A, int n, string B, int m) {
            // n表示字符串A的长度,m表示字符串B的长度
            int dp[500][500] = {};
            for (int i = 0;i < n;i++)
            {
                for (int j = 0; j<m;j++)
                {
                    if (A[i]==B[j])
                        dp[i+1][j+1] = dp[i][j]+1;
                    else
                        dp[i+1][j+1] = max(dp[i+1][j],dp[i][j+1]);
                }
            }
            return dp[n][m];
        }

    案例5:

    背包问题,动态规划经典问题,一个背包有滴定的承重W,有N件物品,每件物品都有自己的价值,记录在数组V中,也都有自己的重量,记录在数组W中,每件物品只能选择要装入还是不装入背包,要求在不超过背包承重的前提下,选出的物品总价值最大。

    分析:假设物品编号从1到n,一件一件的考虑是否加入背包,假设dp[x][y]表示前x件物品,不超过重量y的时候的最大价值,枚举一下第x件物品的情况:

    情况1:如果选择了第x件物品,则前x-1件物品得到的重量不能超过y-w[x]。

    情况2:如果不选择第x件物品,则前x-1件物品得到的重量不超过y。

    所以dp[x][y]可能等于dp[x-1][y],也就是不取第x件物品的时候,价值和之前一样,也可能是dp[x-1][y-w[x]]+v[x],也就是拿第x件物品的时候,当然会获得第x件物品的价值。两种可能的选择中,应该选择价值较大的那个,也就是:

                                dp[x][y] = max{dp[x-1][y],dp[x-1][y-w[x]]+v[x]}

    因此,对于dp矩阵来说,行数是物品的数量n,列数是背包的重量w,从左到右,从上到下,依次计算出dp值即可。

    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    int main(){
        /*物品数量*/
        int n = 4;
        /*背包承重*/
        int cap = 10;
        int v[4] = {42,12,40,25};
        int w[4] = {7,3,4,5};
        /*二维动态规划表*/
        vector<int> p(cap+1,0);
        vector<vector<int>> dp(n+1,p);
     
        for (int i = 1;i <=n;i++){/*枚举物品*/
            for (int j = 1;j<cap+1;j++){/*枚举重量*/
                /*判断枚举的重量和当前选择的物品重量的关系
                如果枚举的和总量大于等于选择物品,则需要判断是否选择当前物品*/
                if (j-w[i-1]>=0)
                    dp[i][j] = max(dp[i-1][j],dp[i-1][j-w[i-1]]+v[i-1]);
                else
                    /*如果枚举的重量还没有当前选择物品的重量大,那就只能是不取当前物品*/
                    dp[i][j] = dp[i-1][j];
            }
        }
        cout << dp[n][cap] << endl;
    }

    案例6:

    给定两个字符串str1,str2,在给定三个整数ic,dc,rc,分别代表插入,删除和替换一个字符的代价。返回将str1

    编辑成str2的代价,比如,str1="abc",str2="adc",ic=5,dc=3,rc=2,从str1到str2,将'b'换成'd'代价最小,所以返回2.

    分析:

    在构建出动态规划表的时候,关键是搞清楚每个位置上数值的来源。首先我们生成dp[M+1][N+1]的动态规划表,M代表str1的长度,N代表str2的长度,那么dp[i][j]就是str1[0..i-1]变成str2[0...j-1]的最小代价,则dp[i][j]的来源分别来自以下四种情况:

    a、首先将str1[i-1]删除,变成str1[0...i-2],然后将str1[0...i-2]变成str2[0...j-1],那么dp[i-1][j]就代表从str1[0..i-2]到str2[0...j-1]的最小代价,所以:dp[i][j] = dp[i-1][j]+dc;

    b、同理也可以是从str1[0...i-1]变成str2[0...j-2],然后在插入str2[j-1],dp[i][j-1]就代表从str1[0...i-1]变成str2[0...j-2]的最小大家,所以:dp[i][j] = dp[i][j-1]+ic;

    c、如果str[i-1] == str2[j-1],则只需要将str1[0...i-2]变成str2[0...j-2],此时dp[i][j] = dp[i-1][j-1];

    d、如果str1[i-1]!=str2[j-1],则我们只需要将str1[i-1]替换成str2[j-1],此时dp[i][j] = dp[i-1][j-1]+rc;

    在这四种情况当中,我们选取最小的一个,即为最小代价。

    #include <iostream>
    #include <string>
    #include <algorithm>
    #include <vector>
    using namespace std;
     
    int main(){
        string str1 = "ab12cd3";
        string str2 = "abcdf";
        //cin>>str1;
        //cin>>str2;
        const int M = str1.length();
        const int N = str2.length();
        //vector<int> p(M+1,0);
        //vector<vector<int>> dp(N+1,p);
        int dp[10][10] = {};
        int ic=5,dc=3,rc=2;
        //int ic = 1,dc=1,rc=1;
        dp[0][0] = 0;
        for (int i = 1;i<N+1;i++)
            dp[0][i] = ic*i;
        for (int i = 1;i<M+1;i++)
            dp[i][0] = dc*i;
     
        for (int i=0;i<M;i++){
            for (int j = 0;j<N;j++){
                int x = min(dc+dp[i+1][j],dp[i][j+1]+ic);
                if (str1[i]!=str2[j])
                    dp[i+1][j+1] = min(dp[i][j] + rc,x);
                else 
                    dp[i+1][j+1] = min(dp[i][j],x);
            }
        }
        cout << dp[M][N] << endl;
    }

     

    展开全文
  • 是电子商务项目运行的秩序是电子商务项目所提供的产品服务信息流收入来源以及各利益主体在电子商务项目运作过程中的关系和作用的组织方式与体系结构主要包括战略目标目标用户产品或服务核心能力赢利模式案例(1)...
  • MapReduce经典案例实战

    千次阅读 2020-10-14 14:28:49
    MapReduce经典案例实战 实验实现过程 重要知识点: MapReduce是一种分布式并行编程模型,是Hadoop核心子项目之一,如果已经安装了Hadoop,就不需要另外安装MapReduce。 主要的理论知识点: (1)倒排索引 倒排索引是...
  • 数据仓库是一个面向主题的(SubjectOriented)、集成的(Integrate)、相对稳定的(Non-Volatile)、反映历史变化(TimeVariant)的数据集合,用于支持管理决策。...早期数据仓库构建主要的是把企业的业务数据库
  • 股权投资成功案例1: 私募股权融资缔造了太多的企业发展神话,其中,比较典型也是我们比较熟悉的有蒙牛股份、无锡尚德、永乐电器、雨润食品、中星微、千橡互动、国人通信、盛大、百度、携程、阿里巴巴、掌上灵通、...
  • 四大经典大数据应用案例解析

    万次阅读 多人点赞 2018-04-12 13:48:10
    什么是数据挖掘(Data Mining)?简而言之,就是有组织有目的地收集数据,通过分析数据使之成为信息,从而在大量数据中寻找潜在规律以形成规则或知识的技术。在本文中,我们从数据挖掘的实例出发,并以数据挖掘中比较...
  • 深度学习经典案例解析:YOLO系列

    千次阅读 2019-02-06 21:05:19
    但是这里先验框的大小具体指什么作者并没有说明,但肯定不是像素点,从代码实现上看,应该是相对于预测的特征图大小( )。对比两个数据集,也可以看到COCO数据集上的物体相对小点。这个策略作者并没有单独做实验,...
  • 逆向思维的经典案例

    千次阅读 2019-06-10 21:44:20
    经典案例 愚公移山的故事,在我国家喻户晓;愚公移山的精神,曾经教育一代又一代人。尤其是遇到困难的时候,很多人都会想起愚公的故事,坚信只要像愚公一样坚持到底,就能取得成功。 60年转瞬即逝。今天,我国经济...
  • 博物馆是收藏、保护、研究、展示人类活动和自然环境的见证物,经过文物行政部门审核、相关行政部门批准许可取得法人资格,向公众开放的非营利性社会服务机构。(博物馆管理办法)。可以说,博物馆是人类文明发展的...
  • 国外量化投资的经典案例

    千次阅读 2019-09-19 14:12:40
    因此本文主要选取一些国外著名的量化投资案例,尝试用最简单的语言解读其中涉及的投资策略问题和法律问题。 1987年10月19日,星期一,华尔街上的纽约股票市场刮起了股票暴跌的风潮,爆发了历史上最大的一次崩盘事件...
  • 资源分享:230个Proteus仿真原理图和经典案例

    万次阅读 多人点赞 2018-09-27 16:51:28
    资源分享:230个Proteus仿真原理图和经典案例   今天来给大家共享资料来了,想学Proteus的小伙伴有福了,不用找得焦头烂额的了,这里有proteus的大部分实例,而且附带源代码呢,想要更多proteus资料的小伙伴可以...
  • CIS是英文CorporateIdentity的简称,意译为企业形象...企业形象识别系统,它是企业对自身的理念文化、行为方式及视觉识别进行系统地革新,统一的传播,以塑造出富有个性的企业形象,以获得内外公众认可的经营战略。
  • 《剑Offer:名企面试官精讲典型编程题(第2版)》剖析了80个典型的编程面试题,系统整理基础知识、代码质量、解题思路、优化效率和综合能力这5个面试要点。《剑Offer:名企面试官精讲典型编程题(第2版)》共分7...
  • 打印出所有的"水仙花数",所谓"水仙花数"是一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 程序分析: 利用for循环控制100-999的数,每个数...
  • PHP经典实用案例1000个

    千次阅读 2018-07-09 16:48:34
    推荐特效 PHP功能插件 更多 &gt;09-07 PHP合成多图片08-28 百度地图根据经纬度获取国家、州市等地址相关信息08-06 PHP读取身份证姓名和身份证号码API07-31 cropped仿新浪微博头像上传裁剪缩小放大预览07-...
  • MapReduce初级经典案例实现

    万次阅读 多人点赞 2014-09-29 16:53:40
    1、数据去重  "数据去重"主要是为了掌握和利用并行化思想来对数据进行有意义的筛选。统计大数据集上的数据种类个数、从网站日志中计算访问地等这些看似庞杂的任务都会涉及数据去重。下面就进入这个实例的...
  • 所谓典型局域网就是由一台具备三层交换功能的核心交换机接几台分支交换机。本文将为大家介绍以太网络建立多个VLAN典型案例
  • Hadoop经典案例——单词统计

    千次阅读 2021-11-19 22:05:10
    通过 Hadoop经典案例——单词统计,来演示 Hadoop集群的简单使用。 (1)打开 HDFS 的 UI,选择Utilities→Browse the file system查看分布式文件系统里的数据文件,可以看到新建的HDFS上没有任何数据文件。 (2)...
  • 01 正文 一、故障排除思路... 2、添加回路由; 故障案例-9 :内网服务器无法被公网访问 现象:在学校外无法通过公网地址访问学校WEB服务器; 排除方法:出口路由器是否做了端口映射; 解决方法:添加端口映射来解决。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 61,164
精华内容 24,465
关键字:

典型案例是指什么