左手Python 右手R —— 前N阶乘求和、金字塔数求和
左手Python 右手R —— 前N阶乘求和、金字塔数求和
- 前言
- 1、前N阶乘求和
- 1.1 图解问题
- 1.2 算法流程
- 1.3 代码实现
- 1.3.1 python代码实现
- 1.3.2 R语言代码实现
- 1.4实验小结
- 2、金字塔数求和运算
- 2.1 图解问题
- 2.2 算法流程
- 2.3 代码实现
- 2.3.1 python代码
- 2.3.2 R语言代码实现
- 2.4 实验小结
- 总结
- 创作不易,都浏览到这儿了,看官可否将下面的收藏点赞帮忙点亮。
前言
此专栏为python与R语言对比学习的文章;以通俗易懂的小实验,带领大家深入浅出的理解两种语言的基本语法,并用以实际场景!感谢大家的关注,希望对大家有所帮助。
“博观而约取,厚积而薄发!”谨以此言,望诸君共勉
本文将前两个小实验整理拼凑再了一起 ;分别是“前N阶乘求和、金字塔数求和”。具体的项目介绍见下文。
1、前N阶乘求和
阶乘是基斯顿·卡曼(Christian Kramp,1760~1826)于 1808 年发明的运算符号,是数学术语。
n!=1∗2∗3∗...∗(n−1)∗nn!=1*2*3*...*(n-1)*n n!=1∗2∗3∗...∗(n−1)∗n
或者可以使用递归方式定义:
n!={1n=0n(n−1)!n>=1n!=\left\{\begin{array}{ll} 1 & \textrm{n=0}\\ n(n-1)!& \textrm{n>=1} \end{array} \right. n!={1n(n−1)!n=0n>=1
对其前N项阶乘求和即是sum(1!+2!+3!+...+n!)sum(1!+2!+3!+...+n!)sum(1!+2!+3!+...+n!),有了以上的理论基础,我们一起看看图解,加强一下理解 !
1.1 图解问题
如图,如果要输出每一个值 ,可以嵌入循环的思想,每一次将前一个值进行乘法运算即可!
1.2 算法流程
在此可以看到 ,我们需要加以人工控制需要算前多少项。在循环体内,这是对阶乘数的累加和赋值。
1.3 代码实现
1.3.1 python代码实现
n = int(input("n = "))
s = 0
t = 1
for i in range(1,n+1):t*=is+=t
print ("前{}阶乘的和是:{}" .format(n,s))
1.3.2 R语言代码实现
factorial <- function(n){n <<- as.integer(readline("请输入需要阶乘个数(从 1 开始):"))fac = 1ans = 0for (i in 1:n) {fac = fac * ians = ans + fac }return(ans)
}
test_3 <- function(){print("前n阶乘之和为:")factorial(n)
}
test_3()
1.4实验小结
这个实验核心的点是循环的使用;
至于R代码部分均使用函数的形式进行包装方便理解;函数内部采用互动的方式,便于拓展使用。有需要了解的留言或私信。
2、金字塔数求和运算
此处的金字塔是真金字塔;就按简单的金字塔形状的数字:
求s=a+aa+aa+aaa+aa...as=a+aa+aa+aaa+aa...as=a+aa+aa+aaa+aa...a的值,其中 a 是一个数字。例如:2+22+222+2222+222222+22+222+2222+222222+22+222+2222+22222
(此时共 有 5 个数相加),几个数相加由键盘控制。
2.1 图解问题
通过对每一层金字塔数的拆解,即可得到如下的通项公式:
Fn={2n=110(n−1)+2n>1F_{n}=\left\{\begin{array}{ll} 2 & \textrm{n=1}\\ 10(n-1)+2& \textrm{n>1} \end{array} \right. Fn={210(n−1)+2n=1n>1
这样问题不久又解决了吗?与上面的前n项阶乘求和一样,使用循环求出每一层数,然后求和。
2.2 算法流程
与上面实验基本没有差异;主要是循环体的算法不同而已。此处不做讲解了。
2.3 代码实现
2.3.1 python代码
a = int(input("请输入需要a的值:"))
n = int(input("请输入需要n的值:"))Fn = 0
pyr = []for i in range(n):Fn = Fn + aa = a*10pyr.append(Fn)print(Fn)
print("前{}个数的和为:{}".format(n, sum(pyr)))
2.3.2 R语言代码实现
sum_pyr <- function(){a <- as.integer(readline("请输入a的值:"))n <- as.integer(readline("请输入n的值:"))Fn <- 0pyr <- c()for (i in 1:n) {Fn <- Fn + aa <- a * 10pyr[i] <- Fnprint(Fn)}ans <<- sum(pyr)}
test_4 <- function(){print("金字塔为:")sum_pyr()print("求和结果为:")ans
}
test_4()
2.4 实验小结
这个实验核心的点是循环的使用;
至于R代码部分均使用函数的形式进行包装方便理解;函数内部采用互动的方式,便于拓展使用。有需要了解的留言或私信。
总结
- 本文中Python与R语言语法小结
获取键盘输入值——input()函数 VS readline()函数
本文主要对for循环玩法进行了加深一步的介绍 。以及 R语言的函数体也是今后常用的结构体!
针对于R语言循环和R语言函数体详情可以查看往期文章链接: R语言|for循环————R语言入门到入土系列(八)、R语言 自定义函数之趣味程序–老虎机
这是左手Python右手R系列的第2片文章,希望大家能喜欢这个系列。
创作不易,都浏览到这儿了,看官可否将下面的收藏点赞帮忙点亮。
左手Python 右手R —— 前N阶乘求和、金字塔数求和相关推荐
- 左手Python右手R —《白夜行》wordcloud
作者:胡言 R语言中文社区专栏作者 知乎ID: https://www.zhihu.com/people/hu-yan-81-25 前言 我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳 ...
- python房价预测_您的选房系统已上线——利用python和R如何进行房价预测
本文约1500字,阅读需要5分钟.讲述了如何使用python进行房价信息获取,如何利用R构建回归模型以达到预测上海某个地区房价的目的. 关键词:买房 Python 选房 R 定价 本文讲述了借助Pyt ...
- 【编程帮助】python中字符串前的 r、b、u、f 的含义及用法
针对实战中遇到的字符串前加有字母的情况而不知道它们的具体作用进行总结 一.字符串前加 r :去除转义字符 二.字符串前加 b : 表示该字符串是一个 bytes 对象 三.字符串前加 u :将该字符串 ...
- Python中字符串前“b”,“r”,“u”,“f”的作用
原文:https://www.jb51.net/article/176601.htm 原文有bug特参考:https://www.cnblogs.com/songzhenhua/p/13236794. ...
- python字符串前面加f什么意思_详解Python中字符串前“b”,“r”,“u”,“f”的作用...
1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 进行编码,一般用在中文字符串前面,防止因为源码储存格式问题,导致再次使用时 ...
- 独家 | 利用Auto ARIMA构建高性能时间序列模型(附Python和R代码)
作者:AISHWARYA SINGH 翻译:陈之炎 校对:丁楠雅 本文共3400字,建议阅读10+分钟. 本文介绍了ARIMA的概念,并带你用Python和R训练一个数据集实现它. 简介 想象你现在有 ...
- 机器学习算法清单!附Python和R代码
来源:数据与算法之美 本文约6000字,建议阅读8分钟. 通过本文为大家介绍了3种机器学习算法方式以及10种机器学习算法的清单,学起来吧~ 前言 谷歌董事长施密特曾说过:虽然谷歌的无人驾驶汽车和机器人 ...
- r语言和python-R VS Python:R语言是否真的过时了?
自从CDA数据分析师开设了Level1 业务数据分析师 R专题之后,很多学生对此产生了疑惑.特别是在挖掘建模工具的选择上,甚至出现了选择恐惧症.在此,摘抄了 浩彬老撕 的文章,以及之前零零散散看的一 ...
- python数据分析的主要流程-将Python和R整合进一个数据分析流程
编译:丁一 黄念 丁雪 校对:席雄芬 姚佳灵 程序验证:郭姝妤 序言 在Python中调用R或在R中调用Python,为什么是"和"而不是"或"? 在互联网中, ...
最新文章
- Android RecyclerView(和SnapHelper) 实现类似ViewPager的效果
- 怎么处理404 错误页面 、处理404页面、asp.net 处理404页面
- seo关键词互点软件报价_seo关键词优化软件如何收费
- pip安装库包以及.whl库包、.tar.gz库包具体方式
- C++ STL set(集合)
- gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
- Java模拟事务Demo
- English trip V2-B 1 What's on the Menu? 菜单上有什么? Teacher:Tom
- 求职攻略 | Datawhale助力秋招最强战甲
- DP--POJ1191 棋盘分割
- Python 贪吃蛇小游戏
- 华为海思芯片自立自强!
- 蓝桥杯--并查集1 sdutoj 小雷的冰茶几
- 服务器上qq打不开网页,能上qq打不开网页的解决方法
- 搭建证书服务并配置Tomcat SSL服务器证书
- Python中seek()函数的使用方法--一文读懂
- leecode第一百七十四题(地下城游戏)
- 一加7使用adb强制90hz时遇到的问题
- python图案绘制解锁_PythonAppium实现安卓手机图形解锁详解
- 什么是RPM安装???
热门文章
- 使用geocoder_你在哪? 使用Geocoder PHP实现地理位置
- 缓冲区溢出之strcpy和memcpy
- php网页源码物业管理系统mysql数据库web结构html布局计算机软件工程
- 微信小程序带来了新的创业机会?
- 【Codecs系列】FFmpeg中mpeg2编解码器的提取和编译测试
- 微信小程序简单的循环输出优惠券列表(完整小模板)
- 英:各种符号的英文读法
- ValueError: tf.function-decorated function tried to create variables on non-first call的解决方式
- linux内核c语言笔试,C语言之linux内核--BCD码转二进制与二进制转BCD码(笔试经典)...
- 用 Javascript 和 CSS 实现脚注(Footnote)效果