hur.cn - 华软网

 热门搜索

求一个排列组合的PB算法!

  作者:未知    来源:网络    更新时间:2018/12/6
9个数字中每3个为一组,列出所有的组合(不重复)

例如:1,2,3,4,5,6,7,8,9  九个数字的组合有:
123
124
125
126
127
...
789

注:123,321,231 算一个组合,不充许有重复
------华软网友回答------
排列P(n,r)=n*(n-1)*(n-2)*...*(n-r+1)=n!/(n-r)!,下面公司P=P(n,r)
组合C(n,r)=P(n,r)/r!=n!/(r!*(n-r)!),下面算法C=C(n,r)

long P , C 
long i , P1 = 1 , P2 = 1 , C1 = 1
long n , r (代入你的值)

FOR i = 1 TO n
    P1 = i*P1
END FOR
FOR i = 1 TO n - r
    P2 = i*P2
END FOR
P = P1 / P2

FOR i = 1 TO r
    C1 = i*C1
END FOR
C = P / C1



------华软网友回复------
如果楼主要详细的数字串.
string A[]//将上面九个数字逐一放入数组
string R[]//寄存结果数组

long CNT //数字个数(如你需要的3)
long i , j , k
//1循环将数字放入A[]中,假定为M个.

//2
for i = 1 to M - CNT + 1
    for j = i+2 to M
        k = k + 1
        R[k] = A[i] + A[i+1] + A[j]
    end for
end for
------华软网友回复------
To: dawugui(潇洒老乌龟)

  共84组是正确的,但您的取的串结果只有28组!!!!


------华软网友回复------
int i,j,k
long lla_result[]
for i = 1 to 9
for j = i+1 to 9
for k = j + 1 to 9
lla_result[upperbound(lla_result) +  1] = i *100 + j* 10 +k
next
next
next
------华软网友回复------
AFIC(AFIC) 的是正确的!!结贴!!!
------华软网友回复------
已经结了,怎么没显示!!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。