VB的阶乘和伽马函数
生活随笔
收集整理的這篇文章主要介紹了
VB的阶乘和伽马函数
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
嗨,我看到Killer發(fā)布了一個簡單的階乘函數(shù),該函數(shù)可以計(jì)算多達(dá)13個!,那么,您可以通過更改變量類型將其用于更大的數(shù)字。
為什么是這樣?
您可以對整數(shù)使用階乘(應(yīng)該是輸入),輸出可以是字符串或雙精度數(shù),無論如何您都將擁有階乘。 唯一的限制是在輸入中。
是的,我的意思是此功能適用于最大170的值! 或類似的東西:
Public?Function?Factorial(ByVal?bNum?As?Integer)?As?DoubleDim?I?As?DoubleIf?bNum?<=?0?Then?Exit?FunctionFactorial?=?1For?I?=?1?To?bNumFactorial?=?Factorial?*?INext End?FunctionVB還可用于制作一些更復(fù)雜的功能,例如Gamma。什么是伽瑪?
Gamma函數(shù)是階乘函數(shù)的泛化(這意味著您可以在其中使用任何正數(shù))。 如果將Gamma用作整數(shù),它將為您提供上一個整數(shù)的階乘。 即:
G(5)= 4! = 24
好處是,即使您不能擁有4.25! ,您總可以擁有
G(5.25)= 35.2088612458766
涼!!!
要獲得它,可以使用許多數(shù)值方法。 在這里,我使用了Euler-Mascheroni的一個老朋友。
Public?Function?Gamma(ByVal?Dou1?As?Double)?As?DoubleDim?I?As?IntegerDim?Dou2?As?DoubleDim?Dou3?As?Double?If?Fix(Dou1)?=?Dou1?ThenIf?Dou1?=?0?Or?Dou1?=?1?ThenGamma?=?1Exit?FunctionElseDou2?=?1For?I?=?1?To?Dou1?-?1Dou2?=?Dou2?*?INextGamma?=?Dou2Exit?FunctionEnd?IfElseIf?Dou1?>?3?ThenDou2?=?1For?I?=?1?To?(Fix(Dou1)?-?1)Dou2?=?Dou2?*?(Dou1?-?1)Dou1?=?Dou1?-?1NextDou3?=?Exp(-0.57721566?*?Dou1)?/?Dou1For?I?=?1?To?9999Dou3?=?Dou3?*?((1?+?(Dou1?/?I))?^?(-1))?*?Exp(Dou1?/?I)NextDou3?=?Dou2?*?Dou3Gamma?=?Dou3ElseDou3?=?Exp(-0.577215664901533?*?Dou1)?/?Dou1For?I?=?1?To?9999Dou3?=?Dou3?*?((1?+?(Dou1?/?I))?^?(-1))?*?Exp(Dou1?/?I)NextGamma?=?Dou3End?If End?Function我希望這在下次處理某人的作業(yè)時可能會有用。卡德
From: https://bytes.com/topic/visual-basic/insights/662194-factorial-gamma-functions-vb
總結(jié)
以上是生活随笔為你收集整理的VB的阶乘和伽马函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 散点图线性拟合_机器学习之
- 下一篇: cmd 找到8080对应进程_多进程概括