⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 poidev.pas

📁 Delphi Pascal 数据挖掘领域算法包 数值算法大全
💻 PAS
字号:
FUNCTION poidev(xm: real; VAR idum: integer): real;
(* Programs using POIDEV must declare the variables
VAR
   gloldm,glsq,glalxm,glg: real;
in the main program and should intialize gloldm to
   gloldm := -1.0;   *)
CONST
   pi=3.141592654;
VAR
   em,t,y: real;
BEGIN
   IF (xm < 12.0) THEN BEGIN
      IF (xm <> gloldm) THEN BEGIN
         gloldm := xm;
         glg := exp(-xm)
      END;
      em := -1;
      t := 1.0;
      REPEAT
         em := em+1.0;
         t := t*ran3(idum);
      UNTIL (t <= glg)
   END ELSE BEGIN
      IF (xm <> gloldm) THEN BEGIN
         gloldm := xm;
         glsq := sqrt(2.0*xm);
         glalxm := ln(xm);
         glg := xm*glalxm-gammln(xm+1.0)
      END;
      REPEAT
         REPEAT
            y := pi*ran3(idum);
            y := sin(y)/cos(y);
            em := glsq*y+xm;
         UNTIL (em >= 0.0);
         em := trunc(em);
         t := 0.9*(1.0+sqr(y))*exp(em*glalxm-gammln(em+1.0)-glg);
      UNTIL (ran3(idum) <= t)
   END;
   poidev := em
END;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -