C#,德兰诺依数(Dealnnoy Number)的算法与源代码

1 Dealnnoy Number 德兰诺依数,德兰诺伊数

德兰诺依数是以法国军官、业余数学家亨利·德兰诺依(Henry Dealnnoy)的名字命名。

Henry Dealnnoy

在组合数学中,德兰诺依数描述了从(0,0)到(m,n)的格路问题中,
只允许按照(0,1)、(1,0)或者(1,1)的方式来走,一共有多少不同的方案数。

Dealnnoy Number的计算公式:

 计算结果:

 源程序:

2 文本格式

using System;

namespace Legalsoft.Truffer.Algorithm
{
    /// <summary>
    /// Dealnnoy Number
    /// 德兰诺依数,德兰诺伊数
    /// </summary>
    public static partial class Number_Sequence
    {
        /// <summary>
        /// 德兰诺伊数(Dealnnoy Number)的原始(递归)算法
        /// n >= m
        /// </summary>
        /// <param name="n"></param>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int Dealnnoy_Number(int n, int m)
        {
            if (m == 0 || n == 0)
            {
                return 1;
            }
            return Dealnnoy_Number(m - 1, n - 1) +
                   Dealnnoy_Number(m - 1, n) +
                   Dealnnoy_Number(m, n - 1);
        }

        /// <summary>
        /// 德兰诺伊数(Dealnnoy Number)的改良(非递归)算法
        /// </summary>
        /// <param name="n"></param>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int Dealnnoy_Number_Second(int n, int m)
        {
            int[,] dp = new int[m + 1, n + 1];
            // 原文错误!
            for (int i = 0; i <= m; i++)
            {
                dp[i, 0] = 1;
            }
            for (int i = 0; i <= n; i++)
            {
                dp[0, i] = 1;
            }
            for (int i = 1; i <= m; i++)
            {
                for (int j = 1; j <= n; j++)
                {
                    dp[i, j] = dp[i - 1, j] + dp[i - 1, j - 1] + dp[i, j - 1];
                }
            }
            return dp[m, n];
        }
    }
}

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

POWER BY TRUFFER.CN

3 代码格式

using System;

namespace Legalsoft.Truffer.Algorithm
{
    /// <summary>
    /// Dealnnoy Number
    /// 德兰诺依数,德兰诺伊数
    /// </summary>
    public static partial class Number_Sequence
    {
        /// <summary>
        /// 德兰诺伊数(Dealnnoy Number)的原始(递归)算法
        /// n >= m
        /// </summary>
        /// <param name="n"></param>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int Dealnnoy_Number(int n, int m)
        {
            if (m == 0 || n == 0)
            {
                return 1;
            }
            return Dealnnoy_Number(m - 1, n - 1) +
                   Dealnnoy_Number(m - 1, n) +
                   Dealnnoy_Number(m, n - 1);
        }

        /// <summary>
        /// 德兰诺伊数(Dealnnoy Number)的改良(非递归)算法
        /// </summary>
        /// <param name="n"></param>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int Dealnnoy_Number_Second(int n, int m)
        {
            int[,] dp = new int[m + 1, n + 1];
            // 原文错误!
            for (int i = 0; i <= m; i++)
            {
                dp[i, 0] = 1;
            }
            for (int i = 0; i <= n; i++)
            {
                dp[0, i] = 1;
            }
            for (int i = 1; i <= m; i++)
            {
                for (int j = 1; j <= n; j++)
                {
                    dp[i, j] = dp[i - 1, j] + dp[i - 1, j - 1] + dp[i, j - 1];
                }
            }
            return dp[m, n];
        }
    }
}

 

最近更新

  1. TCP协议是安全的吗?

    2024-01-31 20:32:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-31 20:32:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-31 20:32:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-31 20:32:03       20 阅读

热门阅读

  1. PHP雪花算法

    2024-01-31 20:32:03       33 阅读
  2. MBA十日读--营销章节 笔记

    2024-01-31 20:32:03       25 阅读
  3. Aspose-words详细功能介绍

    2024-01-31 20:32:03       35 阅读
  4. 同花顺C# MACD的计算方式

    2024-01-31 20:32:03       27 阅读
  5. 电销机器人的未来发展趋势

    2024-01-31 20:32:03       36 阅读
  6. 前端vue工程环境

    2024-01-31 20:32:03       38 阅读
  7. C++类和对象:虚析构与纯虚析构

    2024-01-31 20:32:03       30 阅读
  8. HarmonyOS--组件转场动画

    2024-01-31 20:32:03       44 阅读
  9. MySQL-数据类型

    2024-01-31 20:32:03       29 阅读
  10. MySQL 数据库表的增删改查(基础版)

    2024-01-31 20:32:03       30 阅读