def analyze_trend(arr):
if len(arr) < 3:
print("趨勢:資料太少")
return
# 判斷單調趨勢
increasing = all(arr[i] <= arr[i+1] for i in range(len(arr)-1))
decreasing = all(arr[i] >= arr[i+1] for i in range(len(arr)-1))
if increasing and not all(x == arr[0] for x in arr):
print("趨勢:遞增")
elif decreasing and not all(x == arr[0] for x in arr):
print("趨勢:遞減")
else:
print("趨勢:無明顯方向")
# 判斷山峰與低谷
peaks = []
valleys = []
for i in range(1, len(arr) - 1):
if arr[i - 1] < arr[i] > arr[i + 1]:
peaks.append((i, arr[i]))
elif arr[i - 1] > arr[i] < arr[i + 1]:
valleys.append((i, arr[i]))
# 嚴格趨勢條件
if len(peaks) == 1 and not valleys:
print(f"嚴格趨勢:有一個山峰 at 位置 {peaks[0][0]},值為 {peaks[0][1]}")
elif len(valleys) == 1 and not peaks:
print(f"嚴格趨勢:有一個低谷 at 位置 {valleys[0][0]},值為 {valleys[0][1]}")
else:
print("嚴格趨勢:無(山峰/低谷不唯一或混合)")
PROBLEM
判斷趨勢 + 是否有峰谷
一題一題刷