排列组合算法
大虾们,
求一排列组合的写法:
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()