Sequence

x86汇编之栈与子程序调用

感情迁移 提交于 2020-04-21 23:30:52
什么是栈 栈与普通数据结构所说的栈的概念是相似的,遵循后进先出原则。不同的是汇编中所说的栈是一个在内存中连续的保存数据的区域,也即是实际存在的内存区域,进栈和出栈遵循后进先出原则。 在x86架构中,栈是向下生长的,即栈顶指针小于栈底指针。 ESP ESP是x86架构中用于保存当前栈顶位置的寄存器。更多详细内容请参阅参考资料 [1] 下面的两对代码是相互等价的 入栈操作: push eax ;修改栈顶指针 sub esp, 4 ; 由于是向下生长,所以esp - 4, 减去4是因为eax占4个字节 mov DWORD PTR SS:[ESP], eax ;放入esp指定的内存区域 出栈操作 pop eax mov eax, dword ptr ss:[esp] add esp, 4 ;理解同入栈,注意这两行代码顺序与入栈不同 清除栈顶数据 假如我们要清除栈顶的四个双字的数据,只需要修改ESP即可 add esp, 4 * 4 ; 一个双字占4个字节,共4个双字 EBP 栈的一个典型应用就是函数调用时的参数传递。ESP保存的是当前栈的栈顶指针,EBP保存的是当前stack frame的基址 [2] . 如 [3] 所述,在可执行环境中函数经常以stack frame的形式来进行参数传递和函数局部变量的访问。stack frame的概念使得每一个子程序(在汇编中函数通常称为子程序

【原】用Java编写第一个区块链(二)

走远了吗. 提交于 2020-04-21 07:11:56
  这篇文章将去介绍如何使用区块链进行交易。  【本文禁止任何形式的全文粘贴式转载,本文来自 zacky31 的随笔】 目标:   在 上一篇文章 中,我们已经创建了一个可信任的区块链。但是目前所创建的链中包含的有用信息还是比较少的。今天,我将会用交易信息来替换之前的 data 内容,我将会创建一个简单的加密货币,叫作 “ noobcoin ”。 前提: 已经了解了区块链基本知识 用到 GSON 和 bounceycastle 开始吧   在加密货币中,货币的所有权将会以交易的方式被传递,参与交易的人将会有一个地址,用来发送和接收交易金额。   上图,反映了一次交易过程。   首先,我们创建一个 Wallet 类,用来存放公钥和私钥。 import java.security.PrivateKey; import java.security.PublicKey; public class Wallet { public PrivateKey privateKey; public PublicKey publicKey; }   那么,创建好的公钥和私钥是干嘛用的呢?   其实,公钥对于货币来说就是我们所需要的地址。在每次交易过程中可以共享给交易方的。我们的私钥是用来加密每次的交易,这样保证了拥有私钥的人才能够进行交易。私钥只能被自己说知道!同时,公钥伴随着交易时传递给交易方

jqgrid 上移下移单元格

时间秒杀一切 提交于 2020-04-20 15:36:04
在表格中常常需要调整表格中数据的显示顺序,我用的是jqgrid,实现原理就是将表中的行数保存到数据库中,取数据时按行进行排序 1、上移,下移按钮 <a href= " javascript:void(0) " onclick= " operateWithOneRowById(up) " class = " linkButton " >上移</a> <a href= " javascript:void(0) " onclick= " operateWithOneRowById(down) " class = " linkButton " >下移</a> 2、上移下移 功能 function operateWithOneRowById(callback) { var selected = tableObj.jqGrid( ' getGridParam ' , ' selrow ' ); if (selected == null ) { alert( " 请用鼠标点击选择一行后再执行操作! " ); return ; } return callback(selected); } 3、这里的callback是up和down 函数的合并,那么我们再看看这两个函数 function up(selected) { if (selected == 1 ) return ; else {

Python基础_文件读写

梦想的初衷 提交于 2020-04-20 13:39:37
一、I/O操作概述 I/O概述: I/O在计算机中时指Input/Output,也就是Stream的输入与输出。我们通常说的输入与输出其实在操作系统中都是相对于内存而言的,InputStream(输入流)是指数据从外部(网络、键盘、I/O设备)流进内存,OutputStream正好与之相反,数据从内存流出到外部。程序运行时,数据都是在哎内存中驻留,由CPU这个超级快的计算核心来执行,涉及到数据交换的地方就需要IO接口。 IO接口的提供以及高级编程语言中的IO操作的实现: 操作系统十个通用的软件程序,其通用目的如下: 硬件驱动、进程管理、内存管理、网络管理、安全管理、I/O管理 操作系统屏蔽了底层硬件,向上提供通用接口。因此,操作I/O的能力是由操作系统提供的,每一种编程语言都会把操作系统提供的低级C接口封装起来供开发者使用,Python也不例外。 二、文件读写实现原理和操作步骤 1.文件读写实现原理: 由于操作I/O的能力是由操作系统提供的,且操作系统不允许普通程序直接操作磁盘,所以读写文件时需要操作系统打开一个对象,这个对象通常被称之为文件描述符--file descriptor,简称fd,这个就是我们在程序中要操作的文件对象。 通常高级编程语言会提供一个内置的函数,通过接收‘文件路径’、‘文件打开模式’等参数来打开一个文件对象,并返回该文件对象的文件描述符

UVA11876 N + NOD (N)【欧拉筛法+前缀和】

自闭症网瘾萝莉.ら 提交于 2020-04-20 05:22:47
Consider an integer sequence N where, N0 = 1 Ni = Ni−1 + NOD(Ni−1) for i > 0 Here, NOD(x) = number of divisors of x. So the first few terms of this sequence are 1 2 4 7 9 12 18 … Given two integers A and B, find out the number of integers in the above sequence that lies within the range [A, B]. Input The first line of input is an integer T (T < 100000), that indicates the number of test cases. Each case contains two integers, A followed by B (1 ≤ A ≤ B ≤ 1000000). Output For each case, output the case number first followed by the required result. Sample Input 3 1 18 1 100 3000 4000 Sample

BUAA OO Unit2 电梯调度

戏子无情 提交于 2020-04-19 11:43:35
这次作业完成了一个开环可选层电梯调度系统。第二次迭代加入了容量限制、多部电梯,第三次迭代加入了电梯楼层分工、增添电梯请求。 1. 系统架构 graph LR MainClass--Requests-->Schedule Executor--Notify-->Schedule Schedule--Update-->Executor MainClass--Create-->Elevators Schedule--Check-->Elevators Executor--Operate-->Elevators Schedule--Adapt-->Method MainClass用于对各个子系统的组装,发送请求至Schedule Schedule用于接收来自MainClass、Executor的信息,更新状态 Executor监听Schedule的改变,使用单线程操纵所有电梯,同时将操作结果返回Schedule。 Method为策略模块,实现同步控制与策略模块的分离,可以用于适配不同的策略。 2. 同步控制 定时控制 同步控制的主要由Schedule设定,由Executor执行。并发控制的核心为一个阻塞定时监听器,可实现可调整的定时控制。这个模块的实现方法参考了 java.utils.Timer 。 private long scheduledTime = Long.MAX_VALUE;

你好AI丨20 篇聊天机器人领域必读论文速递!

烈酒焚心 提交于 2020-04-18 17:30:56
     聊天机器人(Chatbot)是经由对话或文字进行交谈的计算机程序。其能够模拟人类对话,通过图灵测试。自 1966 年以来人类从未停止过对聊天机器人的探索。现如今,苹果语音助手 Siri,微软的小冰、小娜、Rinna、Tay、Zo、Rukkkuh,亚马逊的Echo,百度的小度机器人,京东JIMI客服机器人,网易七鱼等 Chatbot 纷纷进驻到生活的各个领域,改变着我们的生活。       历史发展脉络    1966 年,MIT 的计算机科学家 Joseph Weizenbaum 发表了 ELIZA,它可以根据人工设计的脚本与人类交流,是世界上第一个模仿人类谈话的机器人; 1971 年, 斯坦福大学的 Kenneth Colby 开发出 Parry 聊天机器人,它模仿偏执狂患者,这是第一个通过图灵测试的聊天机器人; 1988 年,加州大学伯克利分校的 Robert Wilensky 等人开发了名为 UNIX Consultant 的聊天机器人系统; 1990 年,美国人 Hugh Loebner 设立 Loebner Prize,奖励首个与人类回复无差别的计算机程序,即聊天机器人系统; 1995 年,Richard Wallace 博士开发的 ALICE 系统允许用户自定义自己的聊天机器人,被认为是 20 世纪最伟大的聊天机器人。ALICE 在 2000、2001 和

Counting the number of duplicates in a list [duplicate]

て烟熏妆下的殇ゞ 提交于 2020-04-18 15:54:31
问题 This question already has answers here : python count duplicate in list (6 answers) Closed 2 years ago . I am trying to construct this function but I can't work out how to stop the function counting the same duplicate more than once. Can someone help me please? def count_duplicates(seq): '''takes as argument a sequence and returns the number of duplicate elements''' fir = 0 sec = 1 count = 0 while fir < len(seq): while sec < len(seq): if seq[fir] == seq[sec]: count = count + 1 sec = sec + 1

【Vue.js实战案例】- Vue.js递归组件实现组织架构树和选人功能

一世执手 提交于 2020-04-18 02:35:39
大家好!先上图看看本次案例的整体效果。 完整版实战课程附demo : Vue.js递归组件实现多层级菜单结构树+仿QQ建群选人功能 浪奔,浪流,万里涛涛江水永不休。如果在jq时代来实这个功能简直有些噩梦了,但是自从前端思想发展到现在的以MVVM为主流的大背景下,来实现一个这样繁杂的功能简直不能容易太多。下面就手把手带您一步步拨开这个案例的层层迷雾。 实现步骤如下: api构建部门和员工信息接口,vuex全局存放部门list和员工list数据信息。 api: export default { getEmployeeList () { return { returncode: 0 , message: '' , result: [ { id: 1 , employeeName: ' 吴亦凡 ' , departmentId: 44 }, { id: 2 , employeeName: ' 鹿晗 ' , departmentId: 45 }, { id: 3 , employeeName: ' 孙红雷 ' , departmentId: 44 }, { id: 4 , employeeName: ' 周杰伦 ' , departmentId: 45 }, { id: 5 , employeeName: ' 张国荣 ' , departmentId: 45 }, { id: 6 ,

今日Paper|联合抽取;流式语音识别;差异学习;Skip-Thought向量等

烂漫一生 提交于 2020-04-17 20:02:41
   目录   在序列标注模型中使用位置注意力进行抽取实体与重叠关系的联合抽取   将混合CTC/Attention方法嵌入到Transformer结构中实现在线端到端的流式语音识别架构   基于人工反向修正数据的差异学习   利用一种基于多属性邻近度的方法从可比较的新闻语料库中挖掘事件   Skip-Thought向量    在序列标注模型中使用位置注意力进行抽取实体与重叠关系的联合抽取   论文名称:Joint extraction of entities and overlapping relations using position-attentive sequence labeling   作者:Dai Dai / Xinyan Xiao / Yajuan Lyu / Shan Dou / Qiaoqiao She / Haifeng Wang   发表时间:2019/7/17   论文链接:https://aaai.org/ojs/index.php/AAAI/article/view/4591   本文设计了一种基于位置信息和上下文信息的注意力机制,同时将一个关系抽取任务拆成了n(n为句子的长度)个序列标注子任务,一个阶段即可将实体、关系等信息抽取出来。   本文发表时在两个数据集上达到了SOTA,并且对于跨度长的关系、重叠关系表现尤其好。