急勾配の判定
Posted feedbacks - Common Lisp
数列の長さに対して線形時間です。
1 2 3 4 | (defun rapidly-decreasing-p (numbers)
(loop for sum = (reduce #'+ (cdr numbers)) then (- sum x)
for x in numbers
always (< sum x)))
|
急勾配の判定
数列の長さに対して線形時間です。
1 2 3 4 | (defun rapidly-decreasing-p (numbers)
(loop for sum = (reduce #'+ (cdr numbers)) then (- sum x)
for x in numbers
always (< sum x)))
|
nobsun
#8891()
Rating1/1=1.00
有限の長さの数列で,各要素の値が,その要素の後ろにある残りの列に含まれるすべての要素の和よりも大きい列を「急勾配の列」ということにします(空列の和は0とします).
任意の長さ(ただし有限の長さの)数列を与えられたとき,それが「急勾配の列」であるかどうかを判定する述語関数を定義してください.
必須ではありませんが,効率についてコメントがあれば面白いかもしれませんね.
[ reply ]