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

seeker_ 2006-09-03 10:31:19
9个数字中每3个为一组,列出所有的组合(不重复)

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

注:123,321,231 算一个组合,不充许有重复
...全文
333 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
seeker_ 2006-09-04
  • 打赏
  • 举报
回复
To: dawugui(潇洒老乌龟)

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

seeker_ 2006-09-04
  • 打赏
  • 举报
回复
已经结了,怎么没显示!!
seeker_ 2006-09-04
  • 打赏
  • 举报
回复
AFIC(AFIC) 的是正确的!!结贴!!!
AFIC 2006-09-04
  • 打赏
  • 举报
回复
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
dawugui 2006-09-03
  • 打赏
  • 举报
回复
如果楼主要具体的数字串.
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
dawugui 2006-09-03
  • 打赏
  • 举报
回复
排列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


604

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 控件与界面
社区管理员
  • 控件与界面社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧