| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3033 人关注过本帖
标题:一个编程才能解决的难题,有没有人写个程序给解决一下,谢谢
只看楼主 加入收藏
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <stdio.h>
main()
{
    char a[4][3]= {1,2,3, 1,2,4, 1,3,4, 2,3,4};
    char b[24][3]=
    {
        1,2,3, 1,2,4, 1,3,2, 1,3,4, 1,4,2, 1,4,3,
        2,1,3, 2,1,4, 2,3,1, 2,3,4, 2,4,1, 2,4,3,
        3,1,2, 3,1,4, 3,2,1, 3,2,4, 3,4,1, 3,4,2,
        4,1,2, 4,1,3, 4,2,1, 4,2,3, 4,3,1, 4,3,2
    };

    int i,j, bi, bj;
    for (i=0; i<4; ++i)
    {
        for (j=0; j<24; ++j)
        {
            printf("形状(%d)颜色(%d) 形状(%d)颜色(%d) 形状(%d)颜色(%d)\n", a[i][0],b[j][0], a[i][1],b[j][1], a[i][2],b[j][2]);
        }
    }
}




[此贴子已经被作者于2017-11-15 06:02编辑过]

2017-11-14 23:18
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 10楼 forever74
的确是这样……突然知道原来八皇后涉及到组合算法~以前感觉很难不过现在感觉可以弄了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-11-15 07:59
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:4 
八皇后好像比这个容易些吧
2017-11-15 08:14
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 13楼 yangfrancis
差不多~不同的是八皇后还要计算斜线~
其实八皇后开一个bool a[6][8]记录状态~
其中a[0]和a[1]表示列和行,斜线却有32种状态~
而这个a[2][4]就分别记录行和列有没有相同的出现就够了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-11-15 08:24
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 14楼 九转星河
这个简单~八皇后不用a[6][8]这么大的数组也可以~
俄罗斯方块用一个unsigned short 两个字节16进制就可以简单表示一个方块的状态了~

其实八皇后的状态记录也可以用离散化处理(实质是位数组)a[6][8]共有2的48次方种状态~用int_64记录就可以了~
用位运算a&b是否为0就可以一步判断有没有重复状态了~
如果没有则a^=b;有就回溯~
这个就……更不用说了吧~


[此贴子已经被作者于2017-11-15 10:58编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-11-15 08:48
forever74
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:CC
等 级:版主
威 望:58
帖 子:1690
专家分:4262
注 册:2007-12-27
收藏
得分:0 
回复 12楼 九转星河
组合是目的,回溯是手段,多上一层楼再低头看下去,其实是一回事儿

对宇宙最严谨的描述应该就是宇宙其实是不严谨的
2017-11-15 21:20
快速回复:一个编程才能解决的难题,有没有人写个程序给解决一下,谢谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033302 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved