摘要:问题描述:卡塔兰数,是组合数学中一个常出现在各种计数问题中出现的数列。输入一个整数n,计算h(n)。
其递归式如下:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2,h(0) = h(1) = 1)
阅读全文
摘要:感知器以一个实数值向量作为输入,计算这些输入的线性组合,然后如果结果大于某个阈值就输出1 ,否则输出-1 。
更精确地,如果输入为x,那么感知器计算的输出为:
阅读全文
摘要:决策树通过把实例从根节点排列到某个叶子结点来分类实例,叶子结点即为实例所属的分类。树上的每一个结点指定了对实例的某个属性的测试,并且该结点的每一个后续分支对应于该属性的一个可能值。
分类实例的方法是从这棵树的根节点开始,测试这个结点指定的属性,然后按照给定实例的该属性值对应的树枝向下移动。然后这个过程在以新结点为根的子树上重复。
画出了一棵典型的学习到的决策树。
阅读全文
摘要:n个元素{1,2,...,n}有n!个不同的排列。将这n!个排列按字典序排列并编号为0,1,...,n!-1。每个排列的编号为其字典序值。例如,当n=3时,6个不同排列的字典序值如下:
给定n,以及n个元素{1,2,...,n}的一个排列,计算出这个排列的字典序值,以及按字典序排列的下一个排列。
阅读全文
摘要:上一篇写了全排列的算法,本文介绍有重复元素的排列问题,即元素可以重复。
此方法其实与Perm算法类似,回忆一下perm算法是讲list[k:m]中的每一个元素分别与list[k]中的元素交换。
而有重复元素时应该考虑区别了,设k ≤ i ≤ m,此时要替换 list[ k ] 为 list [ i ],则 k ≤ j ≤ i,list[j]已经替换过了。若list[ i ]==list[ j ],则此时的替换在之前已经做过,此时再做相当于重复了,则不应替换!
阅读全文
摘要:一般地,从n个不同元素中取出m(m≤n)个元素,按照一定的顺序排成一列,叫做从n个元素中取出m个元素的一个排列(Sequence,Arrangement, Permutation)。
n个不同元素全部取出的一个排列,叫做n个不同元素的一个全排列。这是在排列数公式中,m=n,即有:
Ann=n·(n-1)·(n-2)·…·3·2·1
阅读全文
摘要:合并排序算法是用分治策略实现对n个元素进行排序的算法。
其基本思想是:待排序元素分成大小大致相同的两个集合,分别对两个子集合进行排序,最终将排好序的子集合合并成所要求的排好序的集合。
阅读全文