- 博客(11)
- 资源 (16)
- 收藏
- 关注
原创 旋转法求排列
# -*- coding: UTF-8 -*- '''旋转法求排列,比预想的简单,或许以前看过这个算法'''def ProductPermut(listYuan, numOfXuanZhuan): if numOfXuanZhuan == 1: print listYuan return for i in range(0, numOfXuanZhuan): Product
2013-06-29 22:40:46 533
原创 集合的子集 (其实是组合问题)
# -*- coding: UTF-8 -*-'''列出一个列表所有子集,包括空集合可以通过二进制数来确定某个元素是否选取另外有个递归的方法可以实现'''#1 这里有个坑,bin转换出来的字符串有0b前缀,如bin(9)为‘0b1001’#处理时需排除掉'0b',从下标2开始处理#2 另外的问题,bin转换的二进制字符串不懂怎么格式化为固定位数,不够补前导零 # 其实避
2013-06-28 22:11:10 699
原创 格雷码
# -*- coding: UTF-8 -*-'''方法1假设原始的值从0开始,格雷码产生的规律是:第一步,改变最右边的位元值;第二步,改变右起第一个为1的位元的左边位元;第三步,第四步重复第一步和第二步,直到所有的格雷码产生完毕(换句话说,已经走了(2^n) - 1 步)。方法2递归产生在实现的时候,我们完全可以利用递归,在每一层前面加上0或者1,然后就可以列出所有的格雷码。比
2013-06-28 22:06:13 1609
原创 求出n中选r个的组合系数c(n,r),只用加法实现 即 求二项式系数(杨辉三角),
# -*- coding: UTF-8 -*- '''求二项式系数(杨辉三角),求出n中选r个的组合系数c(n,r),只用加法实现我写的算法,加法效率漏了点。。。'''def ComputCnr(n, r): listArr=[0]*(r+1) #python有类似动态存储分配的,挺不错的 if r>=n/2: r=n-r listArr[0]=1 count=0
2013-06-17 21:59:11 1446
原创 连续整数的固定和
# -*- coding: UTF-8 -*- '''输入一个正整数,把所以连续数和为给定正整数的序列找出来如输入27, 有2~7 8~10 13~14当然,输入4 16时无解其实还有另外一个思路, sumOfGiven=(indexfirst + indexlast)*count/2indexlast=indexfirst+count-1sumOfGiven已知,遍
2013-06-15 21:12:58 645
原创 数值自乘非递归解
# -*- coding: UTF-8 -*- '''求m^n,非递归方法原理嘛:如求m^1313=2^3+2^2+2^0则m^(13)=m^(2^3+2^2+2^0)且一般地,有m^(2^3)= m^(2^2) * m^(2^2) = (m^(2^2) )^2'''def ComputPower(m, n): if m<0 or n<0: return -1
2013-06-13 21:18:50 530
原创 数值自乘递归解
# -*- coding: UTF-8 -*- '''如果n与m是正整数,那么求m^n,用二分法n=0 return 1n=奇数 return m^n/2 * m^n/2 * mn=偶数 return m^n/2 * m^n/2'''def ComputRPower(m, n): if n==0: return 1 if n%2 == 1: te
2013-06-11 21:53:55 540
原创 因式分解
# -*- coding: UTF-8 -*- '''因式分解编写一个程序,读入一个正整数,把它的搜有质因子找出来。先求小于N的质数,再分解'''def ProductListPrime(listPrime, num): flistTemp=[ 1 for x in range(0, num+2)] flistTemp[0]=0 flistTemp[1]=0 for i in
2013-06-11 21:35:03 738
原创 求素数
# -*- coding: UTF-8 -*- import mathfrom timeit import Timer'''这章求素数用到了朴素求素数,筛选法求素数,线性筛选法求素数(线性筛选学得不成熟)'''#求前N个质数def ComputPrimeNomalFirstN(firstN): listPrime=[2,3] num=5 while(len(listPrim
2013-06-09 22:27:30 530
原创 Armstrong数 (水仙花数)
# -*- coding: UTF-8 -*- '''在三位的正整数中,例如abc,有一些可以满足a^3 + b^3 + c^3 = abc的条件(a3表示a的三次方),也就是说各位的立方和正好是该数的本身,这样的数称为armstrong数,试求出所有的三位armstrong数,需要考虑效率问题推理 三个数之和至少为4 至多为24sumO=a**3 + b**3 + c**3和s
2013-06-04 22:14:17 1436
原创 等值首尾和
xxxxxxxxxxx# -*- coding: cp936 -*-'''等值首尾和假设有一个数组x[],它有n个元素,每一个都大于零;称x[0]+x[1]+…+x[i]为前置和(Prefix Sum),而 x[j]+xlj+1]+…+x[n-1]为后置和(Suffix Sum)。试编写一个程序,求出 x[]中有多少组相同的前置和与后置和。【说明】如果x[]的元素是3,6,2
2013-06-02 20:35:20 636
大漠插件3.1241
2012-10-08
window spy 2.3
2010-07-28
易语言 mp3播放器源文件
2010-05-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人