日期:2014-05-19  浏览次数:20623 次

排列组合算法
大虾们,
求一排列组合的写法:

01,02,03,04,05,06,07,08,09,10.....21   这21数字中!!
想得到的结果为:任取6位组成一个字串,
如:01,02,03,04,05,06   ;05,06,07,08,09,10   ;03,04,05,06,07,08   .......

全部有多少种,并全部输出   (能够汇成表格)


------解决方案--------------------
你还是 不要 用数据库 太慢了
我倒是 做过
36选7 生成数据+显示 800多万
不超过 1 秒
QQ:253377572
------解决方案--------------------
declare @AllChar varchar(50)
declare @FirstChar varchar(50)
declare @FirstPoint int
declare @lenth int

set @AllChar= '01,02,03,04,05,06,07,08,09,10,11,12,13,14,15 ' ----可以传入一个字符串
set @lenth=len(@AllChar)
create table #Temp_String(FID int identity,Content varchar(50))
set @FirstPoint=charindex( ', ',@AllChar)

while( @FirstPoint> 0)
begin
set @FirstChar=substring(@AllChar,0,@FirstPoint)
insert into #Temp_String(Content) values (@FirstChar)
set @AllChar=substring(@AllChar,@FirstPoint+1,@lenth)
set @FirstPoint=charindex( ', ',@AllChar)
end
insert into #Temp_String(Content) values (@AllChar)


任取其中5个

select top 5 Content from #Temp_String order by newid()