Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
 
 
主题工具 显示模式
旧 2009-09-10, 00:26   #1
bing_lonely
初级会员
 
注册日期: 2009-09-10
年龄: 43
帖子: 1
声望力: 0
bing_lonely 正向着好的方向发展
默认 求助,一个排列问题困扰了我三年。

问题是这样的:从一个各元素不同的偶数个元素数组(比如[1 2 3 4 5 6])中任取两个元素的组合,然后将这些所有两个元素的组合分成若干组,每组都能重新组成新数组,而这个新数组正好与原来数组相同,问当这个偶数数组是1-100时,一共能排列成多少种,并一一列举出来。



比如数组1-6,[1 2 3 4 5 6],任意取两个元素一共有12,13,14,15,16,23,24,25,26,34,35,36,45,46,56十五种(6*5/2),将这十五个新元素可以不重复的组成5组新数组和原来一样,他们是:[12 34 56]、[13 25 46]、[14 26 35]、[15 24 36]、[16 23 45]——正好全部用完十五种不重复;



如果是数组1-8,[1 2 3 4 5 6 7 8],同样的做法我可以列出下面r1中的七组,这七组不重复的用完了所有8选2的共28种组合且没有重复的组成了新的原数组。

b1 =
8
r1 =
1.0200 7.0800 5.0600 3.0400
1.0300 6.0800 5.0700 2.0400
1.0400 6.0700 5.0800 2.0300
1.0500 4.0800 3.0700 2.0600
1.0600 4.0700 3.0800 2.0500
1.0700 4.0600 3.0500 2.0800
1.0800 4.0500 3.0600 2.0700



如果是数组1-16,我可以计算出共可以得到16*15/2/8=15组,并已经实现了matlab的编程列举如下:

b1 =
16
r1 =
1.0200 15.1600 13.1400 11.1200 9.1000 7.0800 5.0600 3.0400
1.0300 14.1600 13.1500 10.1200 9.1100 6.0800 5.0700 2.0400
1.0400 14.1500 13.1600 10.1100 9.1200 6.0700 5.0800 2.0300
1.0500 12.1600 11.1500 10.1400 9.1300 4.0800 3.0700 2.0600
1.0600 12.1500 11.1600 10.1300 9.1400 4.0700 3.0800 2.0500
1.0700 12.1400 11.1300 10.1600 9.1500 4.0600 3.0500 2.0800
1.0800 12.1300 11.1400 10.1500 9.1600 4.0500 3.0600 2.0700
1.0900 8.1600 7.1500 6.1400 5.1300 4.1200 3.1100 2.1000
1.1000 8.1500 7.1600 6.1300 5.1400 4.1100 3.1200 2.0900
1.1100 8.1400 7.1300 6.1600 5.1500 4.1000 3.0900 2.1200
1.1200 8.1300 7.1400 6.1500 5.1600 4.0900 3.1000 2.1100
1.1300 8.1200 7.1100 6.1000 5.0900 4.1600 3.1500 2.1400
1.1400 8.1100 7.1200 6.0900 5.1000 4.1500 3.1600 2.1300
1.1500 8.1000 7.0900 6.1200 5.1100 4.1400 3.1300 2.1600
1.1600 8.0900 7.1000 6.1100 5.1200 4.1300 3.1400 2.1500

以上每组都没重复的用完了所有16选2的组合形成新的1-16数组。



现在回到原问题:如果数组是20,30,乃至更多100的情况呢,比如1-100,我可以计算出共有100*99/2/50=99种新数组,但是再怎么努力我也不能把他们一一列举出来,我想了三年都没有成功,恳求各位高手帮我想想怎么编程序好,小生日后定当酬谢!我的信箱:[email protected]
bing_lonely 当前离线   回复时引用此帖
 


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 09:00


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.