simple_functions

一系列简单的函数。

类型变量

class ComparableT
TypeVar('ComparableT', bound=Comparable)

函数

通过反复将范围一分为二来搜索范围内的值。

更准确地说,执行数值二分查找以确定在给定边界内,function 的输入,使其输出 targettolerance(默认为 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_amax_a 之间,则返回 a。否则,返回 min_amax_a 中更接近 a 的那个。

示例

>>> clip(15, 11, 20)
15
>>> clip('a', 'h', 'k')
'h'
参数:
返回类型:

ComparableT

sigmoid(x)[源文件]

返回逻辑函数的输出。

逻辑函数是 S 型函数的一个常见例子,定义为 \(\frac{1}{1 + e^{-x}}\)

参考资料

参数:

x (float)

返回类型:

浮点数