计算复杂的伽玛功能【难度:4级】:答案1:using System;using System.Numerics;public class Kata{ public static Complex Gamma(Complex z) { int g = 7; double[] p = {0.99999999999980993, 676....
摘要由CSDN通过智能技术生成
计算复杂的伽玛功能【难度:4级】:
答案1:
using System;using System.Numerics;publicclassKata{
publicstaticComplexGamma(Complex z){
int g =7;double[] p ={
0.99999999999980993,676.5203681218851,-1259.1392167224028,771.32342877765313,-176.61502916214059,12.507343278686905,-0.13857109526572012,9.9843695780195716e-6,1.5056327351493116e-7};Complex res =newComplex();if(z.Imaginary ==0&& z.Real <=0)if(z.Real ==0|| z.Real %1==0)thrownewArgumentException();if(z.Real <0.5){
res = Math.PI /(Complex.Sin(Math.PI * z)*Gamma(1- z));return res;}else{
z -=1;Complex x = p[0];for(var i =1; i < g +2; i++)
x += p[i]/(z + i);Complex t = z + g +0.5;
res = Complex.Sqrt(2* Math.PI)*(Complex.Pow(t, z +0.5))* Complex.Exp(-t)* x;return res;}}}
答案2:
using System;using System.Numerics;publicclassKata{
publicstaticComplexGamma(Complex z){
if(z.Imaginary ==0&& z.Real <=0&& Math.Ceiling(z.Real)== z.Real)thrownewArgumentException();double[] p ={
676.5203681218851,-1259.1392167224028,771.32342877765313,-176.61502916214059,12.507343278686905,-0.13857109526572012,9.9843695780195716e-6,1.5056327351493116e-7};Complex y;if(z.Real <0.5)
计算复杂的伽玛功能【难度:4级】:答案1:using System;using System.Numerics;public class Kata{ public static Complex Gamma(Complex z) { int g = 7; double[] p = {0.99999999999980993, 676....