算法
Heaven13483
这个作者很懒,什么都没留下…
展开
-
每天一算法(老鼠走迷官二)
接前的老鼠走迷宫一。。基础走迷宫在之前的基础之上,,把能走出迷宫的所有路都显示出来。。解法求所有路径看起来复杂但其实更简单,只要在老鼠走至出口时显示经过的路径,然后退回上一格重新选择下一个位置继续递回就可以了,比求出单一路径还简单,我们的程式只要作一点修改就可以了。int maze[9][9] = {{2, 2, 2, 2, 2, 2, 2, 2, 2},原创 2012-12-07 16:04:46 · 1175 阅读 · 0 评论 -
每天一算法(链表逆序,子字符串等几个一起)
(1) 用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍。#includeusing namespace std;struct node{ int x; node *next; node() { x = 0; next = NULL; };};void make(node *head){ node *hea = head; for(int原创 2012-10-10 10:16:55 · 2368 阅读 · 0 评论 -
每天一算法(生命游戏)
说明生命游戏(game of life)为1970年由英国数学家J. H. Conway所提出,某一细胞的邻居包括上、下、左、右、左上、左下、右上与右下相邻之细胞,游戏规则如下:孤单死亡:如果细胞的邻居小于一个,则该细胞在下一次状态将死亡。拥挤死亡:如果细胞的邻居在四个以上,则该细胞在下一次状态将死亡。稳定:如果细胞的邻居为二个或三个,则下一次状态为稳定存活。复活:如果某位置原原创 2012-12-18 14:48:10 · 2275 阅读 · 1 评论 -
每天一算法(三色河内塔)
接双色河内塔问题三色河内塔,直接来看九个盘的情况,首先必须完成下图的移动结果:接下来最底两层的就不用管它们了,因为它们已经就定位,只要再处理第一柱上面的三个盘子就可以了。C++程序#include void hanoi(int disks, char source, char temp, char target) { if (disk原创 2013-01-02 17:19:23 · 1549 阅读 · 0 评论 -
每天一算法(八枚银币)
说明 现有八枚银币a b c d e f g h,已知其中一枚是假币,其重量不同于真币,但不知是较轻或较重,如何使用天平以最少的比较次数,决定出哪枚是假币,并得知假币比真币较轻或较重。解法 单就求假币的问题是不难,但问题限制使用最少的比较次数,所以我们不能以单纯的回圈比较来求解,我们可以使用决策树,使用分析与树状图来协助求解。一个简单的状况是这样的,我们比原创 2012-12-17 23:21:47 · 1457 阅读 · 0 评论 -
每天一算法(du熊填数字)百度之星的题,限时没有完成,补上。
Problem Description du熊这几天使劲的往一个n 行n列的矩阵填0和1这两个数字,n为偶数,而且矩阵由里向外分成了n / 2层。比如n = 6时,矩阵的分层如下: du熊填数时有一个要求:不能存在两个相邻的1,且位于不同的层(这里的相邻指两格子共用一条线)。 请你帮du熊计算一下有多少种填法。Input 输入包含多组测试原创 2012-12-11 22:57:04 · 2527 阅读 · 6 评论 -
每天一算法(du熊学斐波那契I)百度之星限时做。。
Problem Descriptiondu熊对数学一直都非常感兴趣。最近在学习斐波那契数列的它,向你展示了一个数字串,它称之为“斐波那契”串:11235813471123581347112358........聪明的你当然一眼就看出了这个串是这么构造的:1.先写下两位在0~9范围内的数字a, b,构成串ab;2.取串最后的两位数字相加,将和写在串的最后面。上面du熊原创 2012-12-11 22:13:18 · 1594 阅读 · 0 评论 -
每天一算法(骑士走棋盘)
关于骑士走棋盘问题,,一是不了解走棋盘的规则,二是不了解所要使用的那种由J.C. Warnsdorff在1823年提出的解法的意思是什么。。所以只能读代码,,但还真读懂了人家的代码,并自己实现了一下。。说明骑士旅游(Knight tour)在十八世纪初倍受数学家与拼图迷的注意,它什么时候被提出已不可考,骑士的走法为西洋棋的走法,骑士可以由任一个位置出发,它要如何走完[所有的位置?原创 2012-12-11 15:58:41 · 2991 阅读 · 0 评论 -
每天一算法(巴斯卡三角,又称杨辉三角),复习一下下
//巴斯卡三角。返回第n行,n个int nCr(int n,int r){ int p=1; for (int i = 0;i<r;i++) { p *= (n-i); } for (r;r>1;r--) { p /= r; } return p;};//输出前n行void yanhui(int n){ for (int i = 0;i<n;i++) {原创 2012-12-06 15:16:07 · 1119 阅读 · 0 评论 -
每天一算法(双色河内塔又叫汉诺塔)
说明双色河内塔是由之前所介绍过的河内塔规则衍生而来,双色河内塔的目的是将下图左上的圆环位置经移动成为右下的圆环位置:解法双色河内塔或是原始的河内塔,其解法观念与之前介绍过的河内塔是类似的,同样也是使用递回来解,不过这次递回解法的目的不同,我们来看双色的情况,这很简单,只要将第一柱的黄色移动至第二柱,而接下来第一柱的蓝色移动至第三柱。再来是四个盘的情况,首先必须用递回完成下图原创 2012-12-19 10:15:00 · 6363 阅读 · 0 评论