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

C#,哥伦布数(Golomb Number)的算法与源代码

1 哥伦布数(Golomb Number)

哥伦布数(Golomb Number)是一个自然数的非减量序列,使得n在序列中正好出现G(n)次。前几个15的G(n)值为:1 2 2 3 3 4 4 4 5 5 5 6 6 6 6

计算结果:

2 源程序,文本格式

using System;

namespace Legalsoft.Truffer.Algorithm
{
    /// <summary>
    /// 哥伦布数(Golomb Number)
    /// 哥伦布数(Golomb Number)是一个自然数的非减量序列,使得n在序列中正好出现G(n)次。
    /// 前几个15的G(n)值为:1 2 2 3 3 4 4 4 5 5 5 6 6 6 6
    /// </summary>
    public static partial class Number_Sequence
    {
        /// <summary>
        /// 哥伦布数(Golomb Number)的原始(递归)算法
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static int Golomb_Number(int n)
        {
            if (n == 1)
            {
                return 1;
            }
            return 1 + Golomb_Number(n - Golomb_Number(Golomb_Number(n - 1)));
        }

        /// <summary>
        /// 哥伦布数(Golomb Number)的改进(非递归)算法
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static int Golomb_Number_Second(int n)
        {
            int[] dp = new int[n + 1];
            dp[1] = 1;
            for (int i = 2; i <= n; i++)
            {
                dp[i] = 1 + dp[i - dp[dp[i - 1]]];
            }
            return dp[n];
        }
    }
}

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

POWER BY TRUFFER.CN

3 代码格式

using System;namespace Legalsoft.Truffer.Algorithm
{/// <summary>/// 哥伦布数(Golomb Number)/// 哥伦布数(Golomb Number)是一个自然数的非减量序列,使得n在序列中正好出现G(n)次。/// 前几个15的G(n)值为:1 2 2 3 3 4 4 4 5 5 5 6 6 6 6/// </summary>public static partial class Number_Sequence{/// <summary>/// 哥伦布数(Golomb Number)的原始(递归)算法/// </summary>/// <param name="n"></param>/// <returns></returns>public static int Golomb_Number(int n){if (n == 1){return 1;}return 1 + Golomb_Number(n - Golomb_Number(Golomb_Number(n - 1)));}/// <summary>/// 哥伦布数(Golomb Number)的改进(非递归)算法/// </summary>/// <param name="n"></param>/// <returns></returns>public static int Golomb_Number_Second(int n){int[] dp = new int[n + 1];dp[1] = 1;for (int i = 2; i <= n; i++){dp[i] = 1 + dp[i - dp[dp[i - 1]]];}return dp[n];}}
}

http://www.lryc.cn/news/292915.html

相关文章:

  • JVM学习
  • Visual Studio 20XX中utf-8中文在控制台显示乱码
  • 拥抱个人成长与社会进步:自我认知与开放心态的相互影响
  • 【PostgreSQL内核学习(二十五) —— (DBMS存储空间管理)】
  • 2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天
  • SpringBoot使用Kafka详解含完整代码
  • 解决:java -jar 在cmd中运行 程序卡顿,卡死的 问题。BIO和NIO案例保存
  • LeetCode第824题 - 山羊拉丁文
  • [Python] 什么是逻辑回归模型?使用scikit-learn中的LogisticRegression来解决乳腺癌数据集上的二分类问题
  • 那些不输于乙游男主人设的国漫男主
  • Apache Doris 整合 FLINK CDC + Iceberg 构建实时湖仓一体的联邦查询
  • 关于华为应用市场上架,申请权限未告知目的被驳回问题的简单处理方式
  • 【ElasticSearch】概述
  • 十进制转十六进制 C/C++蓝桥杯基础试题BASIC-10
  • 【LVGL环境搭建】
  • 【c语言】简单贪吃蛇的实现
  • 2023年09月CCF-GESP编程能力等级认证Python编程六级真题解析
  • Flink中StateBackend(工作状态)与Checkpoint(状态快照)的关系
  • 【C语言刷题系列】喝汽水问题
  • [C++] C++ 11的functional模块介绍和使用案例
  • kubernetes基本概念和操作
  • 20240128周报-网络太杂,Tomcat太难
  • DES加密原理
  • react 之 useCallback
  • OfficeWeb365 Readfile 任意文件读取漏洞复现
  • UnityShader(十三)Unity内置的函数
  • 【开源】基于Qt5的ROS1/ROS2人机交互软件(支持地图编辑/多点导航)
  • Spring和SpringBoot的区别是什么
  • 布局技巧及CSS初始化
  • excel怎么设置密码?轻松保护您的工作表