第十五届蓝桥杯复盘python大学A组——试题B 召唤数学精灵

news/2025/2/21 19:25:31/

在这里插入图片描述

按照正常思路解决,由于累乘消耗大量时间,因此这不是一个明智的解决方案。

这段代码执行速度非常慢的原因在于它试图计算非常大的数的阶乘(累乘),并且对于每一个i的值都执行这个计算。阶乘的增长是极其迅速的,即使对于相对较小的i值,结果也会迅速超出Python标准整数类型的表示范围。此外,代码中的count变量应该被定义在循环外部,否则它会在每次迭代中重置为0。

另外,即使a和b的计算都在整数范围内进行(使用了//进行整数除法),但b=B(i)这一步仍然是非常耗时的,因为它涉及到大量的乘法运算,并且这些运算的结果会迅速增大。

使用C++等编译型语言可能会在一定程度上提高执行速度,因为编译型语言通常具有更好的性能优化。C++等语言允许更底层的内存管理和更精细的控制结构,这可以减少一些Python解释和执行代码时的开销。此外,C++标准库和第三方库可能提供了针对大数运算的优化算法和数据结构。

但是,即使使用C++,如果算法本身没有改进(即仍然试图计算巨大的阶乘),那么性能提升也可能是有限的。对于阶乘这样快速增长的函数,无论使用哪种语言,都会很快遇到数值表示的限制。

在这里插入图片描述

改进

由于这是一个巨大的数据量,因此要找规律
在这里插入图片描述
部分结果
在这里插入图片描述
最终结果
在这里插入图片描述


http://www.ppmy.cn/news/1422351.html

相关文章

Go 源码之旅-开篇

欢迎来到《Go 源码之旅》专栏!在这个专栏中,我们将深入探索 Go 编程语言的内部数据结构的工作原理,一起踏上一段令人兴奋的源码之旅。 我们将一步步解析关键的数据结构底层工作原理以及一些常用框架的设计原理及其源码。 无论你是初学者还是…

【Linux】tcpdump P2 - 捕获和查看网络数据包

文章目录 7. 选项 -r8. 主机选项9. 逻辑运算符10. 关键字 net11. 关键字 ether12. 关键字 ip6总结 本文主要介绍了如何使用tcpdump来捕获和查看网络数据包。 7. 选项 -r 如果你已经走到了这一步并且写入了一个.pcap文件,你知道你不能使用简单的文本编辑器来读取文…

【C语言】——字符串函数的使用与模拟实现(下)

【C语言】——字符串函数的使用与模拟实现(下) 前言五、长度受限类字符串函数5.1、 s t r n c p y strncpy strncpy 函数5.2、 s t r n c a t strncat strncat 函数5.3、 s t r n c m p strncmp strncmp 函数 六、 s t r s t r strstr strstr 函数6.1、函…

take-out-sky项目笔记第三章

文章目录 前言公共字段自动填充文件的上传 前言 以后这个项目所涉及的比较重要的技术点我都会将其单独写一篇文章,如果将这些技术点写在项目文章里面的话,不仅会不够细致,而且还会使项目结构看起来很乱,不够规整。这个项目文章以…

【C 数据结构】线性表

文章目录 【 1. 线性表 】【 2. 顺序存储结构、链式存储结构 】【 3. 前驱、后继 】 【 1. 线性表 】 线性表,全名为线性存储结构,线性表结构存储的数据往往是可以依次排列的(不考虑数值大小顺序)。 例如,存储类似 {1…

【网络编程】web服务器shttpd源码剖析——命令行和文件配置解析

hello !大家好呀! 欢迎大家来到我的网络编程系列之web服务器shttpd源码剖析——命令行解析,在这篇文章中,你将会学习到在Linux内核中如何创建一个自己的并发服务器shttpd,并且我会给出源码进行剖析,以及手绘…

Java练习题

题目:使用二维数组打印杨辉三角前二十行。 介绍:杨辉三角,又称贾宪三角形,帕斯卡三角形,是二项式系数在三角形中的一种几何排列。 左图的表在我国南宋数学家杨辉1261年所著的《详解九章算法》一书里就出现了。 现在&…

PCG共轭梯度最小二乘相位解包裹-matlab(可直接运行)

phase_unwrap.m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 根据Ghiglia和Romero(1994)提出的方法,基于加权和非加权最小二乘法进行相位解包裹 % 链接:https://doi.org/10.1364/JOSAA.11.000107 % 输…