数组排列组合问题

Aixnech 2008-03-06 02:27:50
int a[6][6] = {
{1, 2, 3, 4, 5, 6},
{7, 8, 9, 10, 11, 12},
{13, 14, 15, 16, 17, 18},
{19, 20, 21, 22, 23, 24},
{25, 26, 27, 28, 29, 30},
{31, 32, 33}
};
这个数组,要求从中截取出所有可能的数组b[4][4],在b[4][4],任意取出6个数,要求b[4][4]中任何行或列至少有6个数字中任意一个,请高人给个具体的思路。谢谢!
...全文
103 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aixnech 2008-03-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 p0303230 的回复:]
呵呵
让人想到8皇后问题
[/Quote]
不太明白
wenjun1130 2008-03-06
  • 打赏
  • 举报
回复
取数
void getnum(int *c,int i,int j)
{
for(int m=0;m<4;m++)
{
c[m]=b[(j+m)%4][(i+m)%4];
}
c[m+1]=b[j][(i+1)%4];
c[m+2]=b[j][(i+2)%4];
}
p0303230 2008-03-06
  • 打赏
  • 举报
回复
呵呵
让人想到8皇后问题
wenjun1130 2008-03-06
  • 打赏
  • 举报
回复
去b[4][4]

for(int j=0;j<2;i++)
for(int i=0;i<3;j++)
{
for(int m=0;m<4;m++)
for(int n=0;n<4;n++)
b[m][n]=a[j+m][i+n];
}
wenjun1130 2008-03-06
  • 打赏
  • 举报
回复
第一个问题 我认为就是个排列问题,种数太多了,a[6][6]中有33个数据,
那么b[4][4]就有33*32*31*30*29*28*27*26
不知道楼主要的是不是这样的 b[4][4]
Aixnech 2008-03-06
  • 打赏
  • 举报
回复
1 2 3 4 5 6
7 8 9 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33
33个数排成一个6*6的数组,从其中截取4*4的数组,如
1 2 3 4
7 8 9 10
13 14 15 16
19 20 21 22

2 3 4 5
7 8 9 10
14 15 16 17
20 21 22 23 等
然后从每个数组中任意选取6个数,要求这6个数在4*4数组中每行每列中至少有一个,譬如说取1, 3, 8, 15,16,22

然后输出这六个数就好了。
jaymin 2008-03-06
  • 打赏
  • 举报
回复
题目能不能清楚一点
liyuzhu_1984 2008-03-06
  • 打赏
  • 举报
回复
迷糊
csdn5211 2008-03-06
  • 打赏
  • 举报
回复
每太明白楼主的意思,原题是什么样的?
相关推荐
发帖
C++ 语言

6.3w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
帖子事件
创建了帖子
2008-03-06 02:27
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下