【题目2】 大衍数列,斐波拉契数列等,用VBA 和python解决

目录

0 原始题目:大衍数列

0.1 原始题目

0.2 知识点

1 大衍数列

1.1 大衍数列定义

1.1.1 大衍数列定义

1.1.2 大衍数列注意点

1.2 用VBA实现大衍数列

1.3 用python实现大衍数列

2 斐波拉契数列 /兔子数列/ 黄金分割数列

2.1 斐波拉契数列定义

2.1.1 下面来自百度百科

2.1.2 斐波那契数列注意点

2.2 斐波那契数列,用VBA解题

2.3 斐波那契数列,用python解题

3 其他常见有意思的数列题目 (暂存资料备忘)


0 原始题目:大衍数列

0.1 原始题目

大衍数列-蓝桥杯-基础-CSDN算法技能树CSDN大衍数列社区,大衍数列论坛,为中国软件开发者打造学习和成长的家园https://edu.csdn.net/skill/algorithm/algorithm-12a6edfcdbb9460d8ec505301b388717?category=188

贡献者:CSDN-Ada助手

中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。

它的前几项是:0、2、4、8、12、18、24、32、40、50 …

其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

以下的代码打印出了大衍数列的前 100 项。

请填补空白处的内容。

#include <stdio.h>
int main()
{
    int i;
    for (i = 1; i <= 100; i++)
    {
        if (__________________)
            printf("%d ", i * i / 2);
        else
            printf("%d ", (i * i - 1) / 2);
    }
    printf("\n");
}

0.2 知识点

VBA里

  • 除法,/ ,获得商,总是浮点数
  • 取余,  mod ,获得余数
  • 整除,\ 反斜杠,获得商的整数部分

python里

  • 除法,/ ,获得商的精确值,总是浮点数
  • 取余, % ,获得余数
  • 整除,//,获得商的整数部分

1 大衍数列

1.1 大衍数列定义

1.1.1 大衍数列定义

中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。

它的前几项是:0、2、4、8、12、18、24、32、40、50 …

其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

1.1.2 大衍数列注意点

  • 注意大衍数列是从1开始,而不是从0开始

1.2 用VBA实现大衍数列

VBA代码

Function dayan1(n)   '大衍数列

    If n Mod 2 = 0 Then
        dayan1 = (n * n) / 2
    Else
        dayan1 = (n * n - 1) / 2
    End If
End Function

'输出第几个
Sub test3()
    Debug.Print dayan1(5)
End Sub

'输出前n个
Sub test4()
    For i = 1 To 10
        Debug.Print dayan1(i);
    Next i
End Sub

测试

1.3 用python实现大衍数列

  • 注意大衍数列是从1开始,而不是从0开始
def dayan1(n):
    if n % 2==0:
        return (n**2)/2  
    else:
        return (n**2-1)/2 
#输出单个值
print(dayan1(5))

#输出整个序列
#for i in range(11):               #这样会包含0,不适合大衍数列
#for i in [1,2,3,4,5,6,7,8,9,10]:  #这样不包含0
for i in range(1 , 11):            #这样不包含0  
    print(dayan1(i),end=",")

2 斐波拉契数列 /兔子数列/ 黄金分割数列

2.1 斐波拉契数列定义

2.1.1 下面来自百度百科

斐波那契数列,也称为黄金分割数列或兔子数列,是一个著名的数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入。这个数列的特点是从第三项开始,每一项都等于前两项之和。其递推关系为F(0)=1,F(1)=1,F(n)=F(n-1)+F(n-2),其中n≥2且n为自然数。

斐波那契数列在数学、物理、计算机科学等领域有着广泛的应用,其与黄金分割率密切相关,因此在艺术和自然界中也有所体现。例如,许多植物的生长模式、花朵的花瓣数量、甚至自然界中一些贝壳的纹理都体现了斐波那契数列的规律。

2.1.2 斐波那契数列注意点

  • 注意斐波那契数列是从0开始,而不是从1开始
  • 斐波那契数列是兔子数列,前2个数都是1,而不是0,1

2.2 斐波那契数列,用VBA解题

VBA代码

Function Fibonacci1(n)   'Fibonacci1数列,兔子数列

    If n = 1 Then
        Fibonacci1 = 1
    ElseIf n = 2 Then
        Fibonacci1 = 1
    Else
        Fibonacci1 = Fibonacci1(n - 1) + Fibonacci1(n - 2)
    End If
End Function

'输出第几个
'列出斐波拉契的第n个内容
Sub test1()
    Debug.Print Fibonacci1(5)
End Sub

'输出前n个
'列出斐波拉契的第n为止的全部内容
Sub test2()
    For i = 1 To 10
        Debug.Print Fibonacci1(i);
    Next i
End Sub

测试情况

2.3 斐波那契数列,用python解题

python代码

注意点

  • 函数返回值
  • python使用return
  • fibonacci1=n 这是VBA写法

def fibonacci1(n):
    if n<=1:
        return 1 
    else:
        return fibonacci1(n-1)+fibonacci1(n-2) 

#输出单个值
print(fibonacci1(5))

#输出整个序列
for i in range(11):
    print(fibonacci1(i),end=",")

测试情况

3 其他常见有意思的数列题目 (暂存资料备忘, 太多了。。。)

问的C站的AI

当谈到著名的数列时,以下是10个常见的数列:

  1. 斐波那契数列:每个数字是前两个数字之和,起始于0和1(0, 1, 1, 2, 3, 5, 8, 13, 21, 34…)。

  2. 等差数列:每个数字与前一个数字之间的差值相等(例如:1, 3, 5, 7, 9…)。

  3. 等比数列:每个数字与前一个数字之间的比值相等(例如:2, 4, 8, 16, 32…)。

  4. 质数数列:仅包含质数(素数)的数列(例如:2, 3, 5, 7, 11, 13, 17, 19, 23…)。

  5. 平方数数列:每个数字是一个完全平方数(例如:1, 4, 9, 16, 25, 36, 49, 64, 81…)。

  6. 等差平方数数列:每个数字是一个等差数列中的完全平方数(例如:1, 4, 9, 16, 25, 36, 49…)。

  7. 卡塔兰数列:用于计算组合问题的数列(例如:1, 1, 2, 5, 14, 42, 132…)。

  8. 自然对数数列:每个数字是自然对数的递增序列(例如:0, 1, 2.71828, 4.71828, 6.71828…)。

  9. 调和数列:每个数字是调和级数的递增序列(例如:1, 1.5, 1.83333, 2, 2.28333…)。

  10. 斯特灵数列:用于近似计算阶乘的数列(例如:1, 1.5, 1.66667, 1.875, 2…)。

递推数列

递推数列是可以递推找出规律的数列,找出这个规律的通项式就是解递推数列。求递推数列通项公式的常用方法有:公式法、累加法、累乘法、待定系数法等共十种方法。

问题三:猴子分桃 1979年,李政道博士给中国科技大学少年班出过一道智趣题: 5只猴子分一堆桃子,怎么也不能分成5等份,只好先去睡觉,准备第二天再分。夜里1只猴子偷偷爬起来,先吃掉一个桃子,然后将其分成5等份,藏起自己的一份就去睡觉了;第2只猴子又爬起来,吃掉一个桃子后,也将桃子分成5等分,藏起自己的一份睡觉去了;以后的3只猴子都先后照此办理。问最初至少有多少个桃子?最后至少剩下多少个桃子?

汉诺塔

3、Look-and-say 数列

Look-and-say 数列是数学中的一种数列,它的名字就是它的推导方式:给定第一项之后,后一项是前一项的发音。

4、帕多瓦数列

帕多瓦数列是由帕多瓦总结而出的。它的特点为从第四项开始,每一项都是前面2项与前面3项的和。

5、卡特兰数

卡特兰数是组合数学中一个常出现在各种计数问题中的数列。以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。

卡特兰数是组合数学中一个常出现于各种计数问题中的数列。以中国蒙古族数学家明安图和比利时数学家欧仁·查理·卡特兰的名字命名,其前几项为(从第0项开始):1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742900, 2674440, 9694845, 35357670, 129644790, 477638700, 1767263190, 6564120420, 24466267020, 91482563640, 343059613650, 1289904147324, 4861946401452, ...
卡特兰数满足以下递推关系 [2]:

相关推荐

  1. python.完数数列

    2024-04-25 07:34:06       12 阅读
  2. 科普:敏捷估算为什么数列

    2024-04-25 07:34:06       28 阅读
  3. js实现数列

    2024-04-25 07:34:06       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-25 07:34:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-25 07:34:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-25 07:34:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-25 07:34:06       20 阅读

热门阅读

  1. 哈希封装unordered系列关联式容器

    2024-04-25 07:34:06       16 阅读
  2. Git 流程和命令

    2024-04-25 07:34:06       45 阅读
  3. 【算法模版】数据结构模版

    2024-04-25 07:34:06       29 阅读
  4. radware负载均衡简介及应用场景

    2024-04-25 07:34:06       17 阅读
  5. MIL-STD-1553B和FC-AE-1553的主要区别

    2024-04-25 07:34:06       22 阅读
  6. 十大经典排序算法之选择排序。

    2024-04-25 07:34:06       11 阅读
  7. springboot 集成 activemq

    2024-04-25 07:34:06       15 阅读
  8. Centos 7.9 一键安装 Oracle 12CR2(240116)单机 PDB

    2024-04-25 07:34:06       14 阅读
  9. 415. 字符串相加

    2024-04-25 07:34:06       14 阅读
  10. [C++]多态是如何调用不同的函数对象的?

    2024-04-25 07:34:06       16 阅读
  11. docker安装efk

    2024-04-25 07:34:06       15 阅读