大家好,欢迎来到IT知识分享网。
解析算法,即解析法(analysis algorithm)是指用解析的方法找出表示问题的前提条件与结果之间关系的数学表达式,并通过表达式的计算来实现问题求解,其解题流程见图1。
图1 解析算法流程图
例1 使用一根长度为l厘米的铁丝,制作一个面积为s平方厘米的矩形框,要求计算该矩形框应有的高h和宽w。
图2 铁丝制作矩形框参数关系图
分析:设矩形框的高为h、宽为w,则根据几何关系(参考图2)可得:
所以h=h1,则w=h2;或者h=h2,则w=h1。
设,则当d<0时无解,当d=0时有两个相同解,当d>0时有两个不同解。程序流程如图3所示。
图3 铁丝制作矩形框程序设计流程图
完整程序如下:
# 设计 Zhang Ruilin 创建 2022-10-30 14:21 # # 已知矩形周长(l)和面积(s),求其高(h)和宽(w) # l = float(input('请输入铁丝的长度')) s = float(input('请输入矩形框面积')) d = l * l - 16 * s if d < 0: print(f'无实数解(长度为{l}厘米的铁丝制作'\ f'不了面积为{s}平方厘米的矩形框)') elif d == 0: h = w = l / 4 print(f'长度为{l}厘米的铁丝制作面积为{s}平方厘米的'\ f'矩形框,高为{h}厘米宽为{w}厘米') else: h = (l - d 0.5) / 4 w = (l + d 0.5) / 4 print(f'长度为{l}厘米的铁丝制作面积为{s}平方厘米的'\ f'矩形框,高为{h:.2f}厘米宽为{w:.2f}厘米')
例2 古代有个聪明人给国王送来了一种棋子,叫做“象棋”,棋盘上有六十四个格子,棋子上刻着“皇帝”“皇后”“车”“马”“炮”……。下棋的人按照规则走动棋子,双方对阵,像打仗一样,看谁能把谁打败。国王玩得没有够,这象棋真的太好玩了。于是,国王把发明象棋的聪明人找来,高兴地说:“这玩意儿确实使人玩不厌,我要重重赏你,你希望得到什么,我都能满足你的要求。”
聪明人说:“我只要些米粒。”“米粒,几颗米粒算什么?”国王说:“你要多少?”聪明人说,“这样吧,您在第一格棋盘上放一粒,第二格棋盘上放两粒,第三格放上四粒……照这样放下去,每格比前一格加一倍,把八八六十四格棋盘都放满了,我也就满足了。”(参见图4)。
图4 在64格棋盘上每格应放米粒数示意图
国王叫管粮食的大臣来计算,他一粒、两粒、四粒、八粒、十六粒……才放到二十格,一口袋大米就放完了,以后是二袋、四袋、八袋、十六袋……还没有放到棋盘的一半。粮仓里的粮食全放完了,他马上去报告国王:“不得了,不得了!”“什么事大惊小怪?”国王问。请计算放满64格棋盘需要多少粮食(1 千克大米约50000粒),以至于管粮食的大臣大喊“不得了,不得了!”。
解法一:如图4所示,总数。计算程序如下:
# 设计 Zhang Ruilin 创建 2022-10-31 09:01 # # 棋盘上的米粒。64 格棋盘,第 1 格放 1 粒, # # 第 2 格放 2 粒,程序后一格是前一格的一倍,# # 求放满64格需要多少大米(1 千克约 50000 粒) # s = 0 for i in range(64): s += 2i print(f'{s}粒,约{s/50000:.2f}千克\n约{s/5e7:.2f}吨)')
运行结果为:
粒,约4191.06千克
约4.19吨。
解法二:式明显是个等比数列求和等比数列求和,设
计算程序如下:
# 设计 Zhang Ruilin 创建 2022-10-31 12:50 # # 棋盘上的米粒。64 格棋盘,第 1 格放 1 粒, # # 第 2 格放 2 粒,程序后一格是前一格的一倍,# # 求放满64格需要多少大米(1 千克约 50000 粒) # a1 = 1 q = 2 n = 64 s = 2 64 - 1 print(f'{s}粒,约{s/50000:.2f}千克\n约{s/5e7:.2f}吨)')
运行结果为:
粒,约4191.06千克
约4.19吨
2021年度中国大米产量约为1.49亿吨
即需要按中国2021年的产量,2476.07年生产的大米才能满足要求。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/128231.html