C#,德兰诺依数(Dealnnoy Number)的算法与源代码
2023-09-11 14:15:48 时间
Dealnnoy Number
德兰诺依数,德兰诺伊数
德兰诺依数是以法国军官、业余数学家亨利·德兰诺依(Henry Dealnnoy)的名字命名。
Henry Dealnnoy
在组合数学中,德兰诺依数描述了从(0,0)到(m,n)的格路问题中,
只允许按照(0,1)、(1,0)或者(1,1)的方式来走,一共有多少不同的方案数。
Dealnnoy Number的计算公式:
计算结果:
源程序:
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
相关文章
- 【原创】机器学习之PageRank算法应用与C#实现(2)球队排名应用与C#代码
- C#数据结构与算法揭秘18
- C#数据结构与算法揭秘11
- C#数据结构与算法揭秘九
- json字符串生成C#实体类的工具
- C# WinForm控件、自定义控件整理(大全)
- 揽货最短路径解决方案算法 - V2(增加了时间维度-客户允许的服务时间段,C#/JAVA同步实现,带python作图)
- [AaronYang原创] 大话ASP.NET MVC3+ (C#与DOM与JS页面上的很炫的技巧)
- C#生成带Logo二维码
- C#与C++之间类型的对应{转}
- 重新整理数据结构与算法(c#)——算法套路贪心算法[二十八]
- .NET、C#和ASP.NET三者之间的区别
- C#与Java同步加密解密DES算法
- 重新整理数据结构与算法(c#)——算法套佛洛伊德算法[三十二]
- 重新整理数据结构与算法(c#)——算法套路迪杰斯特拉算法[三十一]
- 重新整理数据结构与算法(c#)—— 二叉树排序树补删除节点[二十二]
- C# DataTable RowFilter 过滤
- C# 归并排序
- C# 类定义中可以使用的访问修饰符的组合
- C# 多态性
- C#的换行符和回车符在程序语句中如何表示?
- C# 将字符串(符合xml格式)转换为XmlDocument
- C# 循环的中断——Break、continue、return
- 【原创】机器学习之PageRank算法应用与C#实现(1)算法介绍
- Atitit 电子商务订单号码算法(java c# php js 微信
- C#开发的OpenRA的mod.yaml文件
- C# 查询所有设备的插拔事件
- C# 基础小知识之yield 关键字
- C# 中使用using的三种方法
- 使用c#语言进行xml文件的读取和实例化的常用方式
- C#常用的算法