专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++

9个点一笔画的算法求解,送下100分

发布时间:2011-06-28 16:26:09 文章来源:www.iduyao.cn 采编人员:星星草
9个点一笔画的算法求解,送上100分
差不多一年没登过csdn了,偶尔也只是登着下载文档,在公司基本天天写lua ,写bat等等的脚本,c++也接触甚少,更别提算法了,然今天吃饭和同事讨论起了一个算法,自己几乎忘的一干二净,在此请教下大家: 
现在有种手机解锁是9个数字键,让你一笔画完的,而后我们就开始探讨起这样一笔画有几种可能性,也算是一个图论和排列组合的东西了,动态规划也不知道怎么用了,图论也忘鸟,遂请教大神们有什么好的方法呢,效率要尽量高哦。 我想着将他改了另外一种问题: 有1到9数字的九个球,他们所有的排列组合中,满足前面的数字和后面的数字差的绝对值为1或者3或者4的排列组合有几种。 
ps:好怀念大学的时候可以自己玩玩算法,虽然是个菜鸟,但至少年轻过。  一直忠实于c++ 板块,遂继续发到这里!

------解决方案--------------------
假设路径是有方向性的,假设每个点只经过一次,那么算是一个排列问题,总数为:
P(9, 2) + P(9, 3) + P(9, 4) + P(9, 5) + P(9, 6) + P(9, 7) + P(9, 8) + P(9, 9)
------解决方案--------------------
3*3的方块?只可以上下左右连的?
如果是,1开头6种,3,7,9开头同1,5开头8种,2468开头无解
------解决方案--------------------
如果是那个9点画线解锁的,有几个已知条件
最少要求4个点
同一直线上的3个点,不能跳过中间点的直接从一边画到另一边
------解决方案--------------------
http://zh.wikipedia.org/wiki/%E6%9F%AF%E5%B0%BC%E6%96%AF%E5%A0%A1%E4%B8%83%E6%A1%A5%E9%97%AE%E9%A2%98
------解决方案--------------------
用3X3的方图试试
------解决方案--------------------
引用:
假设路径是有方向性的,假设每个点只经过一次,那么算是一个排列问题,总数为:
P(9, 2) + P(9, 3) + P(9, 4) + P(9, 5) + P(9, 6) + P(9, 7) + P(9, 8) + P(9, 9)

没考虑到有些点是不能连续一起的
比如说左上角的点不能直接到右下角的点。
------解决方案--------------------
這問題不簡單,看看別人有什麽好辦法.
------解决方案--------------------
脑袋要烧掉了~~~
------解决方案--------------------
看来是个排列组合问题啊
------解决方案--------------------
引用:
假设路径是有方向性的,假设每个点只经过一次,那么算是一个排列问题,总数为:
P(9, 2) + P(9, 3) + P(9, 4) + P(9, 5) + P(9, 6) + P(9, 7) + P(9, 8) + P(9, 9)


在这两个条件的基础上,要考虑的是起点和何时经过5的问题,因为如果作为3*3的矩阵,经过5后必定需要经过一个临界点才能达到目的,比如讲‘1,2,5’后只能是3和4,这样就只剩下两个选择,因为5不可能再作为一个点,所以下面的图形只有直线和三角形,且是不包含已经过点的三角形···(有事,来不及继续分析了,只能到这了。谅解·)
------解决方案--------------------
写程序倒是简单,遍历+回溯就是了,1379三个连接,2468有5个连接,5有8个连接
------解决方案--------------------
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出
//1 2 3
//4 5 6 求一笔划过所有9个键的所有方法
//7 8 9
#include <stdio.h>
int g[10][9]={
    {0,0,0,0,0,0,0,0,0},
    {2,4,5,0,0,0,0,0,0},//1
    {1,3,4,5,6,0,0,0,0},//2
    {2,5,6,0,0,0,0,0,0},//3
    {1,2,5,7,8,0,0,0,0},//4
    {1,2,3,4,6,7,8,9,0},//5
    {2,3,5,8,9,0,0,0,0},//6
    {4,5,8,0,0,0,0,0,0},//7
    {4,5,6,7,9,0,0,0,0},//8
    {5,6,8,0,0,0,0,0,0},//9
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: