日期:2014-05-18  浏览次数:20465 次

-- 高中学的组合公式,有人能用SQL Server 写个函数么?--
http://topic.csdn.net/u/20110829/23/02daf38d-7e71-412f-b2b5-b404dfef62f6.html

-- 问了我群里的人,竟然没一个能写出来,悲哀!

------解决方案--------------------
朋友给我出了道他们公司的一道笔试题,我想了许久,没想出来,请教各位

大家可以用自己熟悉的语言写写,求思路:


一个袋子装有5个球,每个球都标注了编号:1、2、3、4、5
一个人只往往袋子取一次,每次取的数量不等。

问有多少种组合?每个组合是?
------解决方案--------------------
.........
探讨
朋友给我出了道他们公司的一道笔试题,我想了许久,没想出来,请教各位

大家可以用自己熟悉的语言写写,求思路:


一个袋子装有5个球,每个球都标注了编号:1、2、3、4、5
一个人只往往袋子取一次,每次取的数量不等。

问有多少种组合?每个组合是?

------解决方案--------------------
我晕 又发了一遍
------解决方案--------------------
探讨
朋友给我出了道他们公司的一道笔试题,我想了许久,没想出来,请教各位

大家可以用自己熟悉的语言写写,求思路:


一个袋子装有5个球,每个球都标注了编号:1、2、3、4、5
一个人只往往袋子取一次,每次取的数量不等。

问有多少种组合?每个组合是?

------解决方案--------------------
这里传进来的参数应该是15也就是全部取完的球的数字和
表的格式跟列名是这个
CREATE TABLE A (NUM VARCHAR(10),WAGES1 FLOAT)
INSERT INTO A VALUES('1',1)
INSERT INTO A VALUES('2',2)
INSERT INTO A VALUES('3',3)
INSERT INTO A VALUES('4',4)
INSERT INTO A VALUES('5',5)
------解决方案--------------------
SQL code
create table tb1(no char(1))
insert into tb1 
 select 1 union select 2 union
 select 3 union select 4 union
 select 5

select * from tb1 
union
select a.no+b.no from tb1 a,tb1 b where a.no>b.no
union
select a.no+b.no+c.no from tb1 a,tb1 b,tb1 c where a.no>b.no and b.no>c.no
union
select a.no+b.no+c.no+d.no from tb1 a,tb1 b,tb1 c,tb1 d where a.no>b.no and b.no>c.no and c.no>d.no
union
select '12345'

/*
no
-----
1
12345
2
21
3
31
32
321
4
41
42
421
43
431
432
4321
5
51
52
521
53
531
532
5321
54
541
542
5421
543
5431
5432

------解决方案--------------------
SQL code
CREATE FUNCTION FN_C(
  @N INT
  ,@R INT
  )
RETURNS INT
AS
BEGIN
IF @N<= 0 
    RETURN 1
DECLARE @RET INT
DECLARE @I INT
SET @I = 1
SET @RET = 1
WHILE @I <= @R 
BEGIN
    SET @RET = @RET * (@N - @I + 1) / @I 
    SET @I = @I + 1
END  
RETURN @RET
END
GO


SELECT DBO.FN_C(5,1)+DBO.FN_C(5,2)+DBO.FN_C(5,3)+DBO.FN_C(5,4)+DBO.FN_C(5,5)

-- 结果
31

------解决方案--------------------
动态的语句懒得写了