C#,斯特林数(Stirling Number)的算法与源代码

1 斯特林数

在组合数学,斯特林数可指两类数,第一类斯特林数和第二类斯特林数,都是由18世纪数学家James Stirling提出的。它们自18世纪以来一直吸引许多数学家的兴趣,如欧拉、柯西、西尔沃斯特和凯莱等。后来哥本哈根(Copenhagen)大学的尼尔森(Niels Nielsen,1865-1931)提出了"Stirlingschen Zahlen erster Art" [第一类斯特林数]和"Stirlingschen Zahlen zweiter Art" [第二类斯特林数],首次把这两类数冠以「斯特林数」之名 。

更多知识课阅读百度百科:

百度百科《斯特林数》icon-default.png?t=N7T8https://baike.baidu.com/item/%E6%96%AF%E7%89%B9%E6%9E%97%E6%95%B0/4938529?fr=aladdin

2 计算结果

 (一类斯特林数)源程序:

3 源代码

using System;

namespace Legalsoft.Truffer.Algorithm
{
    public static partial class Number_Sequence
    {
        private static long Factorial(int n)
        {
            if (n == 0)
            {
                return 1;
            }
            if (n < 0)
            {
                return -1;
            }
            long res = 1;
            for (int i = 2; i < (n + 1); i++)
            {
                res *= i;
            }
            return res;
        }

        private static int Combination(int n, int r)
        {
            if (r > n)
            {
                return -1;
            }
            if (n == r)
            {
                return 1;
            }
            if (r == 0)
            {
                return 1;
            }
            return Combination(n - 1, r - 1) + Combination(n - 1, r);
        }

        public static long Stirling_Number(int r, int n)
        {
            if (n > r)
            {
                return -1;
            }
            if (n == 0)
            {
                return 0;
            }
            if (r == n)
            {
                return 1;
            }
            if (n == 1)
            {
                return Factorial(r - 1);
            }
            if (r - n == 1)
            {
                return Combination(r, 2);
            }
            else
            {
                return Stirling_Number(r - 1, n - 1) + (r - 1) * Stirling_Number(r - 1, n);
            }
        }
    }
}
 

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

POWER BY TRUFFER.CN

4 代码格式

using System;namespace Legalsoft.Truffer.Algorithm
{public static partial class Number_Sequence{private static long Factorial(int n){if (n == 0){return 1;}if (n < 0){return -1;}long res = 1;for (int i = 2; i < (n + 1); i++){res *= i;}return res;}private static int Combination(int n, int r){if (r > n){return -1;}if (n == r){return 1;}if (r == 0){return 1;}return Combination(n - 1, r - 1) + Combination(n - 1, r);}public static long Stirling_Number(int r, int n){if (n > r){return -1;}if (n == 0){return 0;}if (r == n){return 1;}if (n == 1){return Factorial(r - 1);}if (r - n == 1){return Combination(r, 2);}else{return Stirling_Number(r - 1, n - 1) + (r - 1) * Stirling_Number(r - 1, n);}}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/661490.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker容器引擎私有仓库的搭建和管理

目录 一、私有仓库搭建和管理 &#xff08;一&#xff09;搭建本地私有仓库 1.拉取registry镜像 2.修改docker配置文件并重启 3.运行registry容器 4.给镜像打标签 5.上传到私有仓库 6.查看私有仓库的所有镜像 7.从私有仓库拉取镜像 &#xff08;1&#xff09;删除cen…

开源机器人ros 基本概念详细介绍

ROS&#xff08;Robot Operating System&#xff09;的基本概念构成了整个系统的框架和运作方式。以下是一些核心的基本概念&#xff1a; 1. 节点&#xff08;Nodes&#xff09;&#xff1a; - 节点是ROS图中的基本执行单元&#xff0c;它是运行单个任务的一个进程。节点可以…

网络协议 UDP协议

网络协议 UDP协议 在之前的文章中有对UDP协议套接字的使用进行讲解&#xff0c;本文主要对UDP协议进行一些理论补充。 文章目录 网络协议 UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP&#xff0c;即User Datagram P…

gitlab操作手册

git操作篇 1. 项目克隆 git clone gitgitlab.test.cn:pro/project1.git2. 项目的提交 注&#xff1a;如果要查看文件的状态可以用git status命令&#xff1a; 如上图所示&#xff0c;文件已经修改了。 3. 项目的推送 git push origin feature/test01注&#xff1a;如果要查…

Qt应用软件【协议篇】modbus-tcp示例

文章目录 APIModbus TCP 主机(客户端)示例Modbus TCP 从机(服务器)示例API QModbusDevice: 所有 Modbus 设备的基类,提供了设备的基本功能,例如连接、断开连接、状态和错误处理。QModbusClient: 用于实现 Modbus 客户端功能的基类。它派生自 QModbusDevice。QModbusServ…

nodejs+vue+ElementUi宠物领养救助网站0w6wc

宠物领养救助平台采用B/S架构&#xff0c;数据库是MySQL。网站的搭建与开发采用了先进的nodejs进行编写&#xff0c;使用了vue框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对用户、宠物类别、宠物…

深信服技术认证“SCSA-S”划重点:安全事件管理处置

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 *点击图片放大展示 深信…

MySQL-运维-主从复制

一、概述 二、原理 三、搭建 1、服务器准备 2、主库配置 &#xff08;1&#xff09;、修改配置文件/etc/my.cnf &#xff08;2&#xff09;、重启MySQL服务器 &#xff08;3&#xff09;、登录mysql&#xff0c;创建远程链接的账号&#xff0c;并授予主从复制权限 &#xff0…

shell脚本-免交互

一、Here Document免交互&#xff1a; 1.交互概述&#xff1a; 交互&#xff1a;当计算机播放某多媒体程序的时候&#xff0c;编程人员可以发出指令控制该程序的运行&#xff0c;而不是程序单方面执行下去&#xff0c;程序在接受到编程人员相应的指令后而相应地做出反应。 对于…

铁轨语义分割(Unet结合resnet系列)

数据介绍 一类是图片&#xff0c;一类是图像标签。 引入库&#xff0c;处理数据 import torch.nn as nn import torch import torch.nn.functional as F import os from PIL import Image import torch from torch.utils.data import Dataset import torchvision.transfor…

Unity SRP 管线【第七讲:URP LOD实现以及Reflections反射探针】

目录 一、URP LOD 组件1、LOD Group的使用2、LOD切换原理Cross Fade(淡入淡出)模式Animated Cross-Fading如果未设置Clip&#xff0c;并且Fade Transition Width不为0LOD物体烘培 SpeedTree 模式 二、反射探针1. 获取反射探针数据2. 环境光照明 IBL3. 反射探针&#xff08;Refl…

iOS自动打包如何用Python实现

在Python中实现iOS自动打包的过程需要使用第三方库和工具&#xff0c;如pyobjc和appdirs。以下是一个基本的Python脚本示例&#xff0c;用于自动打包iOS应用程序&#xff1a; python复制代码 import os import appdirs import subprocess import pyobjc # 获取应用程序目…

部署前后端分离项目详细教程

部署前后端分离项目详细教程 1、准备工作 首先你需要一台服务器&#xff0c;然后在服务器上安装好你所需要的环境&#xff0c;我这里用的宝塔界面来安装环境。 如果有人不知道怎么安装宝塔界面&#xff0c;可参考这篇文章&#xff0c;如果不知道怎么买服务器&#xff0c;可以参…

Python学习笔记——Collatz序列

Collatz序列&#xff0c;也称为3n1问题&#xff0c;遵循以下3个规则获得序列中的下一个数: 1、如果n是偶数&#xff0c;则下一个数 n n / 22、如果n是奇数&#xff0c;则下一个数 n n * 3 13、如果n为1&#xff0c;则停止计算&#xff1b;否则重复计算获取下一个数 从任意一…

golang网络编程day4

golang网络编程day4 get和post的区别resful编程golang请求头golangheader内容类型和字符编码http请求头缓存和过期应用golang 请求头跨域请求应用http请求头用户代理应用golang响应头 get和post的区别 在前面的学习我只在应用场景上做了一个区别的举例,这里是进一步的学习有哪…

菜鸡后端的前端学习记录-2

前言 记录一下看视频学习前端的的一些笔记&#xff0c;以前对Html、Js、CSS有一定的基础&#xff08;都认得&#xff0c;没用过&#xff09;&#xff0c;现在不想从头再来了&#xff0c;学学Vue框架&#xff0c;不定时更新&#xff0c;指不定什么时候就鸽了。。。。 忘了记一下…

前端工程化基础(四):Git代码版本控制工具详解

Git版本控制工具详解 认识版本控制&#xff08;版本控制&#xff09; 是维护 工程蓝图的标准做法&#xff0c;能追踪工程蓝图从诞生一直到定案的过程版本控制也是 一种软件工程技巧&#xff0c;借此能在软件开发的过程中&#xff0c;确保不同的人所编辑的同一程序都能得到同步…

MySQL的存储格式,MySQL的触发器

1&#xff0c;MySQL的存储格式 在MySQL中&#xff0c;创建存储函数使用create function关键字&#xff0c;其基本形式如下: create function func_name ( [param_name type[ ,...]]) returns type [characteristic ... ] begin routine_body end; 参数说明: (1) func_…

tcp/ip模型中,帧是第几层的数据单元?

在网络通信的世界中&#xff0c;TCP/IP模型以其高效和可靠性而著称。这个模型是现代互联网通信的基石&#xff0c;它定义了数据在网络中如何被传输和接收。其中&#xff0c;一个核心的概念是数据单元的层级&#xff0c;特别是“帧”在这个模型中的位置。今天&#xff0c;我们就…

密码输入检测

文章目录 题目描述输入描述输出描述示例一说明代码解释 题目描述 给定用户密码输入流 input&#xff0c;输入流中字符’<表示退格&#xff0c;可以清除前一个输入的字符&#xff0c;请你编写程序&#xff0c;输出最终得到的密码字符&#xff0c;并判断密码是否满足如下的密…