利用Python/R语言分别解决金字塔数求和问题

作者:铭记yu心 时间:2021-09-06 06:29:14 

前言

此专栏为python与R语言对比学习的文章;以通俗易懂的小实验,带领大家深入浅出的理解两种语言的基本语法,并用以实际场景!感谢大家的关注,希望对大家有所帮助。

“博观而约取,厚积而薄发!”谨以此言,望诸君共勉

本文将前两个小实验整理拼凑再了一起 ;分别是“前N阶乘求和、金字塔数求和”。具体的项目介绍见下文。

1、前N阶乘求和

阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。

n!=1∗2∗3∗...∗(n−1)∗n

或者可以使用递归方式定义:

利用Python/R语言分别解决金字塔数求和问题

对其前N项阶乘求和即是sum(1!+2!+3!+...+n!),有了以上的理论基础,我们一起看看图解,加强一下理解 !

1.1 图解问题

利用Python/R语言分别解决金字塔数求和问题

如图,如果要输出每一个值 ,可以嵌入循环的思想,每一次将前一个值进行乘法运算即可!

1.2 算法流程

利用Python/R语言分别解决金字塔数求和问题

在此可以看到 ,我们需要加以人工控制需要算前多少项。在循环体内,这是对阶乘数的累加和赋值。

1.3 代码实现

1.3.1 python代码实现

n = int(input("n = "))
s = 0
t = 1
for i in range(1,n+1):
   t*=i
   s+=t
print ("前{}阶乘的和是:{}" .format(n,s))

利用Python/R语言分别解决金字塔数求和问题

1.3.2 R语言代码实现

factorial <- function(n){
 n <<-  as.integer(readline("请输入需要阶乘个数(从 1 开始):"))
 fac = 1
 ans = 0
 for (i in 1:n) {
   fac = fac * i
   ans = ans + fac
 }
 return(ans)
}
test_3 <- function(){
 print("前n阶乘之和为:")
 factorial(n)
}
test_3()

利用Python/R语言分别解决金字塔数求和问题

1.4实验小结

这个实验核心的点是循环的使用;

至于R代码部分均使用函数的形式进行包装方便理解;函数内部采用互动的方式,便于拓展使用。有需要了解的留言或私信。

2、金字塔数求和运算

此处的金字塔是真金字塔;就按简单的金字塔形状的数字:

利用Python/R语言分别解决金字塔数求和问题

求s=a+aa+aa+aaa+aa...a的值,其中 a 是一个数字。例如:

2+22+222+2222+22222

 (此时共 有 5 个数相加),几个数相加由键盘控制。

2.1 图解问题

利用Python/R语言分别解决金字塔数求和问题

通过对每一层金字塔数的拆解,即可得到如下的通项公式:

利用Python/R语言分别解决金字塔数求和问题

这样问题不久又解决了吗?与上面的前n项阶乘求和一样,使用循环求出每一层数,然后求和。

2.2 算法流程

利用Python/R语言分别解决金字塔数求和问题

与上面实验基本没有差异;主要是循环体的算法不同而已。此处不做讲解了。

2.3 代码实现

2.3.1 python代码

a = int(input("请输入需要a的值:"))
n = int(input("请输入需要n的值:"))

Fn = 0
pyr = []

for i in range(n):
   Fn = Fn + a
   a = a*10
   pyr.append(Fn)
   print(Fn)
print("前{}个数的和为:{}".format(n, sum(pyr)))

利用Python/R语言分别解决金字塔数求和问题

2.3.2 R语言代码实现

sum_pyr <- function(){

a <- as.integer(readline("请输入a的值:"))
 n <- as.integer(readline("请输入n的值:"))

Fn <- 0
 pyr <- c()

for (i in 1:n) {
   Fn <- Fn + a
   a <- a * 10
   pyr[i] <- Fn
   print(Fn)
 }

ans <<- sum(pyr)

}
test_4 <- function(){
 print("金字塔为:")
 sum_pyr()
 print("求和结果为:")
 ans
}
test_4()

利用Python/R语言分别解决金字塔数求和问题

2.4 实验小结

这个实验核心的点是循环的使用;

至于R代码部分均使用函数的形式进行包装方便理解;函数内部采用互动的方式,便于拓展使用。有需要了解的留言或私信。

来源:https://blog.csdn.net/weixin_42873544/article/details/123682208

标签:Python,R语言,金字塔数求和
0
投稿

猜你喜欢

  • numpy工程实践之np.savetxt()存储数据

    2023-06-19 07:33:11
  • 网站图片与文本谁更重要?(中英文对照)

    2008-10-17 10:25:00
  • Gradio机器学习模型快速部署工具应用分享前篇

    2023-07-23 12:10:45
  • 防止表格或或div层被撑开的几种方法

    2008-01-01 15:33:00
  • JavaScript,5种调用函数的方法[译]

    2009-02-24 16:26:00
  • PHP getName()函数讲解

    2023-06-06 08:28:25
  • python 列表套json字典根据相同的key筛选数据

    2022-06-01 08:52:02
  • python监控文件或目录变化

    2023-09-05 16:08:28
  • 记Qzone项目组视觉设计标注的前前后后

    2010-03-24 18:03:00
  • URL编码与SQL注入

    2007-09-26 12:41:00
  • php牛逼的面试题分享

    2023-11-20 19:31:35
  • 用CSS实现图片等比例缩放

    2008-01-18 21:10:00
  • Mysql常用命令行大全

    2009-01-15 16:34:00
  • PHP PDOStatement::fetchColumn讲解

    2023-06-06 09:17:20
  • 大家一起来折磨浏览器吧!(好玩的东东)

    2010-02-07 12:40:00
  • 设计MySQL数据库的技巧

    2009-09-06 11:56:00
  • Python数据分析之pandas比较操作

    2021-11-23 05:14:22
  • PHP中trait的使用和同时引入多个trait时同名方法冲突的处理方法

    2023-06-16 23:13:52
  • 如何提升JavaScript的运行速度(递归篇)

    2010-05-17 13:30:00
  • JavaScript中常见的几种获取元素的方式

    2023-07-13 07:46:12
  • asp之家 网络编程 m.aspxhome.com