首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

求佛 算法,该如何处理

2012-01-21 
求佛算法STR1:(A)ARG20K-F01~F02(B,H)(G1,G2,G3,G4)(-1,N)STR2:10-AR50~60-N##(B,G)-(1,N,R)Z这是两个字符

求佛 算法
STR1:(A)ARG20K-F01~F02(B,H)(G1,G2,G3,G4)(-1,N)

STR2:   10-AR50~60-N##(B,G)-(1,N,R)Z

这是两个字符串

现求他们的全组合的算法


救世主




[解决办法]
STR1:(A)ARG20K-F01~F02(B,H)(G1,G2,G3,G4)(-1,N)

STR2: 10-AR50~60-N##(B,G)-(1,N,R)Z

这是两个字符串

现求他们的全组合的算法

咋个组合法,说一下撒?
[解决办法]
拆分成单个字母的任意组合? 如果是的话, 将其拆分出来, 做 cross join 即可
[解决办法]
那还不如用循环一个一个来不就完了. 那样复杂度太高 影响算法效率

[解决办法]
我是菜鸟
能不能这样
把每个要变得地方设成一个字段,
每个变化项分开设一个表,最后 join 下
table_1:
1 2
AARG20K-F01~F02 B
AARG20K-F01~F02 H
table_2:
3
G1
G2
G3
G4
table_3:
4
-1
B
最后
select * from dbo.table_1 a , dbo.table_2 b ,table_3 c
go
结果
AARG20K-F01~F02 B G1 -1
AARG20K-F01~F02 B G2 -1
AARG20K-F01~F02 B G3 -1
AARG20K-F01~F02 B G4 -1
AARG20K-F01~F02 B G1 N
AARG20K-F01~F02 B G2 N
AARG20K-F01~F02 B G3 N
AARG20K-F01~F02 B G4 N
AARG20K-F01~F02 H G1 -1
AARG20K-F01~F02 H G2 -1
AARG20K-F01~F02 H G3 -1
AARG20K-F01~F02 H G4 -1
AARG20K-F01~F02 H G1 N
AARG20K-F01~F02 H G2 N
AARG20K-F01~F02 H G3 N
AARG20K-F01~F02 H G4 N
可以吗?
[解决办法]
广义笛卡儿积
[解决办法]
厄,我上面把 测试和结果都给出来了,楼主没有看明白吗?

只要把每个可变的字符 的地方 写一张表

最后cross join 就可以了

关于笛卡儿积,举个简单例子(1,2,3)和(4,5,6)做笛卡儿积 结果就是:

(1*4,1*5,1*6,2*4,2*5,2*6,3*4,3*5,3*6)

不知道楼主明白没有~
[解决办法]
这只是其中的几个字符串,我的表里还有好多这样的字符串呢
------------------------------------------------------
=。=
每个可变 字符 写一张表
有多少可能就写多少行

酱紫~

热点排行