12 2019 档案

摘要:谜题: 有 25 匹马,你需要找出最快的 3 匹马,现有最多 5 个赛道给马进行比赛,以便分出出它们之间的相对速度。在任何时候,你都无法找到得到赛马的实际速度(没有计时器等工具)。找出获得前三名的马需要进行多少场比赛。 解答: 首先,我们将马匹分为 5 组,并在赛道上对每组进行比赛。 在上面的表格中 阅读全文
posted @ 2019-12-31 16:46 賣贾笔的小男孩 阅读(1324) 评论(0) 推荐(0)
摘要:拉丁方阵(英语:Latin square)是一种 n × n 的方阵,在这种 n × n 的方阵里,恰有 n 种不同的元素,每一种不同的元素在同一行或同一列里只出现一次。以下是两个拉丁方阵举例: 拉丁方阵有此名称是因为瑞士数学家和物理学家欧拉使用拉丁字母来做为拉丁方阵里的元素的符号。 算法步骤: 在 阅读全文
posted @ 2019-12-28 15:19 賣贾笔的小男孩 阅读(5108) 评论(0) 推荐(0)
摘要:一、迷宫问题介绍 给定一个方阵表示迷宫,其中 1 表示能走的路,0 为障碍或走不通(死胡同),迷宫左上为出发点,迷宫右下角为终点。在迷宫中的移动方式只能横着走或竖着走,不能斜着走,找出冲出发点到达出口有效路径的迷宫(maze problem)问题。 二、回溯法简单求解 给定迷宫: 迷宫的二维矩阵表示 阅读全文
posted @ 2019-12-26 22:44 賣贾笔的小男孩 阅读(1424) 评论(0) 推荐(1)
摘要:一、杨辉三角介绍 杨辉三角形,又称帕斯卡三角形、贾宪三角形、海亚姆三角形、巴斯卡三角形,是二项式系数的一种写法,形似三角形,在中国首现于南宋杨辉的《详解九章算法》得名,书中杨辉说明是引自贾宪的《释锁算书》,故又名贾宪三角形。在那之前,还有更早发现这个三角的波斯数学家和天文学家,但相关的内容没有以图文 阅读全文
posted @ 2019-12-24 23:00 賣贾笔的小男孩 阅读(2873) 评论(0) 推荐(0)
摘要:一、八皇后问题 八皇后问题是一个以国际象棋为背景的问题:如何能够在8 × 8 的国际象棋棋盘上放置八个皇后(Queen),使得任何一个皇后都无法直接吃掉其他的皇后。为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的N皇后摆放问题:这时棋盘的大小变为 N ×N, 阅读全文
posted @ 2019-12-24 21:48 賣贾笔的小男孩 阅读(893) 评论(0) 推荐(0)
摘要:一、数字推盘游戏 数字推盘游戏(n-puzzle)是一种最早的滑块类游戏,常见的类型有十五数字推盘游戏和八数字推盘游戏等。也有以图画代替数字的推盘游戏。可能Noyes Palmer Chapman在1874年发明十五数字推盘,但Sam Loyd则在1891年也宣称为其发明。 八数字推盘(又名重排九宫 阅读全文
posted @ 2019-12-22 22:32 賣贾笔的小男孩 阅读(4560) 评论(0) 推荐(0)
摘要:一、魔方介绍 魔方(这里是简称,也可以叫幻方、魔术矩阵,Magic Square)是 n×n 正方形网格(n 为每侧的单元数),里面每个单元格填充了不同的正整数 1, 2, 3, ... , n2,并且每一行、每一列和对角线中的正整数之和相等。每行、每列以及对角线上的单元格里的正整数之和又叫做魔术常 阅读全文
posted @ 2019-12-19 21:50 賣贾笔的小男孩 阅读(2514) 评论(1) 推荐(0)
摘要:一、算法背景 最早发明这个问题的人是法国数学家爱德华·卢卡斯。传说越南河内某间寺院有三根银棒(A, B, C),上串 64 个金盘。 寺院里的僧侣依照一个古老的预言,以上述规则移动这些盘子;预言说当这些盘子移动完毕,世界就会灭亡。 这个传说叫做梵天寺之塔问题(Tower of Brahma puzz 阅读全文
posted @ 2019-12-17 22:24 賣贾笔的小男孩 阅读(1113) 评论(0) 推荐(0)
摘要:给定一个表达式字符串 exp,编写一个程序来检查 exp 中 “ {”,“}”,“(”,”)”,“ [”,“]” 这三个括号对在完整性和顺序上是否正确。 输入:exp = “[()]{}{[()()]()}” 输出:平衡 输入:exp = “[(])” 输出:不平衡 算法: 声明一个字符堆栈 S。 阅读全文
posted @ 2019-12-17 22:01 賣贾笔的小男孩 阅读(706) 评论(0) 推荐(0)
摘要:一、约瑟夫问题 人们站在一个等待被处决的圈子里。计数从圆圈中指定点开始,并沿着指定方向围绕圆圈进行。在跳过指定数量的人之后,执行下一个人。对剩下的人重复该过程,从下一个开始,朝同一方向跳过相同数量的人,直到只剩下一个人,并被释放。这是由一位犹太历史学家约瑟夫根据经历来命名的问题,他和他的40个战友被 阅读全文
posted @ 2019-12-14 23:27 賣贾笔的小男孩 阅读(689) 评论(0) 推荐(0)
摘要:给定两个数字作为字符串。这些数字可能非常大(可能不适合int long int int),或许相乘在计算机可能溢出了,所以任务是找到这两个数字的乘积。 1 Input : num1 = 4154 2 num2 = 51454 3 Output : 213739916 4 5 Input : num1 阅读全文
posted @ 2019-12-12 22:23 賣贾笔的小男孩 阅读(589) 评论(0) 推荐(0)
摘要:问题:给定 n 行和 m 列的二维数组矩阵。如图所示,以 ZIG-ZAG 方式打印此矩阵。 从对称的角度来看,通过反复施加滑行反射可以从简单的图案如线段产生规则的之字形。 主要思想:算法从(0, 0)位置开始水平向右遍历,当到达(0, 1)时沿着反对角线方向左下遍历(利用一个变量控制左下右上方向), 阅读全文
posted @ 2019-12-10 23:49 賣贾笔的小男孩 阅读(3227) 评论(0) 推荐(0)
摘要:双重散列是线性开型寻址散列(开放寻址法)中的冲突解决技术。双重散列使用在发生冲突时将第二个散列函数应用于键的想法。 此算法使用: (hash1(key) + i * hash2(key)) % TABLE_SIZE 来进行双哈希处理。hash1() 和 hash2() 是哈希函数,而 TABLE_S 阅读全文
posted @ 2019-12-07 23:04 賣贾笔的小男孩 阅读(10240) 评论(0) 推荐(0)
摘要:一、AVL 树 在计算机科学中,AVL树是最早被发明的自平衡二叉查找树。在AVL树中,任一节点对应的两棵子树的最大高度差为 1,因此它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下的时间复杂度都是 O(log(n))。插入和删除元素的操作则可能需要借由一次或多次树旋转,以实现树的重新平衡。 阅读全文
posted @ 2019-12-05 23:40 賣贾笔的小男孩 阅读(2458) 评论(0) 推荐(0)
摘要:一、算法介绍 普里姆算法(Prim's algorithm),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小。像 Kruskal算法一样,Prim算法也是贪婪算法。 二、Prim算法思想 Prim算 阅读全文
posted @ 2019-12-03 21:32 賣贾笔的小男孩 阅读(1355) 评论(0) 推荐(0)
摘要:一、算法介绍 Kruskal算法是一种用来查找最小生成树的算法,由Joseph Kruskal在1956年发表。用来解决同样问题的还有Prim算法和Boruvka算法等。三种算法都是贪心算法的应用。和Boruvka算法不同的地方是,Kruskal 算法在图中存在相同权值的边时也有效。最小生成树是一副 阅读全文
posted @ 2019-12-01 23:18 賣贾笔的小男孩 阅读(1965) 评论(0) 推荐(0)