当前位置: 首页 > article >正文

C#,雅各布斯塔尔—卢卡斯(Jacobsthal Lucas Number)的算法与源代码

1 雅各布斯塔尔序列

雅各布斯塔尔序列是一个与斐波那契序列类似的加法序列,由递归关系Jn=Jn-1+2Jn-2定义,初始项J0=0,J1=1。序列中的一个数字称为雅可布沙尔数。它们是卢卡斯序列Un(P,Q)的一种特殊类型,其中P=1,Q=-2。

第一个雅各布斯塔尔数字是:

0, 1, 1, 3, 5, 11, 21, 43, 85, 171, 341, 683, 1365, 2731, 5461, 10923, 21845, 43691, ……

Jacobsthal数由递推关系定义:


 

2 雅各布斯塔尔-卢卡斯数

雅各布斯塔尔-卢卡斯数数表示互补卢卡斯序列Vn(1,-2)。它们满足与雅各布斯塔尔数相同的递归关系,但具有不同的初始值:

Jacobsthal Number计算结果:

Jacobsthal Lucas Number 计算结果:

3 文本格式源程序

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static partial class Number_Sequence
    {
        public static int Jacobsthal_Number(int n)
        {
            if (n == 0)
            {
                return 0;
            }
            // base case
            if (n == 1)
            {
                return 1;
            }
            return Jacobsthal_Number(n - 1) + 2 * Jacobsthal_Number(n - 2);
        }

        public static int Jacobsthal_Lucas_Number(int n)
        {
            if (n == 0)
            {
                return 2;
            }
            if (n == 1)
            {
                return 1;
            }
            int a = Jacobsthal_Lucas_Number(n - 1);
            int b = 2 * Jacobsthal_Lucas_Number(n - 2);
            return (a + b);
        }

        public static int Jacobsthal_Number_Second(int n)
        {
            int[] dp = new int[n + 1];
            dp[0] = 0;
            dp[1] = 1;
            for (int i = 2; i <= n; i++)
            {
                dp[i] = dp[i - 1] + (2 * dp[i - 2]);
            }
            return dp[n];
        }

        public static int Jacobsthal_Lucas_Number_Second(int n)
        {
            int[] dp = new int[n + 1];
            dp[0] = 2;
            dp[1] = 1;
            for (int i = 2; i <= n; i++)
            {
                dp[i] = dp[i - 1] + (2 * dp[i - 2]);
            }
            return dp[n];
        }
    }
}
 

—————————————————————— 

POWER BY TRUFFER.CN 

4 代码格式源代码

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static partial class Number_Sequence
    {
        public static int Jacobsthal_Number(int n)
        {
            if (n == 0)
            {
                return 0;
            }
            // base case
            if (n == 1)
            {
                return 1;
            }
            return Jacobsthal_Number(n - 1) + 2 * Jacobsthal_Number(n - 2);
        }

        public static int Jacobsthal_Lucas_Number(int n)
        {
            if (n == 0)
            {
                return 2;
            }
            if (n == 1)
            {
                return 1;
            }
            int a = Jacobsthal_Lucas_Number(n - 1);
            int b = 2 * Jacobsthal_Lucas_Number(n - 2);
            return (a + b);
        }

        public static int Jacobsthal_Number_Second(int n)
        {
            int[] dp = new int[n + 1];
            dp[0] = 0;
            dp[1] = 1;
            for (int i = 2; i <= n; i++)
            {
                dp[i] = dp[i - 1] + (2 * dp[i - 2]);
            }
            return dp[n];
        }

        public static int Jacobsthal_Lucas_Number_Second(int n)
        {
            int[] dp = new int[n + 1];
            dp[0] = 2;
            dp[1] = 1;
            for (int i = 2; i <= n; i++)
            {
                dp[i] = dp[i - 1] + (2 * dp[i - 2]);
            }
            return dp[n];
        }
    }
}


http://www.kler.cn/a/228283.html

相关文章:

  • 优选算法——哈希表
  • 嵌入式知识点总结 操作系统 专题提升(一)-进程和线程
  • Linux 系统错误处理简介
  • 当使用 npm 时,出现 `certificate has expired` 错误通常意味着请求的证书已过期。
  • doris:腾讯云 COS导入数据
  • 解锁C#编程新姿势:Z.ExtensionMethods入门秘籍
  • Pytest 与allure测试报告集成
  • leetcode 3.无重复字符的最长字串(滑动窗口) (C++)DAY2
  • 目标检测及相关算法介绍
  • 逆向基础-破解密码
  • spring boot打完jar包后使用命令行启动,提示xxx.jar 中没有主清单属性
  • Unity3D实现坦克大战
  • vue基本语法总结大全
  • 【算法与数据结构】583、72、LeetCode两个字符串的删除操作+编辑距离
  • 【图论】基环树
  • NuxtJs安装Sass后出现ERROR:Cannot find module ‘webpack/lib/RuleSet‘
  • 【从浅到深的算法技巧】排序应用,查找
  • 生物素 PEG4 甲基四嗪,Biotin-PEG4-methyltetrazine,用于标记、追踪和分离特定的分子或细胞
  • 【TCP/IP】用户访问一个购物网站时TCP/IP五层参考模型中每一层的功能
  • Python学习笔记(水桶谜题代码学习)——应用*符号解包列表所有元素传递给函数用法
  • LeetCode:2.两数相加
  • CentOS7集群环境搭建(3台)
  • 【git】本地项目推送到github、合并分支的使用
  • openssl3.2 - use openssl cmd create ca and p12
  • P8711 [蓝桥杯 2020 省 B1] 整除序列--2024冲刺蓝桥杯省一
  • Android消息通知Notification