在二維整數空間中,您有兩個點A和B.此函數返回由A和B界定的四邊形子集中點的枚舉。這個幾何函數的名字是什麼?
A = {1,1} B = { (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或者其他類似的狡猾的實現。
但大多我只是想知道它是什麼叫。這讓我瘋狂。 這感覺有點像卷積,但是自從我在學校爲我確定的時間太長了。
技術上(達到http://en.wikipedia.org/wiki/Integer_points_in_convex_polyhedra名稱相似),這是一個丟番圖問題。然而,由於這個特定問題的非常有限的(即相互之間的值總是<= 1)和正交性,它可以用輸入點的笛卡爾乘積來解決。儘管它變大了,你將不得不使用更通用的解決方案。 – RBarryYoung 2010-03-26 04:46:13