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

C#,欧拉数(Eulerian Number)的算法与源代码

1 欧拉数

欧拉数特指 Eulerian Number,不同于 Euler numbers,Euler's number 哦。

组合数学中,欧拉数(Eulerian Number)是从1到n中正好满足m个元素大于前一个元素(具有m个“上升”的排列)条件的排列个数。定义为:
 

计算公式:

 相关推到:

计算结果:

2 文本格式

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static partial class Number_Sequence
    {
        /// <summary>
        /// 欧拉数(递归)算法
        /// </summary>
        /// <param name="n"></param>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int Eulerian_Number(int n, int m)
        {
            if (m >= n || n == 0)
            {
                return 0;
            }
            if (m == 0)
            {
                return 1;
            }
            int a = (n - m) * Eulerian_Number(n - 1, m - 1);
            int b = (m + 1) * Eulerian_Number(n - 1, m);
            return (a + b);
        }

        /// <summary>
        /// 欧拉数(非递归)算法
        /// </summary>
        /// <param name="n"></param>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int Eulerian_Number_Second(int n, int m)
        {
            int[,] dp = new int[n + 1, m + 1];
            for (int i = 1; i <= n; i++)
            {
                for (int j = 0; j <= m; j++)
                {
                    if (i > j)
                    {
                        if (j == 0)
                        {
                            dp[i, j] = 1;
                        }
                        else
                        {
                            dp[i, j] = ((i - j) * dp[i - 1, j - 1]) + ((j + 1) * dp[i - 1, j]);
                        }
                    }
                }
            }
            return dp[n, m];
        }
    }
}

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

POWER  BY  TRUFFER.CN

3 代码格式

using System;namespace Legalsoft.Truffer.Algorithm
{public static partial class Number_Sequence{/// <summary>/// 欧拉数(递归)算法/// </summary>/// <param name="n"></param>/// <param name="m"></param>/// <returns></returns>public static int Eulerian_Number(int n, int m){if (m >= n || n == 0){return 0;}if (m == 0){return 1;}int a = (n - m) * Eulerian_Number(n - 1, m - 1);int b = (m + 1) * Eulerian_Number(n - 1, m);return (a + b);}/// <summary>/// 欧拉数(非递归)算法/// </summary>/// <param name="n"></param>/// <param name="m"></param>/// <returns></returns>public static int Eulerian_Number_Second(int n, int m){int[,] dp = new int[n + 1, m + 1];for (int i = 1; i <= n; i++){for (int j = 0; j <= m; j++){if (i > j){if (j == 0){dp[i, j] = 1;}else{dp[i, j] = ((i - j) * dp[i - 1, j - 1]) + ((j + 1) * dp[i - 1, j]);}}}}return dp[n, m];}}
}

相关文章:

  • 系统架构设计师-22年-下午题目
  • JVM篇----第十七篇
  • iOS17使用safari调试wkwebview
  • 中国的茶文化:历史、传统与生活
  • js实现动漫拼图2.0版
  • C# Onnx yolov8 水表读数检测
  • java servlet勤工助学家教管系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
  • pytorch-metric-learning度量学习工具官方文档翻译
  • 数据库(SQL)
  • Qt知识点总结
  • JAVA线程执行中断方式和ElasticSearch未捕获异常的处理方式
  • Meta开源Code Llama 70B,缩小与GPT-4之间的技术鸿沟
  • leetcode-存在重复元素 II
  • 批量将csv文件转成excel
  • 2023年春秋杯网络安全联赛冬季赛_做题记录
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 2017前端实习生面试总结
  • download使用浅析
  • flask接收请求并推入栈
  • Java程序员幽默爆笑锦集
  • PHP那些事儿
  • React-redux的原理以及使用
  • Spring Cloud中负载均衡器概览
  • uva 10370 Above Average
  • vue 配置sass、scss全局变量
  • vue自定义指令实现v-tap插件
  • 计算机常识 - 收藏集 - 掘金
  • 驱动程序原理
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  •  一套莫尔斯电报听写、翻译系统
  • 原生 js 实现移动端 Touch 滑动反弹
  • 转载:[译] 内容加速黑科技趣谈
  • 说说我为什么看好Spring Cloud Alibaba
  • # C++之functional库用法整理
  • %check_box% in rails :coditions={:has_many , :through}
  • (办公)springboot配置aop处理请求.
  • (二)c52学习之旅-简单了解单片机
  • (二)Linux——Linux常用指令
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (四)库存超卖案例实战——优化redis分布式锁
  • .NET Core引入性能分析引导优化
  • .vollhavhelp-V-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?
  • @angular/cli项目构建--http(2)
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • [ 环境搭建篇 ] 安装 java 环境并配置环境变量(附 JDK1.8 安装包)
  • []AT 指令 收发短信和GPRS上网 SIM508/548
  • [100天算法】-目标和(day 79)
  • [⑧ADRV902x]: Digital Pre-Distortion (DPD)学习笔记
  • [BeginCTF]真龙之力
  • [codevs 1515]跳 【解题报告】
  • [DevOps云实践] 彻底删除AWS云资源
  • [hdu1561] The more, The Better 【树形DP】
  • [hive]中的字段的数据类型有哪些