谈一道日本高考题的算法优化

来源 :数学教学通讯(教师阅读) | 被引量 : 0次 | 上传用户:luowenying124
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:本文是对2004年一道日本高考题“求x的p次方除以n后的余数”的算法优化,指出原算法的理论可行性与实际操作的不可性之间的矛盾,并采用scilab语言描述了优化后的算法.
  关键词:算法优化;循环
  
  自1999年3月日本文部省颁布新的《学习指导要领》后,高考试卷数学Ⅱ•B中经常出现程序设计题,其中2004年的第六题涉及的知识点有循环语句、常用对数和位数等. 编程的内容涉及整数、余数和位数等. 试题中体现了对算法的优化思想.本文在此基础上,提出一种更为优化的算法.
  原题:制作这样一个程序,输入自然数x,p和n,输出计算除以n后的余数.
  注意:当计算机在执行此程序时,不能处理263以上的数值. 这里,INT(x)表示不超过x的最大整数的函数.另外lg2=0.3010,需要时可用.
  【程序1】
  (1)程序1中,从120行到140行时语句,FOR…NEXT…用来求xp的.
  A可从下列提供的7个选项中选择其一.
  ①P;②2?鄢P;③P?鄢P;④P?鄢X;⑤A;⑥N;⑦X.
  另外,150行是表示求xp除以n后的余数.
  B可从下列提供的6个选项中选择其一.
  ①INT(A/N); ②INT(A/N)?鄢N; ③A-INT(A/N); ④A+INT(A/N);⑤A-INT(A/N)?鄢N;⑥A+INT(A/N)?鄢N.
  (2)在10进制中是 位数,当x=4,p≥ 时;当x=8,p≥ 时,分别使得xp≥263,而据程序1的计算,此计算机不能处理.
  注意:在 、 中分别填上符合条件的最小的自然数.
  (3)对程序1,(2)中已经谈到的关于改善x和p的大小范围,利用下列性质改变程序(设为S,T自然数,S,T除以的余数分别为s,t,这时s  【程序2】
  程序2中的110行是计算x除以n后的余数. I
  可从下列提供的6个选项中选择其一.
  ①INT(X/N); ②INT(X/N)?鄢N; ③X-INT(X/N); ④X+INT(X/N);⑤X-INT(X/N)?鄢N;⑥X+INT(X/N)?鄢N.
  执行程序2,在变量x,p,n中分别输入数据8、25、5,这是110行的B的值为 J. 从130句到160句是FOR…NEXT…语句,其中140句中A?鄢B的所有值中其最大值为 .
  执行一次循环语句(从130句到160句)所需时间是10-8秒,忽略计算机处理其他行的时间. 当p=262时,设计算机执行程序2所需的时间为s秒,则10≤s<10+1.
  分析:程序2的算法明显比程序1的算法优化,能够处理的数据突破界限,但是当p=262时,从最后程序执行的时间看,需要1010~1011秒,即317年~3170年左右的时间,说明理论上确实对算法进行了优化,但实际操作时耗时太多,有点不切实际.借助算论的知识(设为S,T自然数,S,T除以的余数分别为s、t,这时s  程序设计主要分为这样两大步:
  (1)拆分数P. 输入的正整数P(大于1)如果是偶数,则拆分为两个相等的整数,如果是奇数,则拆分为两个相邻的自然数,依此循环执行,直到P=1,把得到的数据存储在一维数组a中,且随着下标i的增加,ai的值在递减. 如图2,当数P是18时,数组a中的元素对应关系如图3.
  
  图2
  (2)计算余数. 先算x1(相当于xai-1)除以n所得的余数,把它记为s,再算xai-2除以n所得的余数,把它记为t,然后令u=i-3,当u>0时执行循环,每执行一次循环,先计算新的s,再根据au-1和au是否相等计算新的t,同时u值减2,因为i的初值为奇数,所以u的初值为偶数,当u=0时,退出循环.最后的余数yushu就是xa2乘以xa1除以n所得的余数(因为a1+a2=P).
  说明:
  (1)程序3算法的优越性主要体现在大大减少循环执行的次数. 如当x,p,n的值分别为9、262、7时,程序1、2需运算262次循环,按照执行一次循环需要10-8秒,总共需花费时间约为1.28×107小时),而用程序3只需运算不到100次循环,所需时间不足1秒,由此足以看出它比程序1、2的优越性.
  (2)程序3用的算法有点类似“折半法”,拆分指数P时一分为“二”,计算余数时合二为“一”.
  (3)在进行算法教学时,可以进行(最)优化教学的案例有很多:如求质数问题,求最大公约数问题、求多项式的值的问题,过河问题等等. 如果我们在平时多积累,多思考,让学生在学习算法部分的内容时,敢于挑战自我,向最优化的目标靠拢. 那么,思维的逻辑性、严密性、发散性等都将在此得到很好的训练.
  
  
其他文献
从20世纪40年代到现在,美国的钛工业发展一直处于龙头老大的地位。1948年美国利用克劳尔技术成功实现了钛的工业化生产,当年生产了约10t海锦钛,主要用于军事飞机中,后来逐渐扩大
一、实数与数轴上的点的对应关系是一种最简单的数形结合数轴的引入是实数内容体现数形结合思想的很好例证,因为数轴上的点与实数是一一对应关系。
我家门外的河坡上放着一堆瓦砾,是前年秋天全楼住户修理储藏室堆放在那里的。起初.人们觉得碍眼,但愁于无处运送.就搁置下了。因为它离道路远。不影响人们走路.就没有清理。时间一
期刊
铝阳极氧化过程既是灵活的,也是可以接受的,阳极氧化工艺技术的灵活性可以通过仅仅改变一个或一个以上的工艺条件就能满足许多不同性能和外观上的要求。“可以接受的”系指可以
2007年的秋天,我班转来一个叫陈安的学生,每天上下学都有专车接送。她从不愿多说话,不打上课铃不进教室,放学却又急于第一个离开。虽说花季少女,脾气却大得惊人,即便是同学们不小心
高中有机化学对于学生和老师来说都是一个重要的组块,是高中化学不可缺少的一个部分。鉴于福建省近几年来出现的重视物质结构基础弱化有机化学基础的现象,使得有机化学的教学
经济的发展推动力科技的进步,互联网的的出现将世界变成了地球村,各行各业正在面临着巨大的市场竞争,有色金属企业也不例外。新兴的信息技术取代传统的生产工艺逐渐成为提高
摘要:经过中考“筛选”后的学生在高一数学学习中会出现成绩分化,原因何在?为此,笔者在高一学生中作了调查,分析原因,提出对策。  关键词:学习方法;数学教材;非智力因素
摘要:近年来的高考数学命题对实际应用问题的考查力度越来越大,最优化问题是现实生产、生活中遇到的有着广泛應用的实际问题,故其背景非常丰富,很受高考命题者的青睐,解决这类问题的途径往往是建立函数模型,转化为求函数的最值问题。  关键词:最优化问题;函数模型;最值问题