python穷举法经典例题_python 穷举指定长度的密码例子

本程序可根据给定的字符字典,穷举指定长度的所有字符串:

def get_pwd(str, num):

if(num == 1):

for x in str:

yield x

else:

for x in str:

for y in get_pwd(str, num-1):

yield x+y

strKey="abc"

for x in get_pwd(strKey,3):

print x

结果:

aaa

aab

aac

aba

abb

abc

aca

acb

acc

baa

bab

bac

bba

bbb

bbc

bca

bcb

bcc

caa

cab

cac

cba

cbb

cbc

cca

ccb

ccc

本程序占用内存小,生成速度快,欢迎尝试!!!

补充知识:Python 穷举法, 二分法 与牛顿-拉夫逊方法求解平方根的性能对比

穷举法, 二分法 与牛顿-拉夫逊方法求解平方根的优劣,从左到右依次递优。

经过测试,穷举法基本超过 1 分钟,还没有出数据;

二分法只要区区1秒不到就出结果了。

牛顿-拉夫逊是秒出,没有任何的停顿。

numberTarget =int(input("Please enter a number:"))

numberSqureRoot = 0

while(numberSqureRoot

if numberSqureRoot**2 >= abs(numberTarget):

break

numberSqureRoot = numberSqureRoot + 1

if numberSqureRoot**2 != numberTarget:

print("Your number %s is not a perfect squre, the square root is %s " % ( numberTarget,numberSqureRoot) )

else:

if numberTarget < 0 :

numberSqureRoot = -numberSqureRoot

print("Your number %s is a perfect squre, the square root is %s " % ( numberTarget, numberSqureRoot))

print("now we begin to calculate the binary search...")

numberTarget=int(input("Please enter the number for binary search..."))

numberSqureRoot = 0

lowValue = 0.0

highValue=numberTarget*1.0

epsilon = 0.01

numberSqureRoot = (highValue + lowValue)/2

while abs(numberSqureRoot**2 - numberTarget) >=epsilon:

print("lowValue:%s, highValue:%s, currentValue:%s"%(lowValue,highValue,numberSqureRoot))

if numberSqureRoot**2

lowValue=numberSqureRoot

else:

highValue=numberSqureRoot

numberSqureRoot = (lowValue+highValue) /2

print("The number %s has the squre root as %s " %(numberTarget,numberSqureRoot))

print("now we begin to calculate the newTon search...")

numberTarget=int(input("Please enter the number for newTon search..."))

numberSqureRoot = 0

epsilon = 0.01

k=numberTarget

numberSqureRoot = k/2.0

while( abs(numberSqureRoot*numberSqureRoot - k)>=epsilon):

numberSqureRoot=numberSqureRoot-(((numberSqureRoot**2) - k)/(2*numberSqureRoot))

print("squre root of %s is %s " %(numberTarget,numberSqureRoot))

以上这篇python 穷举指定长度的密码例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值