|
主题: 请教一个算法思路
|
aSir
职务:普通成员
等级:1
金币:0.0
发贴:78
|
#12002/7/17 8:41:21
最近朋友要我帮着做个程序其中有这样一段: 要求从{1,2,3,4,5,6,7,8,9,0,a,....z}集合中取出任意数字和字母,构成一个字串和原字串比较(原字串长度和值都未知),值相等时就打出这个字串。 我想用这么个方法, 定义a="1,2,3,4,5,6,7,8,9,0,a,....z" aa=split(a) for it=lbound(aa) to ubound(aa) 然后用aa(i)进行按顺序进行组合,对N位数字进行aa(i)的循环取值,但当中循环太多,一时乱了思路,想了很久想不出头绪。只好请各高手指教
|
绿茶
职务:普通成员
等级:8
金币:10.0
发贴:19267
|
#22002/7/17 11:25:04
aa=split(a) 'org_str为原字串 bb="" n="" for k=lbound(aa) to ubound(aa) n=n&9 next n=int(n)
for i=lbound(aa) to ubound(aa) '随机取出一个值 Randmize j=int(n*rnd+1) if (j)>ubound(aa) then next bb=bb&aa(j)'与原来的值连接
'再次取出一值 Randmize jj=int(n*rnd+1) if (jj)>ubound(aa) then next bb=bb&aa(jj)
if bb=org_str then response.write bb
next
这个方法也不是怎么好,但或许会对你有所帮助
编辑历史:[这消息被germchen编辑过(编辑时间2002-07-17 11:26:08)]
|
aSir
职务:普通成员
等级:1
金币:0.0
发贴:78
|
#32002/7/23 23:05:17
这个方法用随机数,效率会很低,我没试过。还有高手吗?
|
helmet
职务:版主
等级:4
金币:10.0
发贴:1559
|
#42002/7/24 17:45:04
aSir在上个帖子中说 引用: 最近朋友要我帮着做个程序其中有这样一段: 要求从{1,2,3,4,5,6,7,8,9,0,a,....z}集合中取出任意数字和字母,构成一个字串和原字串比较(原字串长度和值都未知),值相等时就打出这个字串。 我想用这么个方法, 定义a="1,2,3,4,5,6,7,8,9,0,a,....z" aa=split(a) for it=lbound(aa) to ubound(aa) 然后用aa(i)进行按顺序进行组合,对N位数字进行aa(i)的循环取值,但当中循环太多,一时乱了思路,想了很久想不出头绪。只好请各高手指教
这不是暴力穷解法么。
|
5D荣誉版主
职务:普通成员
等级:2
金币:10.0
发贴:658
|
#52002/7/26 17:08:31
什么暴力穷解法能详细说明一下吗?
|
今晚在线
职务:普通成员
等级:3
金币:1.0
发贴:761
|
#62002/7/29 3:19:38
就是破密码的穷举法
|
今晚在线
职务:普通成员
等级:3
金币:1.0
发贴:761
|
#72002/7/29 3:20:16
你最好说说要实现什么具体功能
我看不太懂你的意思
|
helmet
职务:版主
等级:4
金币:10.0
发贴:1559
|
#82002/7/29 17:55:32
其实就是高二数学的排列与组合。
|