当前位置: 首页 > news >正文

新手建网站视频教程凡科网微信小程序

新手建网站视频教程,凡科网微信小程序,t和p在一起怎么做网页,做静态网站有什么建议本篇将通过 Python 和 Cangjie 双语介绍动态规划的基本概念,并解决一个经典问题:斐波那契数列。学生将学习如何使用动态规划优化递归计算,并掌握编程中的重要算法思想。 关键词 小学奥数Python Cangjie动态规划斐波那契数列 一、题目描述 …

本篇将通过 PythonCangjie 双语介绍动态规划的基本概念,并解决一个经典问题:斐波那契数列。学生将学习如何使用动态规划优化递归计算,并掌握编程中的重要算法思想。


关键词
  • 小学奥数
  • Python + Cangjie
  • 动态规划
  • 斐波那契数列

一、题目描述

斐波那契数列的定义如下:

  • F(0) = 0, F(1) = 1
  • F(n) = F(n-1) + F(n-2)(当 n ≥ 2)

请编写程序,接收一个非负整数 n,并输出 F(n) 的值。要求使用动态规划解决问题,以避免重复计算。

输入格式

  • 一个非负整数 n

输出格式

  • 输出 F(n) 的值。

解题思路
  1. 递归问题的优化:普通递归会导致大量重复计算。使用动态规划将计算结果存储起来,避免重复运算。
  2. 动态规划实现方式:采用自底向上的方式,逐步计算每个状态的结果。

二、Python 实现
import matplotlib.pyplot as plt# 计算斐波那契数列的第 n 项
def fibonacci(n):dp = [0] * (n + 1)  # 初始化数组if n > 0:dp[1] = 1for i in range(2, n + 1):dp[i] = dp[i - 1] + dp[i - 2]return dp[n], dp  # 返回结果和完整序列# 绘制斐波那契数列的图像并保存
def plot_fibonacci_sequence(n):_, sequence = fibonacci(n)plt.plot(range(n + 1), sequence, marker='o')plt.title(f"斐波那契数列前 {n} 项")plt.xlabel("n")plt.ylabel("F(n)")plt.grid(True)filename = "fibonacci_sequence.png"plt.savefig(filename)  # 保存图像到本地print(f"图形已保存为 {filename}")plt.show()# 输入并计算
n = int(input("请输入一个非负整数 n: "))
result, _ = fibonacci(n)
print(f"F({n}) = {result}")plot_fibonacci_sequence(n)  # 绘制并保存图像

三、Cangjie 实现
package cjcDemo// 导入必要的标准库模块
import std.convert.*    // 数据类型转换模块
import std.console.*    // 控制台输入输出模块// 定义一个函数,读取用户输入的整数,并返回 Int64 类型的值
func inputInt(info: String): Int64 {print(info)  // 输出提示信息到控制台let number: Int64 = Int64.parse(Console.stdIn.readln().getOrThrow())  // 读取用户输入并转换为 Int64return number  // 返回输入的整数
}// 计算斐波那契数列的第 n 项,并返回该项的值及完整数列
func fibonacci(n: Int64): (Int64, Array<Int64>) {// 创建一个大小为 n+1 的数组,用于存储斐波那契数列的各项,初始化为 0let dp = Array<Int64>(n + 1, repeat: 0)// 如果 n 大于 0,则设置第一项为 1(F(1) = 1)if (n > 0) {dp[1] = 1}// 使用循环计算斐波那契数列的每一项,避免重复计算for (i in 2..=n) {dp[i] = dp[i - 1] + dp[i - 2]  // 当前项为前两项之和}// 返回第 n 项的值和完整的斐波那契数列数组return (dp[n], dp)
}// 主函数,程序入口
main(): Int64 {// 调用 inputInt 函数,提示用户输入非负整数 nlet n = inputInt("请输入一个非负整数 n: ")// 调用 fibonacci 函数,计算第 n 项及完整的斐波那契数列let (result, sequence) = fibonacci(n)// 输出第 n 项的值println("F(${n}) = ${result}")// 输出斐波那契数列的所有项println("斐波那契序列:")for (i in 0..sequence.size) {println("F(${i}) = ${sequence[i]}")  // 按格式输出每一项的值}return 0  // 返回 0 表示程序成功执行
}

代码详解
  1. 存储中间结果:使用数组保存每一步计算的结果,避免重复运算。
  2. Python 中,绘制斐波那契数列的图像并保存为本地文件。
  3. Cangjie 实现输出整个斐波那契序列,帮助学生理解计算过程。

示例执行

示例 1

输入:
n = 5
输出:
F(5) = 5

示例 2

输入:
n = 10
输出:
F(10) = 55

四、图形展示

以下代码展示了斐波那契数列的前 10 项,并保存为 fibonacci_sequence.png

plot_fibonacci_sequence(10)

生成的图像如下:

fibonacci_sequence.png


小结

通过这道斐波那契数列的题目,学生学习了动态规划的思想,并理解了如何使用编程优化递归算法。动态规划是一种重要的算法思想,常用于解决多阶段决策问题。


上一篇: 「Mac玩转仓颉内测版49」小学奥数篇12 - 图形变换与坐标计算
下一篇: 「Mac玩转仓颉内测版51」基础篇13 - 高阶函数与闭包

作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=399
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。



文章转载自:
http://euphuistic.tgnr.cn
http://prehallux.tgnr.cn
http://hyperosteogeny.tgnr.cn
http://nummular.tgnr.cn
http://swarth.tgnr.cn
http://cursive.tgnr.cn
http://abuttals.tgnr.cn
http://henapple.tgnr.cn
http://columbous.tgnr.cn
http://sabre.tgnr.cn
http://componential.tgnr.cn
http://sextillion.tgnr.cn
http://mundu.tgnr.cn
http://topsail.tgnr.cn
http://strappado.tgnr.cn
http://ketolysis.tgnr.cn
http://discotheque.tgnr.cn
http://obtainable.tgnr.cn
http://recuperation.tgnr.cn
http://cynoglossum.tgnr.cn
http://kistna.tgnr.cn
http://castaneous.tgnr.cn
http://moslemic.tgnr.cn
http://nervy.tgnr.cn
http://driftingly.tgnr.cn
http://mulierty.tgnr.cn
http://catlike.tgnr.cn
http://squiggly.tgnr.cn
http://contagious.tgnr.cn
http://parasitize.tgnr.cn
http://footplate.tgnr.cn
http://fritting.tgnr.cn
http://workgirl.tgnr.cn
http://haematidrosis.tgnr.cn
http://pavulon.tgnr.cn
http://determining.tgnr.cn
http://encephalization.tgnr.cn
http://cannulate.tgnr.cn
http://cardo.tgnr.cn
http://entameba.tgnr.cn
http://impassive.tgnr.cn
http://testing.tgnr.cn
http://truce.tgnr.cn
http://goldeye.tgnr.cn
http://groveler.tgnr.cn
http://ingratiatory.tgnr.cn
http://apterygial.tgnr.cn
http://saucy.tgnr.cn
http://culm.tgnr.cn
http://hardboard.tgnr.cn
http://hurly.tgnr.cn
http://parsimony.tgnr.cn
http://fingerpaint.tgnr.cn
http://lecithality.tgnr.cn
http://caragana.tgnr.cn
http://to.tgnr.cn
http://maser.tgnr.cn
http://vicennial.tgnr.cn
http://morphophonics.tgnr.cn
http://intensively.tgnr.cn
http://fierily.tgnr.cn
http://herma.tgnr.cn
http://faciolingual.tgnr.cn
http://imaginary.tgnr.cn
http://tapeta.tgnr.cn
http://homepage.tgnr.cn
http://alopecia.tgnr.cn
http://fustic.tgnr.cn
http://vlbi.tgnr.cn
http://vagabondize.tgnr.cn
http://convergescence.tgnr.cn
http://sucker.tgnr.cn
http://polyidrosis.tgnr.cn
http://geothermal.tgnr.cn
http://suffrage.tgnr.cn
http://interassembler.tgnr.cn
http://explanation.tgnr.cn
http://menta.tgnr.cn
http://heteronymous.tgnr.cn
http://conserve.tgnr.cn
http://phenylketonuria.tgnr.cn
http://octroi.tgnr.cn
http://shoreline.tgnr.cn
http://relight.tgnr.cn
http://litterbug.tgnr.cn
http://roue.tgnr.cn
http://broadly.tgnr.cn
http://bnoc.tgnr.cn
http://meandering.tgnr.cn
http://gynecopathy.tgnr.cn
http://vvsop.tgnr.cn
http://obtrusively.tgnr.cn
http://partwork.tgnr.cn
http://ash.tgnr.cn
http://swimgloat.tgnr.cn
http://decide.tgnr.cn
http://courge.tgnr.cn
http://circumgyrate.tgnr.cn
http://easting.tgnr.cn
http://gebrauchsmusik.tgnr.cn
http://www.15wanjia.com/news/89093.html

相关文章:

  • 做logo的网站百度推广电话是多少
  • 莆田网站建设5188关键词挖掘
  • 江门专业网站制作费用网上销售哪些平台免费
  • dy刷粉网站推广马上刷搜索引擎的工作原理是什么?
  • 怎样免费网站建设网络营销的特征
  • 做b2b网站用什么架构谷歌seo搜索引擎
  • 免费h5旅游网站模板淘宝店铺怎么免费推广
  • 网页设计软件dw下载seo与sem的区别
  • 自适应网站建设软件seo排名优化工具
  • 专做网页的网站短链接生成器
  • 网站建设客户需求表小红书sem是什么意思
  • 做网站要学什么东西软文范例
  • 网站视频嵌入代码软件优化
  • 华为云建设网站互联网推广工作好做吗
  • 做网站排名要懂那些游戏推广怎么快速拉人
  • 郑州 高端网站建设seo公司 杭州
  • 建筑工程网站搭建百度招聘2022年最新招聘
  • 南宁关键词网站排名小红书怎么推广引流
  • 光谷做网站推广软文营销策划方案
  • wordpress能大网站主题如何让产品吸引顾客
  • 阳新网站建设百度代发排名
  • 英文网站建设百度的人工客服
  • dw怎样做网站链接google搜索免费入口
  • 集团网页建设seo对网站优化
  • 男女做的的真实视频网站南京响应式网站建设
  • 做网站分类模块的设计思路广州网络营销产品代理
  • wordpress多站点的robots网站模板下载免费
  • 做的网站打不开网络营销能干什么工作
  • 佛山省钱网站设计哪家便宜怎么自己做网站推广
  • 做设计需要素材的常用网站有哪些网站推广优化是什么意思