C#,数值计算——Normaldev的计算方法与源程序

1 文本格式

using System;

namespace Legalsoft.Truffer
{
    public class Normaldev : Ran
    {
        private double mu { get; set; }
        private double sig { get; set; }

        public Normaldev(double mmu, double ssig, ulong i) : base(i)
        {
            this.mu = mmu;
            this.sig = ssig;
        }

        public double dev()
        {
            double u;
            double v;
            double x;
            double y;
            double q;
            do
            {
                u = doub();
                v = 1.7156 * (doub() - 0.5);
                x = u - 0.449871;
                y = Math.Abs(v) + 0.386595;
                q = Globals.SQR(x) + y * (0.19600 * y - 0.25472 * x);
            } while (q > 0.27597 && (q > 0.27846 || Globals.SQR(v) > -4.0 * Math.Log(u) * Globals.SQR(u)));
            return mu + sig * v / u;
        }
    }
}
 

2 代码格式

using System;

namespace Legalsoft.Truffer
{
    public class Normaldev : Ran
    {
        private double mu { get; set; }
        private double sig { get; set; }

        public Normaldev(double mmu, double ssig, ulong i) : base(i)
        {
            this.mu = mmu;
            this.sig = ssig;
        }

        public double dev()
        {
            double u;
            double v;
            double x;
            double y;
            double q;
            do
            {
                u = doub();
                v = 1.7156 * (doub() - 0.5);
                x = u - 0.449871;
                y = Math.Abs(v) + 0.386595;
                q = Globals.SQR(x) + y * (0.19600 * y - 0.25472 * x);
            } while (q > 0.27597 && (q > 0.27846 || Globals.SQR(v) > -4.0 * Math.Log(u) * Globals.SQR(u)));
            return mu + sig * v / u;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/beijinghorn/article/details/132983100