免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3271 | 回复: 19

[算法] 请教各位一个高难的算法题 [复制链接]

论坛徽章:
0
发表于 2008-01-21 18:16 |显示全部楼层
请教各位一个高难的算法题:
例如有3行4列的非负整数矩阵,如下:
1 2 3 4
5 6 7 8
9 10 11 12
约束条件是:排列的结果中必须保证——1在2的前面、2在3的前面等等;5在6的前面、6在7的前面等等;9至12依次类推;而且1、5、9谁在前谁在后不受任何限制。
这样,对该矩阵进行某种特定的复杂运算后得到多个排列(可能有重复的),比如其中的一个排列(用一维整型数组存储表示)如下:
1 5 2 6 9 3 10 7 11 8 12 4(用一维整型数组存储表示)
现在问题是:如何对此用一维整型数组存储表示的排列实施随机性的变换,使其仍然符合上述约束条件并且和原来的排列不一样???

论坛徽章:
0
发表于 2008-01-21 19:38 |显示全部楼层

回复 #1 xman229 的帖子

楼主的问题是不是要把这个排列变换到另一个由这个矩阵经过所谓的某种运算得到的排列?

论坛徽章:
0
发表于 2008-01-21 19:46 |显示全部楼层
不是!变换出的新排列不需要“经过所谓的某种运算得到”。

论坛徽章:
0
发表于 2008-01-21 19:48 |显示全部楼层
我的QQ 121622170,请教高手。

论坛徽章:
0
发表于 2008-01-21 19:54 |显示全部楼层
我还是没太理解题意,
使其仍然符合上述约束条件并且和原来的排列不一样
这句是什么意思?
原来的排列是原来的矩阵运算得来的,而且我们不知道这种运算是什么样子的,而现在又要通过这个原来的排列来找出符合原来对于矩阵的约束条件的一个新排列,我想不太明白了。

论坛徽章:
0
发表于 2008-01-21 20:24 |显示全部楼层
"这种运算"很复杂,无法告知你,抱歉。“找到新排列”是为了不需要借助原来复杂的“这种运算”,而是随机地交换2或3个数字以达到获得新的排列的目的。

论坛徽章:
0
发表于 2008-01-21 20:34 |显示全部楼层

回复 #6 xman229 的帖子

既然这种运算无法告诉我,那我无能为力了,从一个排列得到另一个排列,需要根据运算规则来找规律如何得到另外一个排列.

论坛徽章:
0
发表于 2008-01-21 20:38 |显示全部楼层
运算规则与“这种算法”无关;运算规则就是我不懂要问你的呀!

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
发表于 2008-01-21 20:59 |显示全部楼层
交换任意两个不受约束的数即可

论坛徽章:
0
发表于 2008-01-21 21:04 |显示全部楼层
原帖由 cjaizss 于 2008-1-21 20:59 发表
交换任意两个不受约束的数即可

这两个数好像不太好找?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP