一种用于从尽可能小的组成部分递归构造对象集合的算法。
给定一个 集合 的 个整数 (
,
, ...,
),其中
,可以使用贪婪算法找到系数的向量 (
,
, ...,
) 使得
(1)
|
其中 是点积,对于给定的整数
。这可以通过令
对于
, ...,
并设置
(2)
|
其中 是向下取整函数。现在定义表示与
之间的差为
(3)
|
如果在任何步骤 ,则已找到表示。否则,递减具有最小
的非零
项,将所有
设置为
,并从以下项构建剩余项
(4)
|
对于 , ..., 1 直到
或所有可能性都已用尽。
例如,麦乐鸡块数是只能使用 表示的数字。取
并迭代应用该算法得到序列 (0, 0, 3), (0, 2, 2), (2, 1, 2), (3, 0, 2), (1, 4, 1),此时
。因此 62 是一个麦乐鸡块数,其中
(5)
|
如果任何 整数 可以使用序列 (
,
, ...) 以
或 1 表示,则此序列称为完全序列。
贪婪算法也可用于在有限的步骤内将任意分数分解为埃及分数。对于分数 ,找到最小的整数
使得
,即,
(6)
|
其中 是向上取整函数。然后找到最小的整数
使得
。迭代直到没有余数。对于
和
,该算法给出两个或更少的项;对于
,给出三个或更少的项;对于
,给出四个或更少的项。