摘要: 一些点:原型语言:一切都是对象,对象继承对象。即只有对象,没有类;对象继承对象,而不是类继承类。“原型对象”是核心概念。原型对象是新对象的模板,它将自身的属性共享给新对象。 阅读全文
posted @ 2015-05-21 16:10 鬼蜮流风 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 第一天练习puts "Pllease input a number between 0-99"a = rand(100)b = gets()c = b.to_i()while c != a if c 数组:keys,values, to_a练习1, a = (1..16).to_a 使用eac... 阅读全文
posted @ 2015-05-20 14:52 鬼蜮流风 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 基本上按照官网来就行:先是sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g++ libopenblas-dev git再是sudo pip install Theano(这一步骤里,如... 阅读全文
posted @ 2015-04-13 16:24 鬼蜮流风 阅读(1118) 评论(0) 推荐(0) 编辑
摘要: 10.4-5 O(n)非递归O(1)空间遍历二叉树树节点转自http://blog.csdn.net/mishifangxiangdefeng/article/details/7708490采用类似中序遍历的处理方法,对一个结点,可以分为以下几种情况1.从父结点进入子结点进行处理(1)如果有左孩子,... 阅读全文
posted @ 2014-04-15 20:23 鬼蜮流风 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 9.1-1 同时找出最小值和次小值比较过程同足球比赛淘汰赛阶段一样,两两比较,构成一个比较树。次小值只会出现在哪些跟最小值比较过的元素中,这些元素总共有的数目跟树高一样,为[lgn]。所以,总共花费(n-1) + ([lgn]-1)9.3-6 k分位数先找第(k-1)/2个分位数,然后将数组分成两部分,在前一部分找(k-1)/2前的那些中位数,在后一部分找(k-1)/2后的那些中位数,则有T(k) = 2*T(k/2) + O(n)。每一层的代价均为O(n),总共有lgk层。即为O(nlgk)9.3-7 最接近中位数的k个数step1:求出数组S的中位数的值:O(n)step2:计算数组每个数 阅读全文
posted @ 2014-04-11 21:10 鬼蜮流风 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 8.1-4 n/k个k大小的有序子序列排序每个k大小的序列有k!种排列可能,所以n/k个子序列有(k!)^(n/k)个子序列,也即决策树至少要有这么多个叶子。设树高为h,则有2^h >=(k!)^(n/k),得h >= lg((k!)^(n/k)) = (n/k)lg(k!) >=(n/k)lg((k/2)^(k/2)) = (n/2)lgk8-3 排序不同长度的数据项a) 先用计数排序按“数字位数”进行排序,然后再用基数排序对位数相同的每个桶内的数字排序。b) 根据第一个字母排序(计数排序),然后对第一个字母相同的每组递归用按首字母排序计数排序。8-5 平均排序d) 建立k 阅读全文
posted @ 2014-04-09 22:13 鬼蜮流风 阅读(204) 评论(0) 推荐(0) 编辑
摘要: 7.4-5 快速排序+插入排序粗略证明如下:从书中证明可知,只要划分是常数比,那么最后期望都是一样的。故假设每次划分都是均匀的。假设划分深度为h时,每个块的规模都不超过k,则有k*2^h = n,h = lg(n/k)。又因为在最底层,规模不超过k的子序列有n/k个,所以每个子序列内部插入排序时间为O(k^2),总的插入排序时间为O(nk)。(注意:这一步证明不严格,每个都是O(K^2),加起来可能比O(nk)要大。)每一次划分为O(n),总共有lg(n/k)层,所以划分的复杂度为O(nlg(n/k)),所以,总的时间为O(nk + nlg(n/k))。7-4 快速排序的堆栈深度优化的尾递归: 阅读全文
posted @ 2014-04-08 21:53 鬼蜮流风 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 6-2 对d叉堆的分析a)用A[1]表示根,则其儿子为A[2]到A[d+1],其孙子为A[d+2]到A[d^2+d+1],以此类推。所以有d-parent(i):return [(i-2)/d + 1] (方括号表示下取整)d-child(i,j):return d(i-1) + j + 1b)由于每个节点有d个儿子,所以含n个元素的d叉堆的高度为O(logdn) = O(lgn/lgd)。c)由于输出最大值后的调整,需要从d个儿子中选出最大的,故每层的调整都需要d次,有logdn层,故为O(d*logdn)。d)树的高度,为O(logdn)。e)跟插入一样,为O(logdn)。6-3 You 阅读全文
posted @ 2014-04-08 21:07 鬼蜮流风 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 5.1-2 生成Random(a,b) 运行b-a次Random(0,1),累加和,最后再加a。利用公式F(z) = w解出z即可,其中F(z)为目标分布,w为区间0-1内的均匀分布。5.1-3 等概率生成0和1 Biased-Random 以概率p输出1,以概率1-p输出0, 则1-Biased-Random 以概率p输出0,以概率1-p输出1 则调用Biased-Random后接着调用1-Biased-Random,出现的概率为 调用结果 00 01 10 11 出现概率 (1-p)*p (1-p)*(1-p) p*p p*(1-p)则1... 阅读全文
posted @ 2014-03-30 17:41 鬼蜮流风 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 4-2找出所缺的整数1. 遍历整数0到n的第一位,分成两个数组:P1[1] 和P0[1],分别代表第一位是1、0的数,并记录第一位是1的个数CountN,代价为O(n)。2. 遍历数组A[0...n]的第一位, 分成两个组:Q1[1]和Q0[1],分别代表第一位是1、0的数,并记录1的个数CountA,代价为O(n)。3. 比较CountN和CountA的值,结果可能有两种情况CountN = CountA,或者CountN = CountA + 1, 前者表明所缺数的第一位为0, 后者为1,代价为O(1)。4. 通过3的结果,随后我们可以在P1[1]和Q1[1](CountN>Coun 阅读全文
posted @ 2014-03-30 16:26 鬼蜮流风 阅读(200) 评论(0) 推荐(0) 编辑