Alice

构建万物可信互联的基石,带你深度剖析区块链跨链的关键技术,满满是干货!

*爱你&永不变心* 提交于 2021-02-20 11:02:02
【摘要】 什么是区块链,相信你一定有所了解,那么你是否了解区块链跨链技术呢?本文将从区块链跨链技术的起源发展、相关名词、关键技术和模型实现几个方面进行深度剖析,干货满满! 1.区块链跨链技术诞生背景及发展历程 1.1 什么是跨链? 区块链技术经过10来年演进,已经被认为是可以参与未来可信社会构建的重要基础设施。但是现实的社会中包括许多行业和不同的经济领域。把整个现实世界中的各个行业都套用区块链是不现实的,也是不合适的。不同行业、不同经济领域的商品可以通过市场实现价值交换。每个区块链系统都是一个独立的价值经济体系。区块链跨链技术是连接独立区块链的枢纽,承载着不同价值体系的区块链之间的交换功能。价格是交换货物的前提,价格由商品本身的价值决定,受供需关系的影响,供需关系又建立在市场之上。为了实现不同区块链上的价值交换,区块链通过跨链为每个独立区块链中的价值交易市场提供跨链契约服务。每个区块链是一个独立的账本,两个不同的区块链对应两个不同的独立账本,两个账本之间没有关联关系。跨链这个技术,打通不同账本之间的障碍,允许价值跨越不同区块链进行流转。本质上,价值不能在账间转移。但是对于一个特定的用户来说,一个区块链中存储的价值可以转化为另一个区块链价值,从而实现了价值的循环。 1.2 诞生的背景及发展历程 随着2008年比特币诞生以来,区块链技术已经有了非常广泛的发展

Leetcode solution 1169: Invalid Transactions

|▌冷眼眸甩不掉的悲伤 提交于 2021-02-18 04:04:57
Problem Statement A transaction is possibly invalid if: the amount exceeds $1000, or; if it occurs within (and including) 60 minutes of another transaction with the same name in a different city. Each transaction string transactions[i] consists of comma separated values representing the name, time (in minutes), amount, and city of the transaction. Given a list of transactions , return a list of transactions that are possibly invalid. You may return the answer in any order. Example 1: Input: transactions = ["alice,20,800,mtv","alice,50,100,beijing"] Output: ["alice,20,800,mtv","alice,50,100

Scyther tool 入门

☆樱花仙子☆ 提交于 2021-02-13 16:42:49
1、Scyther 适合分析什么样的协议 首先协议分析工具并不是可以分析所有的协议,每种协议都有其自己适合的分析方法,并不都是可以使用形式化方法来分析。 目前协议分析方法: 模态逻辑分析(BAN逻辑,Bieber逻辑等)、定理证明分析(耗费资源)、模型检测分析。 Scyther适合分析协议的特征: 参与协议的对象较少(列如:客户端,服务端,认证端) 协议自身没有使用加密、认证、过程协商。而是依托第三方加密协议 不支持及双线性对和的协议分析 下图是比较 形式化分析的工具性能的截图(基本上可以对自己要分析的协议有一个基本的判断之后,就可以选择使用什么样的工具来分析协议) 2、Scyther 如何分析一个协议 下面我简单举例一个单纯使用加密的的简单协议(A----->B之间的消息发送消息c,发送之前对消息单纯的使用hash函数加密 ) 首先我么按照上面的描述形式化这个简单的列子(并申明收发双方之间可以接受到消息)------结果证明 我们形式化过程没有问题,接受者b 和发送者 a 可以实现消息的传递(双方认可) 下面我们对协议进行验证是否存在敌手攻击,即就是协议消息被敌手获取的漏洞,结果证明,即便是发送的时候使用了加密函数对消息加密,敌手仍然可以获取信息 (如图DY模型下输出两个攻击图) 3、Scytehr 的敌手模型 Dolev-Yao模型的概念(参考资料-----《A

几分钟带你快速了解聊天机器人!

為{幸葍}努か 提交于 2021-02-12 08:52:23
当我们谈起人机对话系统 现实中的人机系统 人机对话的发展历程 人机对话系统的四个主要功能 通用聊天机器人的五个主要模块 输入预处理 语音识别技术主要包括特征提取技术、模式匹配准则以及模型训练技术3个方面 自然语言理解 聊天机器人系统中的自然语言理解功能包括用户意图识别、用户情感识别、指代消解、省略恢复、回复确认及拒识判断等技术¨ 引。并且语法分析、语义分析、关键词提取、相似度计算等自然语言处理技术也是必不可缺的。 对话管理 封闭式 封闭式是指有明确的服务目标和服务对象,仅处理特定领域中的问题, 给对话的主题进行了限制。 开放式 开放式则没有一个清晰的目标和对象,对话涉及的主题很广,所需要的知识量也是巨大的。 答案生成 整个答案生成的过程包括了内容选择、文本规划、语句合成、指代表达生成、表层实现等阶段。 生成技术主要包括检索式和生成式 检索式 检索式是指在对话库中以搜索匹配的方式找到适合用户输人语句的最佳答案予以回复。 生成式 生成式是指采用一定的技术手段( 如深度学习技术) 自动生成新的回复内容。 输出处理 聊天机器人的构建方式 基于人工模板的聊天机器人 根据用户输入的句子,在模板库中找到匹配的问句模板,然后按照对应的应答模板生成答案, 返回给用户,如ALICE、Chat Scfipt 等。 基于检索的聊天机器人 对话库的要求很高,并且需要足够大,但是它的优点是回答质量高

2018CCPC吉林赛区(重现赛)部分题解

一个人想着一个人 提交于 2021-02-11 15:50:29
##The Fool 题目链接 ###Problem Description The Fool is numbered 0 – the number of unlimited potential –and therefore does not have a specific place in the sequence of the Tarot cards. The Fool can be placed either at the beginning of the Major Arcana or at the end. The Major Arcana is often considered as the Fool’s journey through life and as such, he is ever present and therefore needs no number. Given n ∈ N+, print the parity of ∑i=1N [ni], where [x] = max a (a∈Z,a≤x) ###Input The first line of the input contains one integer T ≤ 100, denoting the number of testcases. Then T testcases follow. In

转管理,先要问自己的5个问题

三世轮回 提交于 2021-02-10 08:03:04
想要成为一名管理者,并不是做个决定这么简单,做管理需要一套完全不同的技能。好的架构师,好的技术专家,并不一定代表一个好的管理者。 如何确定自己是不是适合管理岗位呢?可以先问问自己下面五个问题。 问题1:你的兴趣在哪,技术专家,还是带团队? 有没有想过自己五年后在做什么,届时 是否 工作得开心? 做技术专家,带团队做事情,还是自己创业, 搞清楚自己想要什么最重要 。 问问自己,做管理对你有什么吸引力?如果只是一心只想挣钱的话,说不定技术专家赚到的钱更多。如果只是觉得工作会轻松一点,那你肯定错了,管好自己与管好多个人,费心程度怎么可能一样呢? 问题2:你害怕面对冲突吗? 职场中发生冲突是不可避免的,如果你正考虑转型一个管理岗位,很可能 处理和协调冲突,会占用你较多的时间 。 管理者要有开放的心态,通过坦诚的沟通,去处理和解决工作中的困难,这是管理者一项必备技能。一旦处理不好冲突,就会有挫败感,毕竟大多数人都希望尽量避免冲突。 问题3:你善于激励别人吗? 作为技术专家,唯一管理对象是自己,而激励自己是一件相对容易的事儿,毕竟你最了解你自己。 然而,当管理一个团队时,你会发现自己面对的是不同性格的人,激励方法也因人而异。 对于一线管理者来说,同步战略,确定目标,确保大家对战略与目标的理解一致,让员工们知道自己可以怎样为公司的成功做贡献,让做的好的员工不断升迁,员工的动力就会增加。

石子游戏【博弈论】

不羁的心 提交于 2021-02-08 21:59:45
题目大意: 有 n 堆石子,两人轮流取石子,每次可以将一堆全部拿走,也可以选择其中 y 个拿,但是要求 y 与这堆石子的总个数互质。求谁会胜利。 思路: 明显的博弈论之 S G 函数。 我们可以发现,质数的 S G 值就等于上一个质数的 S G 值加一,而合数的 SG值就是它的最小质因子的 S G 值,所以,我们先预处理出所有质数(一遍 埃拉托斯特尼筛法 后顺便求出每个数的 SG值),再遍读入遍异或,再判断是 0 是 1即可。 时间复杂度: O(tn2),但是很多时间达不到 n 2 ,平均只有 O ( t n ) 。 代码: #include <cstdio> #include <iostream> using namespace std; const int N= 1000000 ; int t,n,sg[N+ 50 ],k,ans,x; void find_prime() // 筛质数 { sg[ 1 ]=k= 1 ; for ( int i= 2 ;i<=N;i++ ) { if (sg[i]) continue ; // 不是质数 sg[i]=++ k; for ( int j=i;j<=N;j+= i) if (!sg[j]) sg[j]=k; // if语句是必须的,因为合数的SG值是它最小值因子的SG值 } return ; } int main() { scanf(

201874040116-李鑫《面向对象程序设计(java)》第6-7周学习总结

血红的双手。 提交于 2021-02-08 03:29:07
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11605051.html 作业学习目标 深入理解程序设计中算法与程序的关系; 深入理解java程序设计中类与对象的关系; 理解OO程序设计的第2个特征:继承、多态; 学会采用继承定义类设计程序(重点、难点); 能够分析与设计至少包含3个自定义类的程序; 掌握利用父类定义子类的语法规则及对象使用要求。 第一部分:总结第五章理论知识  5.1 类,超类和子类   超类是已存在的类,子类是从某个超类继承而来的可以有更多属性和方法的类。   super关键字用来调用超类中的方法和设计子类的构造器。   java中,一个超类可以有多个子类,但是一个子类只能有一个父类。   java中,对象变量是多态的:一个对象变量既可以引用 当前类的对象 也可以引用 当前类的子类的对象。   final修饰的成员方法不能被子类重写,但可以重载和调用。 final修饰的类方法不能被继承,但可以创建对象。   抽象类:使用 abstract 关键字修饰的不能实例化对象的类,被继承后才能通过子类使用它的方法,  5.2 Object 类:所有类的超类   Object类是java中所有类的超类

python 列表和字符串

旧城冷巷雨未停 提交于 2021-02-06 15:44:56
python 列表中保留所有字符串前三项,并保存到一个新的列表 l = [s[:3] for s in data] python 在列表中查找包含所以某个字符串的项,并保存到一个新的列表 l = [s for s in data if 'FF' in s] # 两个list的差集,并集和交集 https://blog.csdn.net/liao392781/article/details/80577483 方法一: list1 = [ ' a ' , ' b ' , ' c ' ] list3 = list1 list2 = [ ' a ' ] for i in list2: list3.remove(i) list3 Out[ 7]: [ ' b ' , ' c ' ] 方法二: list3 = list(set(list1) - set(list2)) # 列表相除、列表相加 import numpy as np a =[1,2 ] # 1、得到列表 <class 'list'> b=[i/2 for i in a]; print (b) # 2、得到<class 'numpy.ndarray'> b=np.array(a)/2; print (b) # 多个列表加减,用numpy c=np.array(a)+np.array(b)*2 print (c)

JavaScript(es6)数组常用的方法

喜欢而已 提交于 2021-01-19 05:52:30
<h2>常用方法</h2> <p>1.forEach()</p> <div class="cnblogs_code"> <pre>var data = [1,2,3,4,5]; var sum = 0;<br />//求和 data.forEach((item)=>{sum+=item}) //给原数组的每个值加1 data.forEach((value,index,data)=>{data[index] = value + 1}) </pre> </div> <p>2.concat()  //合并多个数组,返回合并后的新数组,原数组没有变化。</p> <div class="cnblogs_code"> <pre>const array = [1,2].concat(['a', 'b'], ['name']); // [1, 2, "a", "b", "name"]</pre> </div> <p>3.filter()  //<strong>返回一个新数组,包含通过callback函数测试的所有元素。</strong></p> <div class="cnblogs_code"> <pre>var fil = [5,4,3,2,1]; smallvalues = fil.filter((x)=>{return x < 3}); console.log(smallvalues)/