温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-03-24 11:05:40 来源:亿速云 阅读:143 作者:iii 栏目:开发技术

本篇内容介绍了“怎么用Python/R语言分别解决金字塔数求和问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    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语言分别解决金字塔数求和问题

    “怎么用Python/R语言分别解决金字塔数求和问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI