计算机科学gydF4y2Ba

计算几何gydF4y2Ba

交点,线段gydF4y2Ba

考虑到gydF4y2Ba PgydF4y2Ba PgydF4y2Ba 表示点的集合,下面所示的伪代码通过检查点是否共线来检查线是否共线gydF4y2Ba pgydF4y2Ba pgydF4y2Ba ,gydF4y2Ba 问gydF4y2Ba 问gydF4y2Ba ,gydF4y2Ba rgydF4y2Ba rgydF4y2Ba 共线,在哪gydF4y2Ba 问gydF4y2Ba 问gydF4y2Ba 中心点,通过检查线段的斜率gydF4y2Ba pgydF4y2Ba 问gydF4y2Ba ‾gydF4y2Ba \overline {pq}gydF4y2Ba 而且gydF4y2Ba 问gydF4y2Ba rgydF4y2Ba ‾gydF4y2Ba \overline {qr}gydF4y2Ba 都是相同的。gydF4y2Ba

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26gydF4y2Ba
函数Check-For-Collinear(P,n) if (n≤2)then return(false) else根据P中的点的x坐标对它们进行排序。for (i = 1 to n) do计算每个j = 1,2,i−1,i + 1, i + 2,…的分段(P¯[i], P[j])的斜率。, n并将它们存储在辅助数组A[i]中。(i = 1 to n)对辅助数组A[i]进行排序。end for for (i = 1 to n−2)do for (j = i + 1 to n−1)do Let x = slope(P¯[i], P[j])对a [j]执行二值搜索,检查是否存在点P[k]使得斜率(P[j], P[k]) = x。如果(存在这样一个点P[k]),则点P[i], P[j]和点P[k]共线。声明没有三个点是共线的。如果gydF4y2Ba

算法最坏的运行时间是多少?gydF4y2Ba

以下gydF4y2Ba文本文件gydF4y2Ba包含一组三胞胎。每个三元组包含三个整数gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba ,gydF4y2Ba RgydF4y2Ba x, y, RgydF4y2Ba ,表示半径的圆gydF4y2Ba RgydF4y2Ba RgydF4y2Ba 集中在gydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba )gydF4y2Ba (x, y)gydF4y2Ba .在文件中的每对圆中,有多少可能相交?gydF4y2Ba

这里有多少对线段gydF4y2Ba这个文本文件gydF4y2Ba相交吗?gydF4y2Ba

细节和假设gydF4y2Ba

  • 文本文件包含499个整数列表,格式如下gydF4y2Ba [gydF4y2Ba 一个gydF4y2Ba ,gydF4y2Ba bgydF4y2Ba ,gydF4y2Ba cgydF4y2Ba ,gydF4y2Ba dgydF4y2Ba ,gydF4y2Ba egydF4y2Ba ,gydF4y2Ba fgydF4y2Ba ,gydF4y2Ba ggydF4y2Ba ,gydF4y2Ba hgydF4y2Ba ]gydF4y2Ba [a, b, c, d, e, f, g, h)gydF4y2Ba 这代表了四个点代表两条直线的集合gydF4y2Ba 一个gydF4y2Ba BgydF4y2Ba ABgydF4y2Ba 而且gydF4y2Ba CgydF4y2Ba DgydF4y2Ba CDgydF4y2Ba .线段gydF4y2Ba 一个gydF4y2Ba BgydF4y2Ba ABgydF4y2Ba 坐标gydF4y2Ba 一个gydF4y2Ba =gydF4y2Ba (gydF4y2Ba 一个gydF4y2Ba ,gydF4y2Ba bgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba BgydF4y2Ba =gydF4y2Ba (gydF4y2Ba cgydF4y2Ba ,gydF4y2Ba dgydF4y2Ba )gydF4y2Ba = (A、b), b = (c, d)gydF4y2Ba 和行gydF4y2Ba CgydF4y2Ba DgydF4y2Ba CDgydF4y2Ba 是gydF4y2Ba CgydF4y2Ba =gydF4y2Ba (gydF4y2Ba egydF4y2Ba ,gydF4y2Ba fgydF4y2Ba )gydF4y2Ba ,gydF4y2Ba DgydF4y2Ba =gydF4y2Ba (gydF4y2Ba ggydF4y2Ba ,gydF4y2Ba hgydF4y2Ba )gydF4y2Ba C = (e, f), D = (g, h)gydF4y2Ba
×gydF4y2Ba

问题加载…gydF4y2Ba

注意加载…gydF4y2Ba

设置加载…gydF4y2Ba