70 likes | 289 Views
5.1 算法的概念 — 例题分析. 例 1 任意给定一个大于 1 的整数 n ,试设计一个算法对 n 是否为质数做出判断. 解: 算法步骤如下: 1. 判断 n 是否等于 2. 若 n=2 ,则 n 是质数;若 n>2 ,则进行第 2 步 . 2. 依次检验 2,3,4,…n-1 是不是 n 的因数,即能不能整除 n. 若有能整除 n 的数,则 n 不是质数;若没有能整除 n 的数,则 n 是质数. 例 2 在给定质数表的条件下,设计算法,将 936 分解成质因数的乘积. 解: 算法步骤如下: ( 1 )判断 936 是否为质数:否 .
E N D
例1 任意给定一个大于1的整数n,试设计一个算法对n是否为质数做出判断. 解:算法步骤如下: 1. 判断n是否等于2.若n=2,则n是质数;若n>2,则进行第2步. 2. 依次检验2,3,4,…n-1是不是n的因数,即能不能整除n. 若有能整除n的数,则n不是质数;若没有能整除n的数,则n是质数.
例2 在给定质数表的条件下,设计算法,将936分解成质因数的乘积. 解:算法步骤如下: (1)判断936是否为质数:否. (2)确定936的最小质因数:2,即936=2X468. (3)判断468是否为质数:否. (4)确定468的最小质因数:2,即936=2X2X234. (5)判断234是否为质数:否. (6)确定234的最小质因数:2,即936=2X2X2X117. (7)判断117是否为质数:否. (8)确定117的最小质因数:3,即936=2X2X2XX3X39. (9)判断39是否为质数:否. (10)确定39的最小质因数:3,即936=2X2X2X3X3X13. (11)判断13是否为质数:是.分解结束 分解结果是936=2X2X2X3X3X13.
例3 设计一个算法,求840与1764的最大公因数. 解:算法步骤如下: (1)将840进行质因数分解:840=23X3X5X7; (2)将1764进行质因数分解:1764=23X32X72; (3)确定它们的公共质因数:2,3,7; (4)确定公共质因数的指数依次为:2,1,1; (5)最大公因数为:22X3X7=84.
例4 一位商人有9枚银元,其中有1枚略轻的是假银元. 你能用天平(不用砝码)将假银元找出来吗? 解法一:算法步骤如下: (1)任取2枚银元分别放在天平的两边。如果天平左右不平衡,则轻的一边是假银元;如果天平平衡,则进行第2步; (2)取下右边的银元,放在一边,然后把剩余的7枚银元依次放在天平的右边进行称量,直到天平不平衡,偏轻的一边的那一枚就是假银元.
例4 一位商人有9枚银元,其中有1枚略轻的是假银元 .你能用天平(不用砝码)将假银元找出来吗? 解法二:算法步骤如下: (1)把银元分成3组,每组3枚; (2)先将两组分别放在天平的两边,如果天平平衡,则假银元在未称的第3组里;如果天平不平衡,则假银元就在偏轻的那一组里; (3)取出含假银元的那一组,从中任取两枚放在天平的两边,如果左右不平衡,则轻的那一边就是假银元;如果天平两边平衡,则未称的那一枚就是假银元.
算法有哪些重要的特征? 一个算法应该有如下几个特征: (1)有穷性:即一个算法的操作步骤应是有限的,不能是无限的. (2)确定性;即算法中的每一个步骤都是确定的不应存在歧义. (3)有序性:算法中的每个步骤都必须按顺序进行. (4)有一个或多个输出:一个算法一定要有输出,因为算法的最终目的就是为了求解, “求解”就是输出.