帮忙:这个排列组合的算法怎么实现?

ipman 2007-09-08 10:06:49
A1 A2 A3 A4
B1 B2 B3 B4
C1 C2 C3 C4
D1 D2 D3 D4

如何设计一个算法,排列出所有下标不重复的组合,
如:
A1 A2 B3 D4
C1 B2 D3 A4
...
...全文
265 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
AngkorAlone 2007-10-03
  • 打赏
  • 举报
回复
代码略
AngkorAlone 2007-10-03
  • 打赏
  • 举报
回复
同意6楼的思路
楼主可以看看
起始排列的是列的字母次序而已
第一列是ABCD四个字母的全排列 共 4! 个
第二列是ABCD四个字母的全排列 共 4! 个
第三列是ABCD四个字母的全排列 共 4! 个
……
一共有 (4!)^4 种组合 331776 而已
不知道我的理解是否与lz的题目要求一致呢?
A_Knuth_A 2007-10-02
  • 打赏
  • 举报
回复
1.如果不考虑4行中行的顺序不同,那么用2叉树方法;
2.如果行之间有区别,做个全排列去选取;
  • 打赏
  • 举报
回复
应该是4*4*4*4 种组合 因为它限定了 下标 1,2,3,4的顺序 也就是说下标是固定的
那么等价于 下标不用考虑 等ABCD排列好了 再把下标贴上去即可
AAAA
AAAB
AAAC
AAAD
AABA
AABB
AABC
AABD
AACA
.
.
.
northwolves 2007-09-30
  • 打赏
  • 举报
回复
有没有优化算法?遍历方式耗资源啊,如果10*10岂不运算量很大?
-----------------------

13168189440000 种排列,列出来又能如何?
medie2005 2007-09-09
  • 打赏
  • 举报
回复
你既然要“排列出所有下标不重复的组合”,那么不遍历,怎么得出“所有下标不重复的组合”?
ipman 2007-09-09
  • 打赏
  • 举报
回复
有没有优化算法?遍历方式耗资源啊,如果10*10岂不运算量很大?
medie2005 2007-09-08
  • 打赏
  • 举报
回复
没看懂,详细点
TAOBO2 2007-09-08
  • 打赏
  • 举报
回复
先对 A B C D做全排列
对其中每一个排列
再做1 2 3 4的全排列
php双色球在线机选程序V1.0(支持复式机选) 运行环境: php5.0及以上 安装方法: 上传所有文件到服务器. 本人平生也经常购买福彩双色球,本人不相信所谓的规律,我只相信运气。 所以每次选号都是直接机选。后来时间长了,我觉得福彩的那个售票系统的机 选程序不够强大,应该也不是严格意义上的机选。所以决定用php写一个机选 的程序,于是自已起草了程序的基本需求如下: 分析双色球的玩法规则: 其实就是红色球和蓝色球组成的一组号码,红色球的 数字范围为1~33,蓝色球的范围为1~16,所以机选双色球的程序要考虑以下内容 : 1. 先机选出红色球部份,也就是在数字1~33之间,随机取6个数字,而且这6个 数字不能重复,最后对这6个数字进行从小到大进行排序。这时候,我们已经产 生了双色球红球部份的6个号码。当然,如果是复式机选,红球的个数则是 7~20个,所以如果是复式机选的话,红色球的个数根据具体的个数在1~33中产 生具体个数的红色号码. 2.然后再机选出蓝色球部份,也就是在数字1~16范围内,随机取1个数字.当然 如果是复式机选,则相应产生多个蓝色球,也就是在数字1~16范围内,产生多 个不重复的号码 3.组合机选出来的红色球和蓝色球的号码,合并后进行输出。这样一注双色球 就产生了。 程序的核心算法和原理: 1.机选的实现: 红色球部份,先将1~33这33个常数放在一个数组中,也就是这个数组中有33个 数组元素,然后将这个数组元素的排列,使用函数将其随机打乱,最后截取某 一段。 2.用户单式和复式的判断,以及用户注数的判断使用GET模式的URL传值进行赋 值。 本程序原是本人自用的程序,如果错误或BUG,请真指正。现将本程序进行开 放源代码,方便有需要有人进行使用和改进。 程序演示地址: http://www.12580.info/cp/ssq 程序的下载地址: 说明:如对CSS有造诣的同事,可以帮忙修改一下表单和网页样式,使其美观。

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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