C#,贝尔数(Bell Number)的计算方法与源程序

1 埃里克·坦普尔·贝尔

贝尔数是组合数学中的一组整数数列,以埃里克·坦普尔·贝尔(Eric Temple Bell)命名,

埃里克·坦普尔·贝尔(生于1883年2月7日,苏格兰阿伯丁郡阿伯丁,于1960年12月21日在美国加利福尼亚州沃特森维尔去世),苏格兰裔美国数学家、教育家和作家,对分析数论做出了重大贡献。

贝尔在19岁时移民到美国,并立即进入斯坦福大学就读,两年后他在那里获得了学士学位。经过1908年的努力,他获得了华盛顿大学的硕士学位。同样,在又一年的预科之后,他于1912年从哥伦比亚大学获得了数学博士学位。在这几年之间,贝尔结婚了,尝试做骡子剥皮工、牧场工人、测量员、教师和其他行业的工作。贝尔在获得博士学位后立即接受了华盛顿大学教学数学的职位,他一直担任该校的数学教授,直到1926岁才被任命为加州理工大学数学教授。从1931年到1933年,他担任美国数学协会主席。

贝尔发表了大约250篇学术文章。因其作品《算术释义》(1921年),他于1924年获得Bôcher奖。他的两本书《代数算术》(1927年)和《数学的发展》(1940年)成为该领域的标准,后者用清晰、简洁的语言概述了贝尔认为最重要的数学趋势。

贝尔最为人所知的是他的畅销书,如《数学人》(1937)和《数学女王与科学仆人》(1951)。他还写了费马最后一个定理,最后一个问题(1961年)的历史。这些作品,尤其是数学方面的作品,尽管相当离奇,也不总是历史上准确的,但仍然吸引着广泛的读者。贝尔以约翰·泰恩的笔名写了许多科幻小说,包括《时间流》(1946年)。

2 计算方法与源程序

Bell数的定义:第n个Bell数表示集合{1,2,3,...,n}的划分方案数,即:B[0] = 1;

每一个Bell数都是第二类Stirling数的和,即:

第二类Stirling数的意义是:S(n,k)表示将n个物体划分成k个非空的不可辨别的(可以理解为盒子没有编号)集合的方法

数。很明显,每一个Bell是对应的第二类Stirling数之和。

3 源代码

3.1 文本格式

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;

namespace Legalsoft.Truffer.Algorithm
{
    public static partial class Number_Sequence
    {
        /// <summary>
        /// 贝尔数(Bell Number)的计算方法
        /// </summary>
        /// <param name="n"></param>
        /// <returns></returns>
        public static long Bell_Number(int n)
        {
            long[,] bell = new long[n + 1, n + 1];
            bell[0, 0] = 1;
            for (int i = 1; i <= n; i++)
            {
                bell[i, 0] = bell[i - 1, i - 1];
                for (int j = 1; j <= i; j++)
                {
                    bell[i, j] = bell[i - 1, j - 1] + bell[i, j - 1];
                }
            }
            return bell[n, 0];
        }
    }
}

3.2 代码格式

using System;
using System.Text;
using System.Collections;
using System.Collections.Generic;namespace Legalsoft.Truffer.Algorithm
{public static partial class Number_Sequence{/// <summary>/// 贝尔数(Bell Number)的计算方法/// </summary>/// <param name="n"></param>/// <returns></returns>public static long Bell_Number(int n){long[,] bell = new long[n + 1, n + 1];bell[0, 0] = 1;for (int i = 1; i <= n; i++){bell[i, 0] = bell[i - 1, i - 1];for (int j = 1; j <= i; j++){bell[i, j] = bell[i - 1, j - 1] + bell[i, j - 1];}}return bell[n, 0];}}
}

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

POWER BY TRUFFER.CN 

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

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

相关文章

RK3568平台开发系列讲解(Linux系统篇)device 资源的获取

🚀返回专栏总目录 文章目录 一、platform_device 结构体二、platform_get_resource() 获取沉淀、分享、成长,让自己和他人都能有所收获!😄 一、platform_device 结构体 struct platform_driver 结构体继承了 struct device_driver 结构体, 因此可以直接访问 struct devi…

SeaTunnel集群安装

环境准备 服务器节点 节点名称 IP bigdata1 192.168.1.250 bigdata4 192.168.1.251 bigdata5 192.168.1.252 Java环境&#xff08;三个节点都需要&#xff09; java1.8 注意&#xff1a;在安装SeaTunnel集群时&#xff0c;最好是现在一个节点上将所有配置都修改完&a…

jenkins pipeline配置maven可选参数

1、在Manage Jenkins下的Global Tool Configuration下对应的maven项添加我们要用得到的不同版本的maven安装项 2、pipeline文件内容具体如下 我们maven是单一的&#xff0c;所以我们都是配置单选参数 pipeline {agent anyparameters {gitParameter(name: BRANCH_TAG, type: …

(五)MySQL的备份及恢复

1、MySQL日志管理 在数据库保存数据时&#xff0c;有时候不可避免会出现数据丢失或者被破坏&#xff0c;这样情况下&#xff0c;我们必须保证数据的安全性和完整性&#xff0c;就需要使用日志来查看或者恢复数据了 数据库中数据丢失或被破坏可能原因&#xff1a; 误删除数据…

jQuery 下载 使用

1. jQuery 网址&#xff1a;jQuery CDN 2. 下载, 右击在新的tab打开 3.ctrls另存为jquery-1.12.4.min.js&#xff0c;并放到自己项目的js目录下 4.请参考目录 5.编写第一个使用jQuery的代码 <script src"js/jquery-1.12.4.min.js"></script> <!DOCT…

数学知识第五期 扩展欧几里得算法

前言 扩展欧几里得算法也是重要的数论&#xff0c;数论固然就是数学知识的理论&#xff0c;希望大家能够熟练掌握&#xff01;&#xff01;&#xff01; 一、扩展欧几里得算法的基本内容 扩展欧几里得算法&#xff08;英语&#xff1a;Extended Euclidean algorithm&#xf…

非阿里云注册域名如何在云解析DNS设置解析?

概述 非阿里云注册域名使用云解析DNS&#xff0c;按照如下步骤&#xff1a; 添加域名。 添加解析记录。 修改DNS服务器。 DNS服务器变更全球同步&#xff0c;等待48小时。 添加解析记录 登录云解析DNS产品控制台。 在 域名解析 页面中&#xff0c;单击 添加域名 。 在 …

为什么要用云手机养tiktok账号

在拓展海外电商市场的过程中&#xff0c;许多用户选择采用tiktok短视频平台引流的策略&#xff0c;以提升在电商平台上的流量&#xff0c;吸引更多消费者。而要进行tiktok引流&#xff0c;养号是必不可少的一个环节。tiktok云手机成为实现国内跨境养号的一种有效方式&#xff0…

C语言——O / 动态内存管理

一、为什么要有动态内存分配 我们已经掌握的内存开辟⽅式有&#xff1a; int val 20;//在栈空间上开辟四个字节 char arr[10] {0};//在栈空间上开辟10个字节的连续空间 但是上述的开辟空间的⽅式有两个特点&#xff1a; • 空间开辟⼤⼩是固定的。 • 数组在申明的时候&am…

Linux安装Jdk8

本文以centos7为例&#xff0c;一步一步进行jdk1.8的安装。 1. 下载安装 笑小枫网站下载&#xff1a;https://xiaoxiaofeng.com/resource/16 官网下载链接&#xff1a; https://www.oracle.com/cn/java/technologies/downloads/#java8 上传jdk的压缩包到服务器的/usr/local目…

spark window源码探索

核心类&#xff1a; 1. WindowExec 物理执行逻辑入口&#xff0c;主要doExecute()和父类WindowExecBase 2. WindowFunctionFrame 窗框执行抽象&#xff0c;其子类对应sql语句的不同窗框 其中又抽象出BoundOrdering类, 用于判断一行是否在界限内(Bound), 分为RowBoundOrdering…

网络防御保护——课程笔记

一.防火墙 防火墙的主要职责&#xff1a;控制和防护 --- 安全策略 --- 防火墙可以根据安全策略来抓取流量之后做出对应的动作。 防火墙的分类 防火墙的发展进程 防火墙的控制 带内管理 --- 通过网络环境对设备进行控制 --- telnet&#xff0c;ssh&#xff0c;web --- 登录设备…