引数に指定した自然数の二重階乗を求めます。戻値の型はDouble型です。再帰関数。階乗を求めるにはfact (自作関数)を使います。
- 構文
- Double = factDouble( 数値 )
- 引数
- 数値必須
- 0以上の整数
- 戻り値
- 引数に指定した数値の二重階乗。
プログラム
//////////////////////////////////////////////////
// 【引数】
// 数値 : 0以上の整数
// 【戻値】
// 引数に指定した数値の二重階乗。
//////////////////////////////////////////////////
FUNCTION factDouble(n)
IF n <> ABS(INT(n)) THEN EXIT
IFB n = 0 THEN
RESULT = 1
EXIT
ENDIF
IFB n <= 2 THEN
RESULT = n
ELSE
RESULT = n * factDouble(n - 2)
ENDIF
FEND
解説
- 2行目
- n が0以上の整数でなければ終了
IF n <> ABS(INT(n)) THEN EXIT
- 3-6行目
- もし n が0ならば1を返して終了。
IFB n = 0 THEN RESULT = 1 EXIT ENDIF
- 7-11行目
- もし n が2以下ならば n を返す。そうでなければ、 n ×( n -2)!を返す。再帰呼び出し。
IFB n <= 2 THEN RESULT = n ELSE RESULT = n * factDouble(n - 2) ENDIF
二重階乗
\(n\)の二重階乗\(n!!\)は、1から\(n\)までの\(n\)と同じ奇偶性を持つものだけをすべて掛けた積を言います。例えば5の二重階乗の場合、
\[5!! = 5 \times 3 \times 1 = 15\]となります。
定義
- \[n!! = \prod_{k=0}^{\lceil n/2 \rceil -1}(n-2k) = n(n-2)(n-4) \cdots \]
- 偶数\[n!! = \prod_{k=1}^{n/2}(2k) = n(n-2)(n-4) \cdots 4 \cdot 2 \]
- 奇数\[n!! = \prod_{k=1}^{(n+1)/2}(2k-1) = n(n-2)(n-4) \cdots 3 \cdot 1 \]
- \[0! = 1\]
関連記事
- GCD (自作関数)
- 最大公約数 を求めます。
- fact (自作関数)
- 引数に指定した数値の 階乗 を求めます。
- ABS (スクリプト関数)
- 引数の絶対値(\(|x|\))を返します。
- ARCCOS (スクリプト関数)
- 引数の 逆余弦 を求めます。
- CEIL (スクリプト関数)
- 正の値へ切り上げた数値を返します。
- LN (スクリプト関数)
- 自然対数(\(\log_e{x}\))を求める。
- LOGN (スクリプト関数)
- Baseを底とするXの対数(\(\log_{Base}{x}\))を求める。
- ZCUT (スクリプト関数)
- マイナス値は0にして返します。
- isEven (自作関数)
- 偶数かどうかを調べます。
- isOdd (自作関数)
- 奇数かどうか調べます。
- radToDeg (自作関数)
- 弧度法 から 度数法 に変換します。
- ARCSIN (スクリプト関数)
- 引数の 逆正弦 を求めます。
- EXP (スクリプト関数)
- 自然指数関数(\(y=e^{x}\))を求める。
- degToRad (自作関数)
- 度数法 から 弧度法 に変換します。
- LCM (自作関数)
- 最小公倍数 を求めます。
- binToDec (自作関数)
- 2進数を10進数に変換します。負数・小数の値にも対応しています。
- binToHex (自作関数)
- 2進数を16進数に変換します。負数・小数の値にも対応しています。
- ARCTAN (スクリプト関数)
- 引数の 逆正接 を求めます。
- INT (スクリプト関数)
- 小数点以下を切り落とした数値を返します。
- POWER (スクリプト関数)
- 数値のべき乗(\(\small{Base}^{Exponent}\))を求めます。
- hexToBin (自作関数)
- 16進数を2進数に変換します。負数・小数の値にも対応しています。
- isPrime (自作関数)
- 指定した数値が 素数 かどうかを調べます。
- normalizeAngle (自作関数)
- 度単位の角度を0~360度に正規化します。
- divisors (自作関数)
- 引数に指定した数値の約数のリストを返します。
- RANDOM (スクリプト関数)
- ランダムな値を返します。
- ROUND (スクリプト関数)
- 指定した位置で偶数丸めした値を返します。
- SQRT (スクリプト関数)
- 平方根(\(\sqrt{x}\))を求める。
- digitSum (自作関数)
- 数値の各桁の和を返す
- Collatz (自作関数)
- コラッツ数列 を求め結果を配列で返します。
- Kaprekar (自作関数)
- カプレカ数 を求め結果を配列で返します。
- deleteEmptyFolders (自作関数)
- 指定したフォルダより下層にある空フォルダを削除します。
- hexToDec (自作関数)
- 16進数を10進数に変換します。負数・小数の値にも対応しています。
- decToHex (自作関数)
- 10進数を16進数に変換します。負数・小数の値にも対応しています。
- decToBin (自作関数)
- 10進数を2進数に変換します。負数・小数の値にも対応しています。
- ARABIC (自作関数)
- ローマ数字 を アラビア数字 に変換します。
- ROMAN (自作関数)
- アラビア数字 を ローマ数字 に変換します。
- timeValue (自作関数)
- 指定した時間の シリアル値 を求める。