編寫 C# 函數 double Func(double x),滿足 Func(1) < 1。題目隱含條件可能為線性函數 y = kx + b。
public double Func(double x) {
return 0.5 * x; // Func(1) = 0.5 < 1
}
// 或帶截距
public double Func(double x) {
return 0.3 * x + 0.2; // Func(1) = 0.5 < 1
}
| 函數類型 | 示例 | Func(1) | 說明 |
|---|---|---|---|
| 線性 | 0.5*x | 0.5 | 最簡單 |
| 二次 | 0.5*x*x | 0.5 | 凸函數 |
| 平方根 | Math.Sqrt(x) | 1.0 | 等於 1,不滿足嚴格 <1 |
| 對數 | Math.Log(x+1) | ~0.693 | 定義域 x>-1 |
| 指數衰減 | 1 - Math.Exp(-x) | ~0.632 | 單調遞增 |
| 分段 | x < 1 ? 0.5 : 2*x-1 | 0.5 | 非光滑 |
Func<double, double>[] funcs = {
x => 0.5 * x,
x => 0.3 * x + 0.2,
x => 0.5 * x * x,
x => Math.Log(x + 1),
x => 1 - Math.Exp(-x)
};
foreach (var f in funcs) {
Console.WriteLine($"f(1) = {f(1):F4} {(f(1) < 1 ? "✓" : "✗")}");
}
只需構造任意通過 (1, y) 且 y < 1 的函數即可。線性函數 k*x + b 滿足 k + b < 1 皆為解。