虚拟机

Vagrant安装

在学习区块链项目 Hyperledger Fabric时,因为他们使用了Vagrant作为虚拟机,所以,就先学习了一下Vagrant,下面是vagrant的安装教程。 概述 Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。 下载 官网https://www.vagrantup.com/downloads.html下载比较慢,当前版本为 1.8.6 另外,需要下载并安装VirtualBox [https://www.virtualbox.org/wiki/Downloads] 安装

  • zgljl2012
3 min read
算法

【算法导论-学习笔记】以线性时间增长的排序——计数排序

计数排序是一种能够达到运行时间能够线性时间θ(n)的排序算法。在排序算法里算是最快的算法之一,当然,他有很强烈的前提。下面开始介绍一下计数排序(Counting Sort)。 算法思想 计数排序假设n个输入元素中的每一个都是介于0到k之间的整数,此处k为某个整数。这样可以用一个数组C[0..k]来记录待排序数组里元素的数量。当k=O(n)时,计数排序的运行时间为θ(n). > 注:关于C[0..k],用键值对描述的话,待排序元素是键,相同元素的个数是值。例:待排序数组<2,3 , 6,4 , 1 , 1 , 3 , 5 , 7> 一共9个元素,切每一个都处于0到7之间,

  • zgljl2012
4 min read
算法

【算法】出现次数最多的数

问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 1. 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 2. 输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。 输出格式 1. 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 样例输入 6 10 1 10

  • zgljl2012
1 min read
算法

【算法】ISBN号码

问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x ”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN 码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。 识别码的计算方法如下: 首位数字乘以1加上次位数字乘以2……以此类推,用所得的结果mod 11,所得的余数即为识别码,如果余数为10,则识别码为大写字母X。例如ISBN 号码0-670-82162-4中的识别码4是这样得到的:对067082162这9个数字,从左至右,

  • zgljl2012
2 min read
区块链

2017-01-05区块链新闻

今日关键词可视化: 用区块链改变人工智能:去中心化带来数据新范式 [http://www.8btc.com/blockchain-and-ai] 近年,从围棋到人类水平的语音识别,人工智能(AI)研究者终于在他们几十年一直努力探索的领域取得了突破。取得突破进展的关键一点是研究者们可以收集巨量的数据并「学习」这些数据,从而将错误率降低到可接受范围... 2017-01-05 09:00:59 关键词:研究者 错误率 AI

  • zgljl2012
2 min read
算法

【编程之美】中国象棋将帅问题

问题描述 在中国象棋里将和帅是不能碰面的,如下图所示,当将位于d10时,帅就不能在d1,、d2、d3。请写一个程序,输出将、帅所有的合法位置。要求在代码中仅用一个变量。 如果只是输出将、帅的合法位置,那这题就比较容易了,只要二重循环判断一下就行,但后面一个条件就将题目的难度上升了好多。 算法分析 因为是判断两个对象A、B的位置符不符合要求,而且每个对象一共就只有9个位置可选,可以比较快地想到程序的大体框架: 1. 遍历A的位置 2. 遍历B的位置 3. 判断A、B的位置组合是否满足要求 4. 如果满足,则输出 因为每个对象只有9个位置,所以循环次数一共也就81次。

  • zgljl2012
4 min read
C++

【算法】检测数组里是否有两个数之和等于某个数

问题: 检测数组里是否有两个数之和等于某个数 解决方法一:先将数组排序,然后从两头开始遍历 数组排序后,从左端开始取最小值,从右端取最大值, 判断两者之和与目标的大小: 1. 等于时,输出两个数; 2. 大于时,右端移到第2个数,继续判断; 3. 小于时,左端移到第2个数,继续判断。 #include #include #include using namespace std; void fun1(int a[], int length, int

  • zgljl2012
2 min read
C++

【算法】十进制字符串转十六进制字符串

问题描述 将一个十进制字符串转化为十六进制字符串。 问题解决 这个问题如果只是十进制转化为十六进制,其实是比较容易的,只要了解短除法就可以解决了,但题目里数是字符串,这就将题目的难度增高了。因为如果只是int型,那最多也就支持个10位数;但字符串却可以上千位,所以我们使用短除法的时候会比较麻烦。 这里我先将字符串转成了int型,先把简单的10位数的实现出来,来理顺一下思路。下面是10进制数转16进制的代码: int main(){ string s; while (cin >> s){ int n = 0; // 将字符串转换为int类型 for (int i = s.length() -

  • zgljl2012
6 min read
C++

【ACM】K尾相等数

问题描述: 从键盘输入一个自然数K(K>1),若存在自然数M和N(M>N),使得K^M 和K^N均大于或等于1000,且它们的末尾三位数相等,则称M和N是一对"K尾相等数"。请编写程序,输出M+N最小的K尾相等数。 样例: 输入输出2120问题分析: 末尾三位数只有1000个,从1到无穷大增大幂次时,肯定会出现同样的末尾三位数,比如n=10时(`n^M`大于1000时才有末尾三位数),幂次M12345n^M 10100100010000100000末尾三位数无无000所以当幂次为3时出现了第一个三位数,当幂次为4时出现了第二个三位数,N = 3,

  • zgljl2012
1 min read
C++

【算法】烙饼排序

问题描述: 把一摞大小不一的烙饼按顺序排好,大的在下面,小的在上面, 要求只能用一只手去翻转烙饼位置,另一只手要端盘子; 输出最优化的排序过程。 -------------------------------------------------------------------------------- 示例: 3 1 2 翻转 1 , 当前烙饼排序 3 2 1 成功! -------------------------------------------------------------------------------- 算法描述: 问题解析:一个未排序的数列,如 a,b,c,d,~z 每一次选取其中一个数,将它与最后一个数之间的 所有数(包含它们两个)

  • zgljl2012
2 min read
CentOS

CentOS7 安装Docker

1 使用yum安装Docker yum install -y docker-io 2 启动Docker service docker start 接下来执行一下docker ps,会列出正在运行中的docker容器,当然,因为我们现在没有容器,列表只有表头。 3 安装Docker镜像 docker run ubuntu Docker会自动去仓库下载最新版本的ubuntu镜像,接下来就是在镜像上启动容器。如果下载超时的话,可以通过阿里云Docker镜像加速 [https://yq.aliyun.com/articles/29941]、使用DaoCloud加速

  • zgljl2012
1 min read
区块链

2017-01-04区块链新闻

今日关键词可视化: 《哈佛商业评论》:添加比特币支付选项可以帮助企业高管吸收区块链技术 [http://www.8btc.com/hbr-blockchain-is-foundational-not-disruptive-technology] 《哈佛商业评论》( Harvard Business Review,简称HBR)是哈佛商学院的标志性杂志。最新一期的杂志刊登了一篇有关区块链的文章,这篇文章表达了对炒作的怀疑。他们认为区块链是一种基础性技术,而不是颠覆性技... 2017-01-03 19:19:40 关键词:区块链 杂志 哈佛商学院 首个区块链移动数字汇票投入应用 [http://www.8btc.com/zheshang-bank-blockchain] 1月3日,

  • zgljl2012
7 min read
zgljl2012@gmail.com