2.2 使用变量

 

2.1 当前值引用


用麦克劳林级数法求 e:

e=1+1/1!+1/2!+1/3!+…

SPL

A
1 =to(20)
2 =nf=1,1+A1.sum((nf*=~,1/nf) )

符号 ~ 表示循环时序列中的当前成员。计算过程中先定义一个变量 nf,循环函数里边循环边更新,这样只要算一遍 20 的阶乘就把结果计算出来了。

SQL

WITH factorial_table (n, fact) AS (
  SELECT 1, 1 FROM dual
  UNION ALL
  SELECT n + 1, fact * (n + 1) FROM factorial_table
  WHERE n < 20 )
SELECT 1 + SUM(1/fact) AS e_approximation
FROM factorial_table;

Python

from math import factorial
s = pd.Series([i for i in range(1,21)])
e = s.apply(lambda x:1/factorial(x)).sum()+1

Python 的计算过程略显复杂,因为无法边循环边记录阶乘的结果,所以要计算 1 到 20 每个数字的阶乘。


2.3 序号引用
SPL SQL Python 代码示例对比