Man*_*áoz 2 integer constraints
任何人都可以帮我提供技术来生成满足某些限制的整数.
例如,假设我需要生成整数x和y
100 > x
and y < x + 5
Run Code Online (Sandbox Code Playgroud)
我并不是指这个特定的例子,而是一些通用技术来生成满足某些条件的整数.
嗯,那并不难:
如果您的示例中有多个整数,例如x和y,请将"整数"替换为"整数".
该技术也称为拒绝采样.
例如,您可以使用一系列链式迭代器来实现它.并且一些约束作为生成器非常有效,例如"小于100的正整数",因此在过滤所有其他约束之前,您可能会开始使用其中一个约束.
我看到的唯一适用于一般限制的其他选项是分析您的约束并生成数字而不需要猜测但知道如何生成它们.对于诸如"0 <x <100"之类的约束,这是微不足道的,但除此之外,它与实现计算机代数系统密切相关.还要记住,你必须同时满足每个约束......长时间拒绝采样会使这种方法成为实施的噩梦.