收藏 分享(赏)

华东师范大学 matlab exp07w.ppt

上传人:scg750829 文档编号:7439399 上传时间:2019-05-18 格式:PPT 页数:30 大小:555KB
下载 相关 举报
华东师范大学 matlab exp07w.ppt_第1页
第1页 / 共30页
华东师范大学 matlab exp07w.ppt_第2页
第2页 / 共30页
华东师范大学 matlab exp07w.ppt_第3页
第3页 / 共30页
华东师范大学 matlab exp07w.ppt_第4页
第4页 / 共30页
华东师范大学 matlab exp07w.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、实验七 数字填图问题,数学实验,数字填图是数学问题的一种趣味形式。 如:魔方矩阵、费马定理等,数学问题一般都要经过严格的逻辑证明才能得以解决。但随着计算机的诞生和发展,计算机改变了整个世界,计算机已经在各个领域发挥着作用,并取得了许多重大发展。但能否用计算机来证明数学问题?,问题背景和实验目的,所谓计算机证明是指充分发挥计算机计算速度快和会“推理”的特点,用计算机程序模拟解题或进行穷举检验,最后得到问题的解。如著名的“四色问题”。但几乎所有的数学家对计算机证明持保留态度。,本实验通过生活中常见的数字填图问题,研究这类问题的逻辑推理解法和计算机解法。,问题背景和实验目的,问题一:在下面的几个加法

2、等式中,每个方框表示一个非零数字,且任意两个数字互不相同,问有多少个解?, ,, ,, ,0,逻辑推理解法,注:本实验中,表达式 abc 表示 a*100+b*10+c,其余类推,方程两边相加得:,45=2(c+f)+11,a,b,c,d,e,f,g,h,i,数字填图问题一,首先有: i=1,c+f=17,c=8,f=9 或 c=9,f=8,a+b+d+e+g+h =c+f+i0,+c+f+i,+c+f+i,由于 a,b,c,d,e,f,g,h,i 互不相同,为了简单起见,不妨设 a b,d e,g h,此时问题的解为:,c=8,f=9 或 c=9,f=8,记作,c,f=8,9,逻辑解法,事实

3、上,本问题只有两个解是本质的。,如果不要求 a b,d e,g h ,则解的个数为,逻辑解法,计算机解法,计算机解法,穷举法,可以用 Matlab、Mathematica、C 语言等编程,充分利用计算机运算速度快的特点进行穷举法检验。,计算机解法,% 程序伪码 n=0; % n 用来记录解的个数 for a=1:9for b=1:9for c=1:9for d=1:9for e=1:9for f=1:9for g=1:9for h=1:9for i=1:9如果 a,b,c,d,e,f,g,h,i 互不相等,且a+b=c, d+e=f, g+h=i, 则输出这个解,并令 n=n+1; end;e

4、nd;end;end;end;end;end;end;end;end,计算机解法,Matlab 源程序见 fulu1.m, fulu1B.m 和 fulu2.m,计算机解法,穷举法,可以用 Matlab、Mathematica、C 语言等编程,充分利用计算机运算速度快的特点进行穷举法检验。,Mathematica 源程序见 fulu4.nb,Turbo C 源程序见 fulu3.c,问题二:在下面的 4 个算式中,每个方框表示一个非零数字,且任意两个数字互不相同,问 (A)、(B)、(C)、(D) 这四种情形分别有多少个解?,情形 (C)、(D) 无解。(A)、(B) 实际上是同一个问题。,(

5、A),(B),(C),(D),数字填图问题二,逻辑推理解法,a,b,c,d,e,f,g,h,i,由九余数性质得:两个“加数”中的六个数字之和被 9 除的余数应该等于“和数”中三个数字之和被 9 除的余数,即:,(a+b+c+d+e+f)-(g+h+i)=9*k,k 为一个整数,又 (a+b+c+d+e+f)+(g+h+i)=9*5,g+h+i 是 9 的倍数,g+h+i=9 或 18,情形 (A) 求解,考虑 g+h+i=9 的情形, 若 g 400,与 g = 3 矛盾。,g+h+i=9, 若 g = 4,则 h+i = 5,故 h,i = 1,4 或 2,3;,逻辑解法,g 3,从而 g

6、5,与 g = 4 矛盾。,又 g = 4,故 h,i = 2,3,此时 a,d 最小为 1,5,,g 4, 若 g = 6,则 h+i = 3,故 h,i = 1,2, a,d 最小为 3,4,从而 g 6。,g+h+i=9, 当 g 6 时,因为 g+h+i = 9,故 h+i 3,无解。,当 g+h+i=9 时,问题无解, 若 g = 5,则 h+i = 4,故h,i = 1,3, a,d 最小为 2,4,从而 g 5。,逻辑解法,g 5,g 6,考虑 g+h+i=18 的情形,由前面的推理可知 g 3,下面按 g = 9,8,7,6,5,4 逐个讨论。,g+h+i=18, g=9,记

7、L=a+d,M=b+e,N=c+f,则:,a+b+c+d+e+f=45-18=27,L 只能为 8 或 9,M、N 不能超过 15,但至少有一个大于 10,逻辑解法,与问题一的解法相类似,可得满足上面的方程的解为:,a,d=2,7,b,e=3,4,c,f=5,6,a,d=3,6,b,e=2,5,c,f=4,7,解的个数为:,用同样的方法,可以求得 g=9 时其它七种情形的解的个数。,28,逻辑解法,当 g=9,h=8,i=1 时,a+d=9,b+e=7,c+f=11,完全类似地,可以得到 g=8,7,6,5,4 时,问题二中情形 (A) 的解的情况:,所以当 g=9 时,解的个数总共为:,总共

8、有 336 个解。,如果不考虑两个“加数”的上下位置, 则解的个数为: 336/2=168,逻辑解法,计算机解法,计算机解法,穷举法,% 程序伪码 n=0; % n 用来记录解的个数 for a=1:9for b=1:9for c=1:9for d=1:9for e=1:9for f=1:9for g=1:9for h=1:9for i=1:9如果 a,b,c,d,e,f,g,h,i 互不相等,且100*a+10*b+c+100*d+10*e+f=100*g+10*h+i 则输出这个解,并令 n=n+1; end;end;end;end;end;end;end;end;end;end,Matl

9、ab 源程序见 fulu5.m。,对于本问题,逻辑方法比较复杂,而计算机解法与问题一几乎没什么区别,所需时间也几乎一样。,计算机解法,计算机解法,穷举法,问题三:在右下方的加法算式中,每个方框表示一个非零数字,且任意两个数字互不相同,问有多少个解?,由于 g d 且 g d,故 g = d+1 且 g 2。,a,b,c,d,e,f,g,h,i,首先根据九余数性质,完全类似于问题二的讨论可知:,g+h+i=9 或 18,下面按 g=9,8,7,6,5,4,3,2 逐个讨论。,数字填图问题三,逻辑推理解法,问题三的逻辑解法, g=9,则 d=8,h+i=9, g=8,则 d=7,h+i=10,0,

10、g+h+i=9或18,问题三的逻辑解法, g=7,则 d=6,h+i=11, g=6,则 d=5,h+i=3 或 12,g+h+i=9或18,问题三的逻辑解法, g=5,则 d=4,h+i=4 或13, g=4,则 d=3,h+i=5 或 14,g+h+i=9或18,问题三的逻辑解法, g=3,则 d=2,h+i=6 或 15, g=2,则 d=1,h+i=7 或 16,g+h+i=9或18,问题三的逻辑解法,问题三 的解的情况表,所以问题三 总共有 168 个解。,问题三的计算机解法,Matlab 程序自己动手!(参考附录中的程序),这里的三个问题都是有穷问题,如果是无穷问题,如“费马大定理

11、”,计算机可能就无能为力了。但如果能将无穷问题可以转化成有穷问题,则仍然可以发挥计算机的特长,如著名的“四色问题”。,下面介绍的两个问题,目前还没见到它们的逻辑解法,但利用计算机却可以成功解决。,计算机解法,穷举法,问题四:下面的加法等式中:两个真分数之和等于第三个真分数;其中每个方框表示一个非零数字,且任意两个数字互不相同,比如:,试找出所有这样的解。,本题可用计算机找到解答,共 10 个解。,如果用 fulu6.m 计算,却只能找到 6 个解;用Turbo C 可能找到 7 个、9 个或 “11” 个解。Why? 具体原因留给大家思考!,a,b,c,d,e,f,g,h,i,数字填图问题四,

12、问题五:两个假分数之和等于第三个假分数,其中每个方框表示一个非零数字,且任意两个数字互不相同,试找出所有的解。,自己动手编写 Matlab 程序,数字填图问题五,本题可用计算机找到解答,共 41 个解。,Matlab 的计时函数共有三类,Matlab 计时函数的调用,cputime:显示 Matlab 启动后所占用的 CPU 时间;tic,toc:秒表计时,tic 开始,toc 结束;clock,etime:clock 显示系统时间,etime计算两次调用 clock 之间的时间差。,t0=cputime; 你的 Matlab 程序; time=cputime-t0; % Matlab 程序的

13、运行时间,Matlab 计时函数介绍,tic; 你的 Matlab 程序; time=toc; % Matlab 程序的运行时间,t0=clock; 你的 Matlab 程序; time=etime(clock,t0); % Matlab 程序的运行时间,Matlab 计时函数介绍,例:example0701.m / example0702.m,教材 P. 113-114:练习 1、5、6,上机作业,写入实验报告册。,请在下周上机前(课后)将报告册中的问题背景与实验目的、实验原理和数学模型、实验所用软件及版本、主要内容、实验程序(参考附录)填写好,上机时验证你修改的实验程序,记录异常情况,完成实验报告,并在下周上机结束后即刻递交实验报告;并将结果存入文本文件(data?.txt)中。,练习 2、3、4 作为思考题,不必写入实验报告,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报