自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

pyb的博客

一个编程之路上的初学者

  • 博客(18)
  • 收藏
  • 关注

原创 Maigc Cubes:2017 Works Application笔试

给定一个M*M*M的魔方,和N个小魔方,将每一个小魔方融合到大魔方里(小魔方的大小不确定,但是一定小于大魔方),融合的部位将将加起来再对P取余,要求最后的结果一定是全部为0。求出所有小魔方的位置。思路如下,这个题目似乎没有找到巧妙的解法,所以采用暴力搜索.但是搜索也是有技巧的,我思考之后发现:这个问题很适合双向BFS搜索加减枝。从最终状态全0出发,我们可以每次减去一个魔方的值然后取余(-1%3 =

2016-10-31 11:00:11 2069

原创 CSAPP读书笔记第六章(优化cache命中率)

(1)局部性:(1)局部性:程序具有时间局部性和空间局部性.时间局部性是指当前用的存储器位置可能在不久的将来被用到,会被放入告诉缓存。空间局部性则是指一个存储器位置被用到,那么相邻的几个位置在不久的将来也可能被用到,也会被放入告诉缓存!根据我在vs2013的测试,发现sum函数要比sum2快几十倍的速度,这完全得益于我们按照行来访问,这天然的符合vector的存储方式,另外在release情况下编译

2016-10-26 22:05:38 5641

原创 Csapp读书笔记:第五章

(1)(1)安全优化,编译器在进行优化的时候必须考虑所有的情况,只执行安全的优化。所以可能会限制很多可能的优化策略。如果写出上面这样的代码,当xp==yp的时候,最后的结果等于0。否则xp和yp指向的对象进行了一次交换。由于有两种可能的情况,限制了编译器可能进行的优化.另外函数的调用改变了全局变量也可能造成优化限制。使用内联函数可能可以避免这种限制,有些编译器在较高的优化级别也可能会进行内联函数替换

2016-10-25 14:09:16 3999

原创 Python建立简易语音识别系统

将AI课上学习的知识进行简单的整理,可以识别简单的0-9的单个语音。基本方法就是利用库函数提取mfcc,然后计算误差矩阵,再利用动态规划计算累积矩阵。并且限制了匹配路径的范围。具体的技术网上很多,不再细谈。现有缺点就是输入的语音长度都是1s,如果不固定长度则识别效果变差。改进思路是提取有效语音部分。但是该部分尚未完全做好,只写了一个原形函数,尚未完善。 import waveimport num

2016-10-24 22:55:51 35412 5

原创 关于切割绳子的思考

n个人抢一个一元红包,估计得到最小红包的那个人将有多少钱?这个问题可以转换为类似的问题,将一根绳子分成N段,最短的绳子的期望是多少?

2016-10-22 20:36:43 2373

原创 windows下安装numpy+mtk,scipy,python_speech_features

安装这个模块直接用pip就可以可以了,但是关键是引入这个模块时必须要scipy这个模块作为prerequisite,这个模块在windows下不太好安装。首先要安装Scipy这个模块就必须安装numpy和mtk+,其次官网似乎也没有提供合适的再windows 64位下的用pip安装的版本。方法如下:(1)(1)进入http://www.lfd.uci.edu/~gohlke/pythonlibs/#

2016-10-21 20:51:04 4019

原创 CSAPP第四章读书笔记

(1)将指令编码成为字节序列(1)将指令编码成为字节序列每一个不同类型的指令都有着不一样的起始字节,根据类型的不同编码的长度和格式也不一样。 注意立即数和地址在小端序列的存储中要倒着排序。(2)我们可以探测IA32指令上(2)我们可以探测IA32指令上push %esp的行为,到底是把原始值入栈,还是把减去4以后的值入栈。最后发现保存的是原始值.(3)布尔表达式与组合电路(3)布尔表达式与组合电路

2016-10-18 10:10:32 2104

原创 快速求解一个数位数的和

naive的方法就是一位一位的统计了,但是通过一个为运算的技巧,我们可以快速的求解这个问题。(1)不妨假设这个数不超过64位,利用下面代码for循环里面的计算,可以并行的求解8个字节的位数和。(1)不妨假设这个数不超过64位,利用下面代码for循环里面的计算,可以并行的求解8个字节的位数和。(2)接下来将val分布在8字节的和加起来(2)接下来将val分布在8字节的和加起来 注意这里采用对半相加的办

2016-10-17 12:34:29 1113 1

原创 HackerRank - Python部分

给定一个字符序列,计算出随机选取k个元素中包含’a’的概率。本题属于简单题,主要思路就是利用公式1−C(N−m,k)/C(N,k)1 - C(N-m,k)/C(N,k)来得到概率。from collections import Counterfrom functools import reduceimport operatordef C(n,k): return reduce(oper

2016-10-15 19:48:32 2076

原创 Python技巧(6):cookbook学习笔记

(1)想要让一个匿名函数在定义时捕获变量(1)想要让一个匿名函数在定义时捕获变量可以采取传递默认参数的方式来绑定变量x = 1f = lambda y,x=x:x+yprint(f(1))x = 2print(f(1))创建一个函数集合的时候可能会这样写:funcs = {n:lambda x: x+n for n in range(5)}发现n是不能被绑定在函数体里面的,正确的姿势是:fu

2016-10-13 16:02:02 401

原创 Leetcode-Sudoku Solver(数独)

这道题的解题思路如下:(1):维护一个list,里面保存所有未确定元素的取值集合(1):维护一个list,里面保存所有未确定元素的取值集合(2):每次从list里面取集合长度最小的集合,然后开始进行dfs(2):每次从list里面取集合长度最小的集合,然后开始进行dfs(3)每确定一个元素,就要更新对应的行,列,block所在的所有元素对应的集合(3)每确定一个元素,就要更新对应的行,列,block

2016-10-11 20:42:32 419

原创 一行python能做什么!

主要收集了平常遇到的代码和网上的简单题目,然后尝试将代码压缩到一行,仅仅是娱乐一下~~~−−−−−(1)−−−−−−-----(1)------用一行python写出一个嵌套的字符串。def plat(ch,n):return''if ~n else ' '*(n-1)+ ch+ch[::-1][1:]+'\n'+plat(ch+chr(ord(ch[-1])+1),n-1)结果如图: 上面这个返

2016-10-11 12:37:20 3028

原创 csapp第三章读书笔记

着一章主要讲了各种汇编的指令。基本要求是看懂即可。不需要会写。几种传输指令:几种传输指令:主要搞清楚(0)(0)几种寻址模式(1)(1)指令的后缀,l,w,b分别代表双字,单字,单字节。注意只有%eax才可以作为存储器的引用(因为它有32位可以作地址)。另外指令的后缀必须要和寄存器的类型对应上才可以,比如movl %ax就是不可以的. (2)简单的逆向工程理解汇编和c的对应(2)简单的逆向工程理解

2016-10-10 23:48:13 3122 3

原创 CSAPP读书笔记第二章:

着一章主要介绍了数据才计算机里面的二进制存储,一些位运算的小技巧和一些程序中可能出现的错误。[0][0]高位取反低位不变:利用异或x^(~0xff)[1][1]利用位运算交换两个数:y = x^yx = y^xy = y^x注意,这一段代码存在一个隐藏的陷阱,如果x,y同时指向一个变量,那么第一步就会把这两个变量同时变成0,这样后面的答案全没有意义了。所以要注意这一点。[2][2]无符号和有符号

2016-10-09 23:41:40 644

原创 k pair of min jaccard distance

一个作业题,计算13万个用户的相似程度,每个用户有两个列表(L,U),分别是喜欢的电影和不喜欢的电影。找到最相似的100对用户。jacard的计算公式:Jaccardij=(Li∩Lj)⋃(Ui∩UJ)(Li∪Lj)⋃(Ui∪UJ)Jaccard_{ij}=\frac{(L_i\cap L_j)\bigcup(U_i\cap U_J)}{(L_i\cup L_j)\bigcup(U_i\cup U_

2016-10-09 15:11:41 479

原创 A-priori算法的优化实现

前几天做了一个作业,要求算出0-9999每一个的质因子计算出频繁集。以前的简单程序计算太慢,需要30多秒,仔细思考了一下,发现计算过程有很多的冗余。花了3个小时进行优化,结果改进到0.15s就可以算出来。(1)优化1:(1)优化1:不再区分每一个bucket对应的k频繁集,而是将所有的频繁集放在一个集合里面。(2)优化2:(2)优化2:针对每一个候选频繁集的过滤,我们可以采取如下策略:因为候选频繁集

2016-10-08 11:17:25 1137

原创 python编程技巧--python--cookbook学习笔记(5)

[0]跳过可迭代对象的开始部分[0] 跳过可迭代对象的开始部分你想遍历一个可迭代对象,但是它开始的某些元素你并不感兴趣,想跳过它们。比如说我们想要跳过一个文本文件开头的注释。可以使用一个叫做dropwhile()的函数,它会一直跳过直道函数的返回值不为真。 from itertools import dropwhile with open('/etc/passwd') as f:

2016-10-06 20:34:14 465

原创 K-means基于的简单实现

简单实现k-means算法和non standard k-means方法。基本思想就在于找到一组center以后,对新的数据进行聚类,直到误差不再变化。def dis(a,b): return ((a[0]-b[0])**2+(a[1]-b[1])**2)**(0.5)def Error(x,y): assert(len(x)==len(y)) z = (0

2016-10-01 09:48:01 531

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除