- 博客(23)
- 收藏
- 关注
原创 erlang gen_server 源码分析 1
首先,类型的语法,源代码中使用的-callback,现在的新的语法应该已经和-spec一样了,即前者的功能后者也可以实现了,因此在erlang编程设计中也是使用-spec。同时,这里的对于函数的测试,一般都是返回一个元组{ok, ...}。 这里首先调用gen:start,后者通过start函数来调用do_spawn函数,do_spawn则调用proc_lib的start或者sta...
2017-11-23 21:23:19
642
原创 erlang gen_fsm源码分析
start函数调用gen:start,后者调用do_spawn,然后和gen_server相同,最后都要执行init_it函数,然后该函数执行init函数,并根据返回值执行不同的循环。 start(Mod, Args, Options) -> gen:start(?MODULE, nolink, Mod, Args, Options).start...
2017-11-21 21:46:56
323
原创 erlang数据类型(2)
关卡(guard):用来加强模式匹配的能力,对某个模式中的变量执行简单的测试和比较。when guard1, guard2, ... 用逗号隔开表示所有条件是和的关系。when guard1; guard2; … 用分号隔开表示所有条件是或的关系,这里是orelse case和if表达式:case Expression ofPattern1 [when Guar
2017-11-14 15:11:01
218
原创 erlang数据类型(1)
变量:erlang的变量是一次性赋值变量,=是一个模式匹配操作符。 Lhs = Rhs的意思是,计算右侧的值,将结果和左侧的模式相匹配。 原子(atom):仅由字符序列标识,被用于表示常量值,全局性的,以小写字母开头,可放入' '内(此时大写字母开头的将解释成原子),系统将之放在一个atom表中。唯一的运算是比较,比较时间是常量的。erlang中模块名和方法名都是原子。Erla
2017-11-14 10:47:03
527
原创 CSAPP 第十、十一、十二章
Chapter10 System-Level I/O: I/O是主存和外部设备间复制数据的过程,其中输入是从I/O设备复制数据到主存,输出是从主存复制数据到I/O设备。 10.1Unix I/O:一个Linux文件就是一个m个字节的序列。所有的I/O设备都被模型化为文件,所有的输入和输出都被当做相应的文件的读和写来执行。这种将设备映射为文件的方式,允许Linux内核引出一个简单
2017-07-31 21:37:16
378
1
原创 CSAPP 第八、九章
Chapter8异常控制流:发生在计算机系统的各个层次。8.1 Exception:异常是异常控制流的一种形式。一部分由硬件实现,一部分由操作系统实现。任何情况下,处理器检测有事件发生时,会通过一张exception table的跳转表,进行一个间接过程调用(异常),到一个专门设计用来处理这类事件的操作系统子程序(异常处理程序),异常处理完成,根据引起异常的事件类型,发生的情况:1.处理程序将
2017-07-31 21:36:29
538
原创 CSAPP 第三、五、六、七章
Chapter 3 程序的机器级表示: GCC C语言编译器以汇编代码形式产生输出,汇编代码是机器代码的文本表示,给出程序中的每一条指令。本章近距离观察汇编代码。 3.2.1机器级代码:对于machine-level编程来说,有两种抽象十分重要:1.指令集体系结构(Instruction Set Architecture ,ISA)定义machine-level程序的格式以及行
2017-07-31 21:35:08
408
原创 CSAPP 第二章
我们研究三种最重要的数字表示:无符号,补码以及浮点数。2.1 信息存储:大多数计算机使用8位的块(一个字节)作为最小可寻址存储器单元。机器级别的程序将存储器看作一个非常大的字节数组,称为虚拟内存。存储器每个字节都由唯一的数组(地址)标识,所有地址的集合称为虚拟地址空间。(32位操作系统支持的最大地址空间是2的32次方字节,即4G,同理,64位支持2的64次方字节,一个地址对应一个字节)
2017-07-20 21:46:26
429
原创 CSAPP 第一章
1.1 信息就是位+上下文:文本文件,二进制文件。系统中所有信息表示成为 a bunch of bits. 区分不同的数据对象的唯一方法是我们读取这些数据对象时的上下文1.2 介绍hello.c文件 翻译过程。使用GCC编译器翻译的四个阶段:1.预处理阶段(处理'#'开头的命令) 2.编译阶段(将文件翻译成为一个汇编语言程序)3.汇编阶段(翻译成为机器语言指令)4.链接阶段(库函数链接)1
2017-07-20 14:56:22
235
原创 CSAPP 前言
根据以前读过的《如何阅读一本书》,之前读CSAPP时,对于书的前言,序都会关注,我看的是英文版本,第二版,现在最新的版本已经是第三版了,奈何手头上只有第二版的,笔记也是第二版的,而第二版是主讲IA32,兼容x86-64。第三版主讲x86-64,所有习题均换成了64位。无妨,也总结一下那些自己看过的东西好了,其中肯定有不足以及错误的地方,欢迎读者(如果有的话)批评指正。书中内容的教学分成了五类:
2017-07-20 14:40:18
358
原创 A-Priori算法
一、实验内容给定某超市购物篮数据库文件basketdata.xls,里面有18项商品的747条购买记录。取支持度阈值s =185,请利用A-Priori算法提取其中的最大频繁项集Lk。附件:某超市数据集basketdata.xls二、实验设计(原理分析及流程) 首先,当然是将超市购物篮的数据文件读取到一个数据结构中保存起来。这里,因为开始的购物车数量以及商品数量已知,使用分割函数将信息文
2017-07-19 08:55:17
1122
原创 层次聚类以及k-means算法
一、实验内容给定国际通用UCI数据库中FISHERIRIS数据集,其meas集包含150个样本数据,每个数据含有莺尾属植物的4个属性,即萼片长度、萼片宽度、花瓣长度,单位为cm。上述数据分属于species集的三种setosa、versicolor和virginica花朵类别。 要求在该数据集上执行: 1. 层次聚类算法 2. k-means聚类算法 得到的聚类结果与species集的L
2017-07-19 08:43:58
2477
原创 pagerank算法
一、实验内容采用基于“抽税”法的PageRank算法分析图1的网页排名; 图1 Web链接实例图图1中,若节点①和节点③是主题节点,采用面向主题的PageRank算法重新计算所有节点的PageRank值。二、实验设计(原理分析及流程) 首先是需要建立一个初始化概率分布向量V0,因为共有6个网页,因此V0的每个分量都是1/6,且V0是一个6维列向量。之后,根据上图的网页链接关系,构造一个网
2017-06-20 22:33:59
1381
原创 shingling算法
一、实验内容采用Shinling及Minhash技术分析以下两段文本的Jaccard相似度:(1) IELTS (International English Language Testing System) conducted by the British Council, University of Cambridge Local Examinations Syndicate and Intern
2017-06-20 22:32:06
1698
原创 银行家算法
银行家算法 一、实验目的和要求 银行家算法是由Dijkstra设计的最具有代表性的避免死锁的算法。本实验要求用高级语言编写一个银行家的模拟算法。通过本实验可以对预防死锁和银行家算法有更深刻的认识。二、实验内容 1、 设置数据结构 包括可利用资源向量(Availiable),最大需求矩阵(Max),分配矩阵(Allocation),需求矩阵(Need) 2、 设计安全性算法 设置工作
2017-06-20 22:29:50
1283
原创 作业调度
实验一 作业调度(先来先到)一、 实验目的 用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。二、 实验内容 1. 写并调试一个单道处理系统的作业等待模拟程序。 2. 作业等待算法:分别采用先来先服务(FCFS)、响应比高者优先(HRN)的调度算法。 3. 由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此
2017-06-20 22:15:15
2544
4
原创 决策树ID3算法
一、实验内容 已知:流感训练数据集,预定义两个类别; 求:用ID3算法建立流感的属性描述决策树 流感训练数据集 二、实验设计(原理分析及流程) ID3算法的实现,第一步先从三个属性中计算出针对决策属性(患流感与否)的条件熵,找出最小值的一个,然后根据该节点的分类属性再进行分支,取其分类属性进行条件熵的计算,最后得出决策树。三、代码:#include <stdio.h>#include <
2017-06-20 22:10:24
698
原创 人工智能A*算法C实现
一、实验内容 对下图所示的状态空间图用A*算法进行搜索: 其中A为起始节点,E为目标节点,各节点的启发值表示在括号内。 二、实验设计(原理分析及流程) A* 是启发式搜索算法。该算法创建两个表:OPEN(类似于回溯算法中的NSL,它列出已经产生但其孩子还未被分析的状态)和CLOSED(记录已经分析了的状态,为回溯算法中的DE与SL列表的联合)。 算法预先将初始节点放入OPEN表,从初始节
2017-06-20 21:56:20
3263
原创 关于博客文章的撰写
其实,上大学到目前为止,自己虽然看了很多书,写了很多笔记,但感觉学的东西效率不是很高。最后才发现,其实最好的学习方法是实践,比如学了一个算法,知道其应用场合,空间,时间复杂度,具体实现问题,伪代码等等,如果只是看书,做题目也不多的话,过几天就会忘了。同理,对于很多其他的知识,我掌握的程度也不是很好,毕竟,知识不是只靠看书就能掌握的,为了将它们放入自己的脑袋,使自己可以灵活应用,最好还是去实践,做题
2017-06-20 21:18:17
247
原创 十进制转化(使用递归)
//使用递归的进制转换,灵感来自CPP p228#include void Transform ( unsigned long n, unsigned sys );int main ( void ){//要转化的进制数int sys;//要转化的数unsigned long number;printf ( "Enter an integer (
2015-03-22 09:48:01
422
原创 C#Socket文件传输查询
Server端:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Net;using System.Net.Sockets;using System.IO;using System.Threading;namespace Server
2015-03-19 22:37:15
428
转载 算法时间分析
http://blog.csdn.net/popkiler/article/details/21101441、算法的时间性能分析(1)算法耗费的时间和语句频度 一个算法所耗费的时间=算法中每条语句的执行时间之和每条语句的执行时间=语句的执行次数(即频度(Frequency Count))×语句执行一次所需时间 算法转换为程序后,每条语句执行一次所需的时间取决于
2015-03-11 20:24:20
509
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人