simple_functions¶
一系列简单的函数。
类型变量
- class ComparableT¶
TypeVar('ComparableT', bound=Comparable)
类
函数
- binary_search(function, target, lower_bound, upper_bound, tolerance=0.0001)[源文件]¶
通过反复将范围一分为二来搜索范围内的值。
更准确地说,执行数值二分查找以确定在给定边界内,
function
的输入,使其输出target
在tolerance
(默认为 0.0001)内。如果在边界内找不到输入,则返回None
。示例
考虑多项式 \(x^2 + 3x + 1\),我们搜索目标值 \(11\)。精确解是 \(x = 2\)。
>>> solution = binary_search(lambda x: x**2 + 3*x + 1, 11, 0, 5) >>> bool(abs(solution - 2) < 1e-4) True >>> solution = binary_search(lambda x: x**2 + 3*x + 1, 11, 0, 5, tolerance=0.01) >>> bool(abs(solution - 2) < 0.01) True
在区间 \([0, 5]\) 中搜索目标值 \(71\) 不会产生解
>>> binary_search(lambda x: x**2 + 3*x + 1, 71, 0, 5) is None True
- 参数:
function (Callable[[float], float])
target (float)
lower_bound (float)
upper_bound (float)
tolerance (float)
- 返回类型:
float | None
- choose(n, k)[源文件]¶
二项式系数 n 选 k。
\(\binom{n}{k}\) 描述了从 \(n\) 个元素中选择 \(k\) 个元素的可能选择数。
参考资料
- 参数:
n (int)
k (int)
- 返回类型:
int
- clip(a, min_a, max_a)[源文件]¶
将
a
裁剪到区间 [min_a
,max_a
]。接受任何可比较对象(即支持 <、> 的对象)。如果
a
介于min_a
和max_a
之间,则返回a
。否则,返回min_a
和max_a
中更接近a
的那个。示例
>>> clip(15, 11, 20) 15 >>> clip('a', 'h', 'k') 'h'
- 参数:
a (ComparableT)
min_a (ComparableT)
max_a (ComparableT)
- 返回类型: