精华内容
下载资源
问答
  • 同质异构
    2020-02-19 12:20:48

    判断两个字符串是否是异构同质

    在之前刷题看见了一个比较有趣的题目,在这里分享了一下,好好编码,早日上岸。

     

    题目:

    判断两个字符串是否是异构同质,异构同质的定义如下:一个字符串的字符,重新排列后变成另外一个字符串。

    要求:

    输入字符串合法字符集是【a-z,A-Z,0-9】,大小写敏感,不考虑输入异常的情况。

    例如:

    输入 ads   asd   输出 TRUE;

     

    看完题目,我想起来的第一个就是自己实现一个字符串的比较过程,这个只是打乱了而已,但是我们这样看一下这个字符串,如果返回时TRUE,证明这两个字符串是异构同质的性质,那么就代表了他们有相同数量的字母而且这些字母个数也是相等的,那整个字符串的ASCII值肯定是一样的,以此我写出了以下的代码。

    #include <stdio.h>
    #include <string.h>
    bool judge(const char *str, const char *ptr)
    {
    	int key=0;
    	//if (strlen(str) == strlen(ptr))//  判断是不是一样长,后面还要遍历一次字符串 其实感觉没有什么用
    	while (*str != '\0'&&*ptr != '\0')
    	{
    		key += (*str - *ptr);
    		str++;
    		ptr++;
    	}
    	if (*str == '\0'&&*ptr == '\0'&&key == 0)
    	{
    
    		return true;
    	}
    	return false;
    }
    
    int main()
    {
    	char *str = "ab0d";
    	char *ptr = "a0bd";
    	if (judge(str, ptr))
    	{
    		printf("TRUE\n");
    	}
    	else
    	{
    		printf("FALSE\n");
    	}
    	return 0;
    }

    时间复杂度是O(N)只遍历一个字符串,空间复杂度O(1);

    写完后,看了下大家的评论,发现还有一种方法就是,将两个字符串转化成字符数组,然后用排序的方式,将他们排序,最终比较。

    方法可行,但是相比我的那种还是复杂一点。

    更多相关内容
  • roofline模型用于描述在计算平台的算力和带宽的限制下,程序所能达到的理论性能上界。可以看到,roofline模型的纵轴为可达算力:其中A I AIAI为访存比,B W BWBW为带宽。如果把带宽比作水管,把算例比作流过水管的...

    关于roofline模型的起源来源于一篇论文

    理论基础:

    \\ \mathbf{FLOPS=\frac{\# FLOP}{time(Sec)}=\frac{\#FLOP}{Byte} \cdot \frac{Byte}{time(Sec)}=(Arithmetic \ Intensity) \times (BandWidth)=AI \times BW}

    两边取对数:

    \\ \mathbf{log(FLOPS)=log(AI\times BW) = log(AI) + log(BW) =>y(log(FLOPS))=x(log(AI)) + b(log(BW))}=>y=x+b

    roofline模型用于描述在计算平台的算力和带宽的限制下,程序所能达到的理论性能上界。水平线和对角线为这个边界模型命名。Roofline会根据内核的操作强度设置其性能的上限。如果我们把操作强度想象成一根柱子撞上了屋顶,要么它撞上了屋顶的平部分,这意味着性能受计算限制,要么它撞上了屋顶的倾斜部分,这意味着性能最终受内存限制。

    请注意脊点,即斜屋顶和水平屋顶的交汇处,提供了对计算机整体性能的洞察。脊点的横坐标是实现最大性能所需的最小操作强度。如果脊点非常靠右(带宽小),那么只有操作强度非常高的核才能实现该计算机的最大性能。如果它在最左边,那么几乎任何内核都可能达到最大性能。脊点暗示了程序员和编译器作者达到峰值性能的困难程度。

    image

    roofline

    如上图,为roofline模型的示意图,有三个重要概念:

    1. 算力:每秒所完成的浮点运算次数,单位为FLOP/s或GFLOP/s
    2. 带宽:每秒所完成的内存读取量,单位为Byte/s或GByte/s
    3. 计算密度:又称访存比,是算力与带宽的比值,即每字节读取所完成的浮点运算量,单位为FLOP/Byte

    可以看到,roofline模型的纵轴为可达算力:

                                   Attainable GFLOP/s=min{Peak GFLOP/s,AI∗BW}

    其中A I AIAI为访存比,B W BWBW为带宽。roofline模型分为两个阶段:

    • 第一阶段为带宽限制(Bandwidth-bound),该阶段随着访存比的增大,可达算力也会增大,但是无法到达峰值算力,是因为带宽的限制(假如带宽无限大,即斜率无限大,那就可以到达峰值算力)。这个时候,对于用户来讲,就可以买一个更便宜一些的CPU,因为强大一些的CPU算力发挥不出来。
    • 第二阶段为算力限制(Compute-bound),该阶段无论访存比怎么增大,可达算力都为峰值算力。这个时候,就可以购买一些便宜一些的内存颗粒,因为即便使用高速内存,性能也发挥不出来。

    如果把带宽比作水管,把算例比作流过水管的水流,可以形象展示如下:

    针对这种划分,我们大概可以将模型分为两类:

    1.算力未发挥型的,对应爬坡图.

    2.带宽未发挥型的,对应roof图.

    3.在转折点处,既不浪费带宽,也不浪费算力,算是一个平衡,是不是纳什均衡?

    参考资料:

    Roofline模型初步_宋宝华的博客-CSDN博客

    原始论文

    下图中带有两个核心的Opteron X2与其后继产品Opteron X4的四个核心进行比较。为了简化电路板设计,它们共用同一个插座。因此,它们具有相同的DRAM通道,因此可以具有相同的峰值内存带宽,尽管X4的预取性能更好。除了使核数翻倍之外,X4每个核的峰值浮点性能也提高了一倍:X4核可以在每个时钟周期发出两个浮点SSE2指令,而X2核可以每隔一个时钟发出两个。由于时钟速率略快(X2为2.2 GHz, X4为2.3 GHz),因此在相同的内存带宽下,X4的峰值浮点性能是X2的4倍多一点。

    图中比较了两个系统的Roofline模型。正如预期的那样,Opteron X2的脊点从1.0右移到Opteron X4的4.4。因此,要想在X4中获得性能提升,内核的操作强度需要大于1。

    下图展示了Roofline模型添加了天花板。虽然较高的天花板没有标记为较低的优化,但它们暗示:要突破一个天花板,您需要已经突破下面的所有天花板。图2a显示了如果浮点运算组合不平衡,计算“上限”为8.8 GFlops/秒,如果缺少提高ILP或SIMD的优化,则为2.2 GFlops/秒。图2b显示了没有软件预取的内存带宽上限为11 GBytes/sec,没有内存亲和性优化的内存带宽上限为4.8 GBytes/sec,只有单位跨步优化的内存带宽上限为2.7 GBytes/sec。(由于坐标图单位为LOG后的带宽和AI,所以其斜率并不代表BW,斜率固定为1.此时带宽为Y轴上的截距).

    图2c将其他两个图合并成一个图。内核的操作强度决定了优化区域,从而决定了要尝试哪些优化。图2c中间显示了计算优化和内存带宽优化重叠。选择这些颜色是为了突出重叠部分。例如,Kernel 2位于右边的蓝色梯形中,这意味着只处理计算优化。如果内核位于左下角的黄色三角形中,模型会建议只尝试内存优化。内核1位于中间的绿色(=黄色+蓝色)平行四边形中,这建议尝试两种类型的优化。注意,Kernel 1的垂直线低于浮点不平衡优化,优化2可以跳过。

    总结:

    Roofline模型为性能提供了一个上限。假设您的程序在远低于它的Roofline的情况下执行。应该执行哪些优化,以什么顺序执行?我们利用这一工具指导执行哪些优化,我们可以将这些优化看作是适当的Roofline之下的“性能上限”,这意味着如果不执行相关的优化,就无法突破上限。

    优化方法包括:

    软件预取:使用软件预取。通常,最高的性能要求在运行中保持许多内存操作,这更容易通过预取来实现,而不是等待数据被程序实际请求。在某些计算机上,软件预取比单独的硬件预取提供更多的带宽

    SIMD&ILP并发:充分利用CPU的数据并发能力和流水线的并发能力。

    利用存储亲和力:略

    重构单元步幅访问的循环:优化单元跨步内存访问涉及硬件预取,这将显著增加内存带宽。


    结束

    展开全文
  • 同质图,异质图以及属性图

    千次阅读 2020-09-02 17:34:06
    异构图 指的是图中的节点类型或关系类型多于一种。 属性图 在异构图基础上增加了额外的属性信息。 对于节点类型和关系类型的理解 比如我今天看了电影《流浪地球》,那“我”作为观众和电影《流浪地球》之间就建立了...

    概念区别

    • 同质(Homogeneity)图
      同质(Homogeneity)图指的是图中的节点类型和关系类型都仅有一种。
    • 异质(heterogeneous)图
      指的是图中的节点类型或关系类型多于一种。
    • 属性图
      在异质图基础上增加了额外的属性信息。

    对于节点类型和关系类型的理解

    比如我今天看了电影《流浪地球》,那“我”作为观众和电影《流浪地球》之间就建立了“看了”这一关系。异质(heterogeneous)图可以用来描述这种交互关系的集合。这个图分“观众”和“电影”两类节点,以及“看了”这一类边。“我”作为观众,和电影所具有的属性一定是不同的,需要用不同的模型或者不同的特征维度来表达。这张图就天然具有了异质(heterogeneous)性。
    再比如我去豆瓣上给《流浪地球》评了8分,那“我”和《流浪地球》之间就又建立了“评分”这一关系。“评分”和“看了”的属性也一定是不同的,如前者包含评分分数,后者则包含票价等

    对于属性信息的理解

    比如一个用户节点,节点存在着很多附加信息:“姓名”,“注册时间”等等内容

    两个图互为同构(isomorphism)图(图论)

    在这里插入图片描述
    参考:
    [1]《图论导引》李建中译
    [2]《深入浅出图神经网络》刘忠雨 P8
    [3] 图的基础知识
    [4] DGL更新报告
    [5] 在此对评论区提出的问题表现感谢!

    展开全文
  • 异构数据库间的互访

    2013-07-18 18:41:48
    利用中间层设计原理,实现异构数据库之间的互访与互操作
  • 分布式数据库简述

    千次阅读 2020-05-10 20:48:26
    同构型:构是指数据模型,同构是指各个节点都采用同一类型的数据模型(譬如都是关系型) 同质型:质是指数据库管理系统DBMS,比如有Oracle,DB2等,DBMS相同则称为同质的,不同则称为异质的. 同构同质型:分布式数据库...

    一、概述

         分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库,位于不同地点的许多计算机通过网络互相连接,共同组成一个完整的、全局的逻辑上集中、物理上分布的大型数据库。

    二、体系结构

          根据我国制定的《分布式数据库系统标准》,分布式数据库系统抽象为4层的结构模式。这种结构模式得到了国内外的支持和认同。4层模式划分为全局外层、全局概念层、局部概念层和局部内层,在各层间还有相应的层间映射。这种4层模式适用于同构型分布式数据库系统,也适用于异构型分布式数据库系统。

    三、发展历程-为生先死

    (图片引用自网络)
    年份是指关键事件发生事件的时间节点,并不一定是具体时间,欢迎更正。
    1.分布式数据库的研究始于20世纪70年代中期。世界上第一个分布式数据库系统SDD-1是由美国计算机公司(CCA)于1979年在DEC计算机上实现。
    2.自1970年代关系数据库兴起,当时的数据库主要功能就是保存数据和满足用户对数据计算需求,如Oracle/DB2等。
    3.1990年之后,出现开源数据库MySQL和PostSQL,这些数据库遵循摩尔定律的硬件提升速度,具有良好的单机性能。
    4.2005年左右,人们开始探索分布式数据库,带起了NoSQL这波浪潮。这些数据库解决的首要问题是单机上无法保存全部数据,其中以HBase/Cassadra/MongoDB为代表
    5.2012~2013年Google 相继发表了Spanner和F1两套系统的论文,让业界第一次看到了关系模型和NoSQL的扩展性在一个大规模生产系统上融合的可能性。
    6.之后NoSQL谢幕,NewSQL登场。NewSql是一类新式的关系型数据库管理系统。

    四、术语解释


    分布式数据库的术语对我来说需要记录的有点多,根据个人情况略过吧。
    DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。
    DDBS:分布式数据库系统,包含分布式数据库管理系统(DDBMS)和分布式数据库(DDB)。
    集中式数据库系统
    分布式数据库系统:完整的、全局的(意味着支持所有业务),逻辑上集中、物理上分布(意味着单独的数据库可以不必包含所有数据)的大型数据库.
    同构型:构是指数据模型,同构是指各个节点都采用同一类型的数据模型(譬如都是关系型)
    同质型:质是指数据库管理系统DBMS,比如有Oracle,DB2等,DBMS相同则称为同质的,不同则称为异质的.
    同构同质型:分布式数据库系统中,数据模型和数据库管理系统(DBMS)相同。
    同构异质型:分布式数据库系统中,数据模型相同,但是数据库管理系统(DBMS)相同。
    异构型DDBS:分布式数据库系统中,数据模型和数据库管理系统(DBMS)都不相同。

    集中式计算:计算几乎完全依赖于一台大型的中心计算机的处理能力。
    分布式计算:在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。(中国科学院的定义)。
    协作式计算:看作为一种协作式的分布计算。在这种模式中,计算机之间不仅仅像在分布式计算中那样互相传递数据,实现信息共享,而且要进行更深层次的共享,也就是说用两台或更多的计算机来共同完成一个处理任务。
    数据分片:水平分片,垂直分片,导出分片,混合分片
    水平分片:按一定的条件把全局关系的所有元组划分成若干不相交的子集,每个子集为关系的一个片段(把同一张表中的数据拆分到不同的数据库或表中进行存储,主要有分表,分库两种模式)。
    垂直分片:把一个全局关系的属性集分成若干子集,并在这些子集上作投影运算,每个投影称为垂直分片(就是根据不同的业务进行拆分的,拆分成不同的数据库,比如会员数据库、订单数据库、支付数据库、消息数据库等)
    导出分片:又称为导出水平分片,即水平分片的条件不是本关系属性的条件,而是其他关系属性的条件(具有一定业务关系的数据放一起,比如组织信息和绩效信息)。
    混合分片:以上三种方法的混合。可以先水平分片再垂直分片,或先垂直分片再水平分片,或其他形式,但他们的结果是不相同的。
    数据分配方式
    集中式:所有数据片段都安排在同一个节点上。
    分割式:所有数据只有一份,它被分割成若干逻辑片段,每个逻辑片段被指派在一个特定的场地上。
    全复制式:数据在每个场地重复存储。也就是每个场地上都有一个完整的数据副本。
    混合式:这是一种介乎于分割式和全复制式之间的分配方式。
    元组(tuple)是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。 在二维表里,元组也称为行。
    HBase:典型的分布式数据库,底层使用HDFS分布式文件系统作为支撑(HBase本身并不存储数据,数据还是以文件的形式存储在HDFS上)。HBase是Hadoop生态中的重要产品,Google BigTable的开源实现。
    BigTable:Google内部使用的分布式数据库,构建在GFS的基础上,弥补了分布式文件系统对于小对象的插入、更新、随机读请求的缺陷。


    五、总结:


           本意是总结分布式数据库,却意外的进入到NewSql时代,不得不多喜忧参半啊。在起初查询了很多资料,都没找到2013年之后分布式数据库的发展,这个是我的一个疑惑,想必也是诸位的疑惑。其实原因很简单,数据存储截止目前经历文件存储,关系数据库,Nosql,NewSql四个阶段。其中NoSql数据库对于分布式数据库,自2015年之后数据存储开启NewSql模式,Nosql(分布式数据库)已经逐渐退出历史舞台。而对于NewSql想必大家都早有接触,只是或许和我之前一样,或许是因为和关系型数据库过度的太柔和,所以没能清楚的感受到NewSQL时代的到来,NewSql是对各种新的可扩展/高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。常见的newsql数据库供应商包括(顺序随机)Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice和NimbusDB,以及 Drizzle、带有 NDB的 MySQL 集群和带有HandlerSocket的MySQL。后者包括Tokutek和JustOne DB。相关的“NewSQL作为一种服务”类别包括亚马逊关系数据库服务,微软SQLAzure,Xeround和FathomDB。

    参考资料:

    https://www.oschina.net/news/84386/about-distributed-database?utm_source=tuicool
    https://www.sohu.com/a/320178859_505827
     

    展开全文
  • 实际复杂场景的实验表明,本文提出的基于多源异构数据融合的目标跟踪和定位方法,能够解决传统依赖单源同质数据的目标跟踪方法所面临的光照变化和遮挡交错等难点问题,并且可以获得较为准确的运动目标三维位置,具有良好...
  • 用户,.tag,文档>建模,要么通过同质超图对不同类型的关系建模。 前一种方案会导致严重的信息丢失,而后一种方案无法识别不同类型的关系的影响。 在本文中,我们提出了一种异构超图模型,该模型可以充分利用标签...
  • Android体系结构:base-mvvm 灵感主要来自的优秀作品。 但是,与原始应用程序相比,该应用程序在导航方面进行了一些调整,并且还包含一些其他功能。 此仓库是一个示例应用程序,使用ViewModel , RxJava2 , ...
  • function splitstr (str){ //反过来思考,要随意排序能相等则意味着两者必须长度一样 let str1 = str.split(" ")[0]; let str2 = str.split(' ')[1]; let arr1 = Array.from(str1); let arr2 = Array.from(str2...
  • A.2非线性动态系统

    2020-06-04 10:59:06
    概念   考虑初始系统的微分方程是非线性,其标准形式为x˙=f(t,x,u)y=h(t,x,u)(1)\begin{array}{l} \dot{\mathbf{x}}=\mathbf{f}(t, \mathbf{x}, \mathbf{u}) \\ \mathbf{y}=\mathbf{h}(t, \mathbf{x}, \mathbf{u}...
  • 为了研究幅度异构环境中样本矩阵求逆(SMI)算法的杂波归零性能,我们基于随机矩阵理论推导了平均信号干扰加噪声比(SINR)损失的解析表达式。结果表明,与训练数据利用同质次要样本(被测单元(CUT)中的快照均独立...
  • 同质是一个化学概念。homo词根来自于希腊语,意思是相同的。当把两种互不相溶的液体均匀混合在一起,就会形成同质化的液体。比如可乐,或是牛奶。 各向同性,顾名思义,就是指在各个方向上保持同样性质的特性。iso...
  • 贮存一种存储引擎,可对异构数据存储进行同质访问,例如,关系数据库(如MySQL),NoSQL数据库(如MongoDB),简单的文件系统结构等。
  • 尽管存在一些方法为了解决同质无线传感器网络中的问题,异构无线传感器网络中对该问题的研究进展缓慢。 受到蚁群优化(ACO)解决组合问题的有希望的性能的启发,本文提出了一种基于ACO的方法,该方法可以最大限度地...
  • 请编码实现一个命令行工具,判定两个指定的字符串是否异构同质异构同质的定义为:一个字符串的字符重新排列后,能变成另一个字符串。 输入描述: 以空格字符分隔的两个字符串;输入字符串的合法字符集为[a-zA-...
  • CP AUTOSAR、搞异构SoC、搞车载以太网、搞车载OS等就找搞一下汽车电子。 全系内容可在《搞一下汽车电子》后台回复 “系列”,或进入菜单栏 “分享平台” --> “系列分享” 本系列请点击:《搞一下 异构SOC计算...
  • 由于当前网络设备的高度同质性,如果网络中的一个节点通过利用其漏洞(例如,恶意数据包攻击)而受到损害,则该网络就会受到损害。 现有的许多工作都采用异构概念来提高网络的生存能力。 例如,“多样化的变体”被...
  • 第七章 动态异构冗余架构 DRS架构的静态性、确定性和相似性在非传统安全领域表现出严重的基因缺陷,一致对广义不确定扰动缺乏维持“初始信息熵不减”的能力,因而其抗攻击不具备稳定的稳定鲁棒控制和品质鲁棒控制...
  • 现有的研究主要集中在静态同质/异构网络或动态同质网络上。然而,动态异构网络在现实中更为普遍,如社会网络、电子商务网络、引文网络等,对动态异构图嵌入的研究还比较缺乏。在本文中,我们提出了一种新的动态异构...
  • 现有的大多数研究都假设频谱资源是同质的。但是,由于不同的许可区域和干扰范围,具有不同频率的频谱本质上是异构的。在本文中,我们集中在频谱资源的异质性上,并提出了一种具有策略验证性的双重拍卖机制“结构”。...
  • 基于图关注网络的异构网络类型感知锚链路预测 摘要 跨异构网络的锚定链路预测在跨网络应用中起着举足轻重的作用。异构网络锚链路预测的难点在于如何综合考虑影响节点对齐的因素。近年来,基于网络嵌入的锚链预测...
  • 大多数流行的应用程序使用分布式数据库,并且需要了解分布式数据库系统的同质异构特性。 同质分布式数据库意味着每个系统都有相同的数据库管理系统和数据模型。通过添加新的节点和位置,它们更容易管理和扩展性能...
  • 提出了同质连接原理,设计了一种针对不同类型节点的相关性指标,用于描述不同类型节点间的链路存在概率,并将其与传统的邻近性指标相结合拓展到异构链路预测中。然后,将异构信息网络中的被标记数据和无标记数据融合...
  • 摘要大量真实世界的图形或网络本质上是异构的,涉及到多种多样的节点类型和关系类型。异构图嵌入是将异构图丰富的结构和语义信息嵌入到低维节点表示中。现有模型通常在异构图中定义多个元路径,以捕获复合关系并指导...
  • 当标签x的结点更大程度上连接其他标签x的结点的时候,这个网络是同质的。非同质的网络是异质的。 这里定义的同质异质网络是指行骗者更可能连接着其他行骗者。合法人更可能连接其他合法人。 令l为网络中合法结点的...
  • 【PyG】异构图学习 - 图神经网络

    千次阅读 2021-12-30 06:38:30
    使用PyG库进行异构图神经网络学习
  • 1.1 同质图 1.1.1 直接创建:dgl.graph() 1.1.3 节点与边的特征 1.2 异质图 1.2.1 异质图 Heterogeneous Graphs 1.2.2 创建异质图-dgl.heterograph() 1.3 Using DGLGraph on a GPU 1.4 从外部资源创建 2 图...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,739
精华内容 695
关键字:

同质异构