【发布时间】:2010-03-25 16:18:17
【问题描述】:
在二维整数空间中,有两个点 A 和 B。此函数返回由 A 和 B 界定的四边形子集中的点的枚举。
A = {1,1} B = {2,3}
Fn(A,B) = {{1,1},{1,2},{1,3},{2,1},{2,2},{2,3}}
我可以在几行 LINQ 中实现它。
private void UnknownFunction(Point to, Point from, List<Point> list)
{
var vectorX = Enumerable.Range(Math.Min(to.X, from.X), Math.Abs(to.X - from.Y) + 1);
var vectorY = Enumerable.Range(Math.Min(to.Y, from.Y), Math.Abs(to.Y - from.Y) + 1);
foreach (var x in vectorX)
foreach (var y in vectorY)
list.Add(new Point(x, y));
}
我很确定这是一个标准的数学运算,但我想不出它是什么。 请随时告诉我,这是您选择的语言中的一行代码。或者给我一个狡猾的 lambdas 或类似的实现。
但大多数时候我只是想知道它是什么叫。它快把我逼疯了。 感觉有点像卷积,但我上学的时间太长了,我无法确定。
【问题讨论】:
-
从技术上讲,这是一个丢番图问题。然而,由于这个特定问题的非常受限(即,值总是