I am a teacher!

导航

2019年9月2日 #

矩阵乘法(二):利用矩阵快速幂运算完成递推

摘要: 矩阵乘法,特别是矩阵快速幂运算在实际中的应用非常广泛。例如,利用矩阵乘法可以方便快速地求解线性递推关系。 例如,我们知道斐波拉契数列具有如下线性递推关系: F(0)=0 F(1)=1 F(n)= F(n-1) + F(n-2) (n>=2) 构造一个矩阵,可以利用矩阵乘法完成递推。如下所示。 【例1 阅读全文

posted @ 2019-09-02 15:01 aTeacher 阅读(1040) 评论(0) 推荐(0) 编辑

矩阵乘法(一):基本运算

摘要: 矩阵,是线性代数中的基本概念之一。一个m×n的矩阵就是m×n个数排成m行n列的一个数阵。在计算机中,一个矩阵实际上就是一个二维数组。因此,可以将矩阵定义为一个结构体: struct Matrix { int mat[110][110]; // 存储矩阵中各元素 int row,col; // 矩阵的 阅读全文

posted @ 2019-09-02 11:45 aTeacher 阅读(4123) 评论(0) 推荐(0) 编辑

2019年8月1日 #

从“n!末尾有多少个0”谈起

摘要: 在学习循环控制结构的时候,我们经常会看到这样一道例题或习题。问n!末尾有多少个0?POJ 1401就是这样的一道题。 【例1】Factorial (POJ 1401)。 Description The most important part of a GSM network is so called 阅读全文

posted @ 2019-08-01 12:51 aTeacher 阅读(1099) 评论(0) 推荐(0) 编辑

2019年7月27日 #

从“约瑟夫问题”谈起

摘要: 约瑟夫问题是一个出现在计算机科学和数学中的问题。在计算机编程的算法中,类似问题又称为约瑟夫环。 据说著名犹太历史学家 Josephus有过以下的故事:在罗马人占领乔塔帕特后,39 个犹太人与Josephus及他的朋友躲到一个洞中,39个犹太人决定宁愿死也不要被敌人抓到,于是决定了一个自杀方式,41个 阅读全文

posted @ 2019-07-27 14:12 aTeacher 阅读(842) 评论(0) 推荐(1) 编辑

2019年7月20日 #

二分法(四):采用二分法解决“最大化平均值”问题

摘要: 【例1】切绳子。 题目描述 有N条绳子,它们的长度分别为Li。如果从它们中切割出K条长度相同的绳子,这K条绳子每条最长能有多长?答案保留到小数点后2位(直接舍掉2位后的小数)。 输入输出格式 输入格式: 第一行两个整数N和K(0<N<=10000, 0<K<=10000),接下来N行,描述了每条绳子 阅读全文

posted @ 2019-07-20 11:29 aTeacher 阅读(1030) 评论(0) 推荐(0) 编辑

二分法(三):采用二分法解决“最大化最小值问题”

摘要: 【例1】跳石头。 题目描述 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。 阅读全文

posted @ 2019-07-20 10:53 aTeacher 阅读(3260) 评论(0) 推荐(0) 编辑

二分法(二):采用二分法解决“最小化最大值问题”

摘要: 二分法除了可以进行有序查找、解方程等外,还可以用来解决一些实际问题。这些问题中,非常典型的应用就是“最小化最大值问题”和“最大化最小值问题” “最小化最大值问题”和“最大化最小值问题”在优化问题中比较常见,简单来说,“最小化最大值”是为了压制优化目标中表现最突出的成分,“最大化最小值”为了提升优化目 阅读全文

posted @ 2019-07-20 10:46 aTeacher 阅读(3475) 评论(0) 推荐(0) 编辑

2019年7月19日 #

二分法(一):二分法的基本思想

摘要: 二分法是一个非常高效的算法,它常常用于计算机的查找过程中。 先玩一个小游戏。预先给定一个小于100的正整数x,让你猜,猜测过程中给予大小判断的提示,问你怎样快速地猜出来? 这样猜测最快,先猜50,如果猜对了,结束;如果猜大了,往小的方向猜,再猜25;如果猜小了,往大的方向猜,再猜75;…,每猜测1次 阅读全文

posted @ 2019-07-19 11:03 aTeacher 阅读(37551) 评论(0) 推荐(1) 编辑

2019年7月17日 #

高精度计算(四):大整数乘法(采用“万进制”)

摘要: 【例1】大整数乘法。 编写一个程序,求两个不超过200 位的非负整数的积。 (1)编程思路。 大整数乘大整数,实质就是在小学竖式乘法的基础上枚举各个乘数位与被乘数相乘,累加到结果当中。其中乘数中的第j位与被乘数中的第i位相乘时,结果应该保存到结果的第i+j-1位中。 (2)源程序。 #include 阅读全文

posted @ 2019-07-17 08:39 aTeacher 阅读(549) 评论(0) 推荐(0) 编辑

高精度计算(三):大整数加法和减法(采用“万进制”)

摘要: 一般我们称基本数据类型无法表示的整数为大整数。而对于那些精度要求很高的数据通常称为高精度数,或称大数。 表示和存放大数的一个简单的方法就是:用数组存放和表示大数。一个数组元素,存放大数中的一位。 显然,在C/C++语言中,int类型(4个字节/32位计算机)数组元素存储十进制的一位数字非常浪费空间, 阅读全文

posted @ 2019-07-17 08:11 aTeacher 阅读(845) 评论(0) 推荐(0) 编辑