{"id":71944,"date":"2024-08-02T22:12:15","date_gmt":"2024-08-02T18:42:15","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/"},"modified":"2024-08-02T22:12:15","modified_gmt":"2024-08-02T18:42:15","slug":"computational-geometry-design-and-analysis-of-algorithms-nj2","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/","title":{"rendered":"\u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc\u060c \u0637\u0631\u0627\u062d\u06cc \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang <\/p>\n<p>  \u0645\u0642\u062f\u0645\u0647 \u0627\u06cc \u0628\u0631 \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc<\/p>\n<p>\u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0645\u0627\u0644\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc:<\/p>\n<p>\u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0634\u0627\u062e\u0647 \u0627\u06cc \u0627\u0632 \u0639\u0644\u0648\u0645 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0648 \u0631\u06cc\u0627\u0636\u06cc\u0627\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0645\u0637\u0627\u0644\u0639\u0647 \u0627\u062c\u0633\u0627\u0645 \u0647\u0646\u062f\u0633\u06cc \u0648 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646\u0647\u0627 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f.  \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u062d\u0644 \u0645\u0633\u0627\u0626\u0644 \u0647\u0646\u062f\u0633\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u06af\u0631\u0627\u0641\u06cc\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u06cc\u060c \u0637\u0631\u0627\u062d\u06cc \u0628\u0647 \u06a9\u0645\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 (CAD)\u060c \u0631\u0648\u0628\u0627\u062a\u06cc\u06a9 \u0648 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc (GIS) \u0627\u0633\u0627\u0633\u06cc \u0627\u0633\u062a.<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc:<\/p>\n<p>\u06af\u0631\u0627\u0641\u06cc\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u06cc: \u0631\u0646\u062f\u0631\u06cc\u0646\u06af \u0648 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0627\u0634\u06a9\u0627\u0644 \u0648 \u0633\u0637\u0648\u062d.<\/p>\n<p>\u0637\u0631\u0627\u062d\u06cc \u0628\u0647 \u06a9\u0645\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 (CAD): \u0637\u0631\u0627\u062d\u06cc \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0642\u0637\u0639\u0627\u062a \u0648 \u0633\u0627\u0632\u0647 \u0647\u0627\u06cc \u0645\u06a9\u0627\u0646\u06cc\u06a9\u06cc.<\/p>\n<p>\u0631\u0628\u0627\u062a\u06cc\u06a9: \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc \u0645\u0633\u06cc\u0631 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u062d\u0631\u06a9\u062a<\/p>\n<p>\u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc (GIS): \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u06a9\u0627\u0646\u06cc \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc.<\/p>\n<p>\u0627\u0644\u06af\u0648 \u0634\u0646\u0627\u0633\u06cc: \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0627\u0644\u06af\u0648\u0647\u0627 \u0648 \u0627\u0634\u06a9\u0627\u0644 \u062f\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0635\u0648\u06cc\u0631.<\/p>\n<p>  \u0627\u062c\u0633\u0627\u0645 \u0648 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0646\u062f\u0633\u06cc \u067e\u0627\u06cc\u0647<\/p>\n<p>\u0646\u0642\u0627\u0637\u060c \u062e\u0637\u0648\u0637\u060c \u0642\u0637\u0639\u0627\u062a \u062e\u0637 \u0648 \u0633\u0637\u0648\u062d:<\/p>\n<p>\u0646\u06a9\u062a\u0647 \u0647\u0627: \u0648\u0627\u062d\u062f\u0647\u0627\u06cc \u0627\u0633\u0627\u0633\u06cc \u062f\u0631 \u0647\u0646\u062f\u0633\u0647 \u06a9\u0647 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u062f\u0631 \u0641\u0636\u0627 \u0647\u0633\u062a\u0646\u062f.<\/p>\n<p>\u062e\u0637\u0648\u0637: \u062f\u0631 \u0647\u0631 \u062f\u0648 \u062c\u0647\u062a \u0628\u06cc \u0646\u0647\u0627\u06cc\u062a \u06af\u0633\u062a\u0631\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u0628\u0627 \u062f\u0648 \u0646\u0642\u0637\u0647 \u0645\u0634\u062e\u0635 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/p>\n<p>\u0628\u062e\u0634 \u0647\u0627\u06cc \u062e\u0637: \u0628\u062e\u0634\u06cc \u0627\u0632 \u06cc\u06a9 \u062e\u0637 \u06a9\u0647 \u062a\u0648\u0633\u0637 \u062f\u0648 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0647\u0648\u0627\u067e\u06cc\u0645\u0627\u0647\u0627: \u0633\u0637\u0648\u062d \u0645\u0633\u0637\u062d \u06a9\u0647 \u0628\u06cc \u0646\u0647\u0627\u06cc\u062a \u062f\u0631 \u062f\u0648 \u0628\u0639\u062f \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u06cc\u0627\u0628\u0646\u062f.<\/p>\n<p>\u0628\u0631\u062f\u0627\u0631\u0647\u0627 \u0648 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u062f\u0627\u0631:<\/p>\n<p>\u0628\u0631\u062f\u0627\u0631\u0647\u0627: \u06a9\u0645\u06cc\u062a \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0642\u062f\u0631 \u0648 \u062c\u0647\u062a \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u062f.  \u0628\u0631\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641 \u062a\u0631\u062c\u0645\u0647 \u0647\u0627 \u0648 \u062c\u0647\u062a \u0647\u0627 \u062f\u0631 \u0641\u0636\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u062f\u0627\u0631: \u0634\u0627\u0645\u0644 \u062c\u0645\u0639\u060c \u062a\u0641\u0631\u06cc\u0642\u060c \u062d\u0627\u0635\u0644 \u0636\u0631\u0628 \u0646\u0642\u0637\u0647 \u0627\u06cc\u060c \u0636\u0631\u0628\u062f\u0631\u06cc\u060c \u0648 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc.  \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644\u0627\u062a \u0647\u0646\u062f\u0633\u06cc \u0648 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u062a\u0628\u062f\u06cc\u0644\u200c\u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u06cc \u067e\u0627\u06cc\u0647 (\u062a\u0631\u062c\u0645\u0647\u060c \u0686\u0631\u062e\u0634\u060c \u0645\u0642\u06cc\u0627\u0633\u200c\u0628\u0646\u062f\u06cc):<\/p>\n<p>\u062a\u0631\u062c\u0645\u0647: \u062d\u0631\u06a9\u062a \u06cc\u06a9 \u0634\u06cc \u0647\u0646\u062f\u0633\u06cc \u0627\u0632 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u0628\u0647 \u0645\u06a9\u0627\u0646 \u062f\u06cc\u06af\u0631 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0634\u06a9\u0644 \u06cc\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u0622\u0646.<\/p>\n<p>\u0686\u0631\u062e\u0634: \u0686\u0631\u062e\u0627\u0646\u062f\u0646 \u06cc\u06a9 \u062c\u0633\u0645 \u0628\u0647 \u062f\u0648\u0631 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u062b\u0627\u0628\u062a (\u06cc\u0627 \u0645\u0628\u062f\u0623) \u0628\u0627 \u0632\u0627\u0648\u06cc\u0647 \u0645\u0639\u06cc\u0646.<\/p>\n<p>\u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc: \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 \u06cc\u06a9 \u062c\u0633\u0645 \u0628\u0627 \u062d\u0641\u0638 \u0634\u06a9\u0644 \u0622\u0646\u060c \u0628\u0627 \u0628\u0632\u0631\u06af \u06a9\u0631\u062f\u0646 \u06cc\u0627 \u06a9\u0648\u0686\u06a9 \u06a9\u0631\u062f\u0646 \u0622\u0646.<\/p>\n<p>\u0645\u062a\u0631\u06cc\u06a9 \u0648 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u0641\u0627\u0635\u0644\u0647:<\/p>\n<p>\u0641\u0627\u0635\u0644\u0647 \u0627\u0642\u0644\u06cc\u062f\u0633\u06cc: \u0641\u0627\u0635\u0644\u0647 \u062e\u0637 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u06cc\u0646 \u062f\u0648 \u0646\u0642\u0637\u0647 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0627\u0642\u0644\u06cc\u062f\u0633\u06cc.<\/p>\n<p>\u0641\u0627\u0635\u0644\u0647 \u0645\u0646\u0647\u062a\u0646: \u0641\u0627\u0635\u0644\u0647 \u0628\u06cc\u0646 \u062f\u0648 \u0646\u0642\u0637\u0647 \u062f\u0631 \u0627\u0645\u062a\u062f\u0627\u062f \u0645\u062d\u0648\u0631\u0647\u0627 \u062f\u0631 \u0632\u0627\u0648\u06cc\u0647 \u0642\u0627\u0626\u0645 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>\u0633\u0627\u06cc\u0631 \u0645\u0639\u06cc\u0627\u0631\u0647\u0627: \u0634\u0627\u0645\u0644 \u0641\u0627\u0635\u0644\u0647 \u0686\u0628\u06cc\u0634\u0641 \u0648 \u0641\u0627\u0635\u0644\u0647 \u0645\u06cc\u0646\u06a9\u0648\u0641\u0633\u06a9\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0647\u0646\u062f\u0633\u06cc \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/p>\n<p>  \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc<\/p>\n<p>\u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0634\u0627\u0645\u0644 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0628\u0631\u0627\u06cc \u062d\u0644 \u0645\u0648\u062b\u0631 \u0645\u0633\u0627\u0626\u0644 \u0647\u0646\u062f\u0633\u06cc \u0627\u0633\u062a.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u200c\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u0631\u0627\u062f\u0627\u06cc\u0645 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646:<\/p>\n<p>  \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0627\u0645\u062a\u06cc\u0627\u0632 (1D)<\/p>\n<p>\u062f\u0631 \u06cc\u06a9 \u0628\u0639\u062f\u06cc\u060c \u06cc\u0627\u0641\u062a\u0646 \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0646\u0642\u0627\u0637 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062a\u0642\u0633\u06cc\u0645 \u0648 \u063a\u0644\u0628\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f.  \u0627\u06cc\u062f\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0642\u0627\u0637 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0628\u0647 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u0632\u062f\u06cc\u06a9 \u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0631\u0627 \u062f\u0631 \u0647\u0631 \u06af\u0631\u0648\u0647 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/p>\n<p>def closest_pair_1d(points):<br \/>\n    def find_closest_pair(sorted_points):<br \/>\n        # Base case: If there are only two points, return them<br \/>\n        if len(sorted_points) == 2:<br \/>\n            return sorted_points[0], sorted_points[1]\n        # Base case: If there are three points, return the closest pair<br \/>\n        if len(sorted_points) == 3:<br \/>\n            return min(<br \/>\n                ((sorted_points[0], sorted_points[1]),<br \/>\n                 (sorted_points[1], sorted_points[2]),<br \/>\n                 (sorted_points[0], sorted_points[2])),<br \/>\n                key=lambda pair: abs(pair[1] &#8211; pair[0])<br \/>\n            )<br \/>\n        # Divide the points into two halves<br \/>\n        mid = len(sorted_points) \/\/ 2<br \/>\n        left_half = sorted_points[:mid]\n        right_half = sorted_points[mid:]\n        # Find the closest pair in each half<br \/>\n        closest_pair_left = find_closest_pair(left_half)<br \/>\n        closest_pair_right = find_closest_pair(right_half)<br \/>\n        # Find the closest pair across the split<br \/>\n        closest_pair_split = (left_half[-1], right_half[0])<br \/>\n        # Return the overall closest pair<br \/>\n        return min(closest_pair_left, closest_pair_right, closest_pair_split, key=lambda pair: abs(pair[1] &#8211; pair[0]))<\/p>\n<p>    if len(points) &lt; 2:<br \/>\n        raise ValueError(&#8220;At least two points are required&#8221;)<br \/>\n    # Sort the points<br \/>\n    sorted_points = sorted(points)<br \/>\n    # Find the closest pair using divide and conquer<br \/>\n    return find_closest_pair(sorted_points)<\/p>\n<p># Example usage<br \/>\npoints = [0, 1, 3, 5, 7, 9, 11]\nclosest_points = closest_pair_1d(points)<br \/>\nprint(f&#8221;The closest pair of points is: {closest_points}&#8221;)<\/p>\n<p>  \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0627\u0645\u062a\u06cc\u0627\u0632 (2 \u0628\u0639\u062f\u06cc)<\/p>\n<p>\u062f\u0631 \u062f\u0648 \u0628\u0639\u062f\u06cc\u060c \u0645\u0633\u0626\u0644\u0647 \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0646\u0642\u0637\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u0646\u0642\u0627\u0637 \u0648 \u06cc\u0627\u0641\u062a\u0646 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u062f\u0631 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062a\u0642\u0633\u06cc\u0645\u200c\u0634\u062f\u0647\u060c \u0633\u067e\u0633 \u0628\u0631\u0631\u0633\u06cc \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0645\u0631\u0632 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/p>\n<p>import math<\/p>\n<p>def distance(point1, point2):<br \/>\n    return math.sqrt((point1[0] &#8211; point2[0]) ** 2 + (point1[1] &#8211; point2[1]) ** 2)<\/p>\n<p>def closest_pair_2d(points):<br \/>\n    def closest_pair_recursive(points_sorted_by_x, points_sorted_by_y):<br \/>\n        n = len(points_sorted_by_x)<\/p>\n<p>        if n &lt;= 3:<br \/>\n            return brute_force_closest_pair(points_sorted_by_x)<\/p>\n<p>        mid = n \/\/ 2<br \/>\n        left_half_x = points_sorted_by_x[:mid]\n        right_half_x = points_sorted_by_x[mid:]\n<p>        midpoint = points_sorted_by_x[mid][0]\n        left_half_y = list(filter(lambda x: x[0] &lt;= midpoint, points_sorted_by_y))<br \/>\n        right_half_y = list(filter(lambda x: x[0] &gt; midpoint, points_sorted_by_y))<\/p>\n<p>        (p1, q1, d1) = closest_pair_recursive(left_half_x, left_half_y)<br \/>\n        (p2, q2, d2) = closest_pair_recursive(right_half_x, right_half_y)<\/p>\n<p>        if d1 &lt; d2:<br \/>\n            d = d1<br \/>\n            min_pair = (p1, q1)<br \/>\n        else:<br \/>\n            d = d2<br \/>\n            min_pair = (p2, q2)<\/p>\n<p>        (p3, q3, d3) = closest_split_pair(points_sorted_by_x, points_sorted_by_y, d, min_pair)<\/p>\n<p>        if d3 &lt; d:<br \/>\n            return (p3, q3, d3)<br \/>\n        else:<br \/>\n            return min_pair[0], min_pair[1], d<\/p>\n<p>    def brute_force_closest_pair(points):<br \/>\n        min_dist = float(&#8216;inf&#8217;)<br \/>\n        p1 = None<br \/>\n        p2 = None<br \/>\n        for i in range(len(points)):<br \/>\n            for j in range(i + 1, len(points)):<br \/>\n                d = distance(points[i], points[j])<br \/>\n                if d &lt; min_dist:<br \/>\n                    min_dist = d<br \/>\n                    p1, p2 = points[i], points[j]\n        return p1, p2, min_dist<\/p>\n<p>    def closest_split_pair(points_sorted_by_x, points_sorted_by_y, delta, best_pair):<br \/>\n        n = len(points_sorted_by_x)<br \/>\n        mid_x = points_sorted_by_x[n \/\/ 2][0]\n<p>        Sy = [point for point in points_sorted_by_y if mid_x &#8211; delta &lt;= point[0] &lt;= mid_x + delta]\n<p>        best = delta<br \/>\n        len_Sy = len(Sy)<br \/>\n        for i in range(len_Sy &#8211; 1):<br \/>\n            for j in range(i + 1, min(i + 7, len_Sy)):<br \/>\n                p, q = Sy[i], Sy[j]\n                dst = distance(p, q)<br \/>\n                if dst &lt; best:<br \/>\n                    best = dst<br \/>\n                    best_pair = (p, q)<br \/>\n        return best_pair[0], best_pair[1], best<\/p>\n<p>    points_sorted_by_x = sorted(points, key=lambda x: x[0])<br \/>\n    points_sorted_by_y = sorted(points, key=lambda x: x[1])<\/p>\n<p>    p1, p2, min_dist = closest_pair_recursive(points_sorted_by_x, points_sorted_by_y)<br \/>\n    return p1, p2, min_dist<\/p>\n<p># Example usage<br \/>\npoints = [(2, 3), (2, 4), (12, 30), (40, 50), (5, 1), (12, 10), (3, 4)]\nclosest_points = closest_pair_2d(points)<br \/>\nprint(f&#8221;The closest pair of points is: {closest_points[0]} and {closest_points[1]} with a distance of {closest_points[2]}&#8221;)<\/p>\n<p>  \u0627\u0633\u06a9\u0646 \u06af\u0631\u0627\u0647\u0627\u0645 (\u0647\u0627\u0644 \u0645\u062d\u062f\u0628)<\/p>\n<p>\u06af\u0631\u0627\u0647\u0627\u0645 \u0627\u0633\u06a9\u0646 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u06cc \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0628\u062f\u0646\u0647 \u0645\u062d\u062f\u0628 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0646\u0642\u0627\u0637 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0648 \u0628\u0639\u062f\u06cc \u0627\u0633\u062a.  \u0646\u0642\u0627\u0637 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0632\u0627\u0648\u06cc\u0647 \u0642\u0637\u0628\u06cc \u0646\u0633\u0628\u062a \u0628\u0647 \u06cc\u06a9 \u0645\u062d\u0648\u0631 \u0645\u0631\u062a\u0628 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0633\u067e\u0633 \u0628\u062f\u0646\u0647 \u0645\u062d\u062f\u0628 \u0631\u0627 \u0645\u06cc \u0633\u0627\u0632\u062f.<\/p>\n<p>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/p>\n<p>import math<\/p>\n<p>def graham_scan(points):<br \/>\n    # Find the point with the lowest y-coordinate, break ties by x-coordinate<br \/>\n    pivot = min(points, key=lambda p: (p[1], p[0]))<br \/>\n    points.remove(pivot)<\/p>\n<p>    # Sort the points based on polar angle with the pivot<br \/>\n    points.sort(key=lambda p: (math.atan2(p[1] &#8211; pivot[1], p[0] &#8211; pivot[0]), p[1], p[0]))<\/p>\n<p>    # Add the pivot back to the beginning<br \/>\n    points.insert(0, pivot)<\/p>\n<p>    # Initialize the hull with the first two points<br \/>\n    hull = [points[0], points[1]]\n<p>    for p in points[2:]:<br \/>\n        while len(hull) &gt; 1 and orientation(hull[-2], hull[-1], p) != 2:<br \/>\n            hull.pop()<br \/>\n        hull.append(p)<\/p>\n<p>    return hull<\/p>\n<p>def orientation(p, q, r):<br \/>\n    # Function to find the orientation of the triplet (p, q, r)<br \/>\n    # 0 -&gt; p, q, and r are collinear<br \/>\n    # 1 -&gt; Clockwise<br \/>\n    # 2 -&gt; Counterclockwise<br \/>\n    val = (q[1] &#8211; p[1]) * (r[0] &#8211; q[0]) &#8211; (q[0] &#8211; p[0]) * (r[1] &#8211; q[1])<br \/>\n    if val == 0:<br \/>\n        return 0<br \/>\n    elif val &gt; 0:<br \/>\n        return 1<br \/>\n    else:<br \/>\n        return 2<\/p>\n<p># Sample points<br \/>\npoints = [(0, 0), (1, 1), (2, 2), (2, 0), (0, 2), (0.5, 2.5), (2.5, 2)]\n<p># Call the function<br \/>\nconvex_hull = graham_scan(points)<\/p>\n<p># Print the result<br \/>\nprint(&#8220;Convex Hull:&#8221;, convex_hull)<\/p>\n<p>  \u062c\u0627\u0631\u0648\u06cc\u0633 \u0645\u0627\u0631\u0686 (\u06a9\u0627\u062f\u0648\u067e\u06cc\u0686) (\u06a9\u0627\u0633\u0647 \u0645\u062d\u062f\u0628)<\/p>\n<p>Jarvis March (Gift Wrapping) \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0628\u062f\u0646\u0647 \u0645\u062d\u062f\u0628 \u0627\u0633\u062a.  \u0627\u0632 \u0633\u0645\u062a \u0686\u067e \u062a\u0631\u06cc\u0646 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f \u0648 \u062f\u0648\u0631 \u0646\u0642\u0627\u0637 \u0645\u06cc \u067e\u06cc\u0686\u062f \u062a\u0627 \u0628\u062f\u0646\u0647 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/p>\n<p>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/p>\n<p>def gift_wrapping(points):<br \/>\n    hull = []\n    start = min(points, key=lambda p: p[0])  # Find the leftmost point<br \/>\n    on_hull = start<br \/>\n    while True:<br \/>\n        hull.append(on_hull)<br \/>\n        next_point = points[0]\n        for p in points:<br \/>\n            if (next_point == on_hull) or (orientation(on_hull, next_point, p) == 2):<br \/>\n                next_point = p<br \/>\n        on_hull = next_point<br \/>\n        if on_hull == start:<br \/>\n            break<br \/>\n    return hull<\/p>\n<p>def orientation(p, q, r):<br \/>\n    # Function to find the orientation of the triplet (p, q, r)<br \/>\n    # 0 -&gt; p<\/p>\n<p>, q, and r are collinear<br \/>\n    # 1 -&gt; Clockwise<br \/>\n    # 2 -&gt; Counterclockwise<br \/>\n    val = (q[1] &#8211; p[1]) * (r[0] &#8211; q[0]) &#8211; (q[0] &#8211; p[0]) * (r[1] &#8211; q[1])<br \/>\n    if val == 0:<br \/>\n        return 0<br \/>\n    elif val &gt; 0:<br \/>\n        return 1<br \/>\n    else:<br \/>\n        return 2<\/p>\n<p># Sample points<br \/>\npoints = [(0, 0), (1, 1), (2, 2), (2, 0), (0, 2), (0.5, 2.5), (2.5, 2)]\n<p># Call the function<br \/>\nconvex_hull = gift_wrapping(points)<\/p>\n<p># Print the result<br \/>\nprint(&#8220;Convex Hull:&#8221;, convex_hull)<\/p>\n<p>\u0627\u06cc\u0646 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0647\u0627 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0639\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0648\u0634 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/#%D9%85%D9%82%D8%AF%D9%85%D9%87_%D8%A7%DB%8C_%D8%A8%D8%B1_%D9%87%D9%86%D8%AF%D8%B3%D9%87_%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D8%A7%D8%AA%DB%8C\" >\u0645\u0642\u062f\u0645\u0647 \u0627\u06cc \u0628\u0631 \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/#%D8%A7%D8%AC%D8%B3%D8%A7%D9%85_%D9%88_%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%87%D9%86%D8%AF%D8%B3%DB%8C_%D9%BE%D8%A7%DB%8C%D9%87\" >\u0627\u062c\u0633\u0627\u0645 \u0648 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0646\u062f\u0633\u06cc \u067e\u0627\u06cc\u0647<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/#%D9%86%D9%85%D9%88%D9%86%D9%87_%D9%87%D8%A7%DB%8C%DB%8C_%D8%A7%D8%B2_%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85_%D9%87%D8%A7%DB%8C_%D9%87%D9%86%D8%AF%D8%B3%D9%87_%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D8%A7%D8%AA%DB%8C\" >\u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/#%D9%86%D8%B2%D8%AF%DB%8C%DA%A9%D8%AA%D8%B1%DB%8C%D9%86_%D8%AC%D9%81%D8%AA_%D8%A7%D9%85%D8%AA%DB%8C%D8%A7%D8%B2_1D\" >\u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0627\u0645\u062a\u06cc\u0627\u0632 (1D)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/#%D9%86%D8%B2%D8%AF%DB%8C%DA%A9%D8%AA%D8%B1%DB%8C%D9%86_%D8%AC%D9%81%D8%AA_%D8%A7%D9%85%D8%AA%DB%8C%D8%A7%D8%B2_2_%D8%A8%D8%B9%D8%AF%DB%8C\" >\u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0627\u0645\u062a\u06cc\u0627\u0632 (2 \u0628\u0639\u062f\u06cc)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/#%D8%A7%D8%B3%DA%A9%D9%86_%DA%AF%D8%B1%D8%A7%D9%87%D8%A7%D9%85_%D9%87%D8%A7%D9%84_%D9%85%D8%AD%D8%AF%D8%A8\" >\u0627\u0633\u06a9\u0646 \u06af\u0631\u0627\u0647\u0627\u0645 (\u0647\u0627\u0644 \u0645\u062d\u062f\u0628)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/computational-geometry-design-and-analysis-of-algorithms-nj2\/#%D8%AC%D8%A7%D8%B1%D9%88%DB%8C%D8%B3_%D9%85%D8%A7%D8%B1%DA%86_%DA%A9%D8%A7%D8%AF%D9%88%D9%BE%DB%8C%DA%86_%DA%A9%D8%A7%D8%B3%D9%87_%D9%85%D8%AD%D8%AF%D8%A8\" >\u062c\u0627\u0631\u0648\u06cc\u0633 \u0645\u0627\u0631\u0686 (\u06a9\u0627\u062f\u0648\u067e\u06cc\u0686) (\u06a9\u0627\u0633\u0647 \u0645\u062d\u062f\u0628)<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D9%82%D8%AF%D9%85%D9%87_%D8%A7%DB%8C_%D8%A8%D8%B1_%D9%87%D9%86%D8%AF%D8%B3%D9%87_%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D8%A7%D8%AA%DB%8C\"><\/span>\n<p>  \u0645\u0642\u062f\u0645\u0647 \u0627\u06cc \u0628\u0631 \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>\u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0645\u0627\u0644\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc:<\/strong><\/p>\n<p>\u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0634\u0627\u062e\u0647 \u0627\u06cc \u0627\u0632 \u0639\u0644\u0648\u0645 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0648 \u0631\u06cc\u0627\u0636\u06cc\u0627\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0645\u0637\u0627\u0644\u0639\u0647 \u0627\u062c\u0633\u0627\u0645 \u0647\u0646\u062f\u0633\u06cc \u0648 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646\u0647\u0627 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f.  \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u062d\u0644 \u0645\u0633\u0627\u0626\u0644 \u0647\u0646\u062f\u0633\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u062f\u0631 \u06af\u0631\u0627\u0641\u06cc\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u06cc\u060c \u0637\u0631\u0627\u062d\u06cc \u0628\u0647 \u06a9\u0645\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 (CAD)\u060c \u0631\u0648\u0628\u0627\u062a\u06cc\u06a9 \u0648 \u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc (GIS) \u0627\u0633\u0627\u0633\u06cc \u0627\u0633\u062a.<\/p>\n<p><strong>\u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc:<\/strong><\/p>\n<ul>\n<li>\n<strong>\u06af\u0631\u0627\u0641\u06cc\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u06cc:<\/strong> \u0631\u0646\u062f\u0631\u06cc\u0646\u06af \u0648 \u062f\u0633\u062a\u06a9\u0627\u0631\u06cc \u0627\u0634\u06a9\u0627\u0644 \u0648 \u0633\u0637\u0648\u062d.<\/li>\n<li>\n<strong>\u0637\u0631\u0627\u062d\u06cc \u0628\u0647 \u06a9\u0645\u06a9 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 (CAD):<\/strong> \u0637\u0631\u0627\u062d\u06cc \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0642\u0637\u0639\u0627\u062a \u0648 \u0633\u0627\u0632\u0647 \u0647\u0627\u06cc \u0645\u06a9\u0627\u0646\u06cc\u06a9\u06cc.<\/li>\n<li>\n<strong>\u0631\u0628\u0627\u062a\u06cc\u06a9:<\/strong> \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u06cc\u0632\u06cc \u0645\u0633\u06cc\u0631 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u062d\u0631\u06a9\u062a<\/li>\n<li>\n<strong>\u0633\u06cc\u0633\u062a\u0645 \u0647\u0627\u06cc \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc (GIS):<\/strong> \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0645\u06a9\u0627\u0646\u06cc \u0648 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u062c\u063a\u0631\u0627\u0641\u06cc\u0627\u06cc\u06cc.<\/li>\n<li>\n<strong>\u0627\u0644\u06af\u0648 \u0634\u0646\u0627\u0633\u06cc:<\/strong> \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0627\u0644\u06af\u0648\u0647\u0627 \u0648 \u0627\u0634\u06a9\u0627\u0644 \u062f\u0631 \u067e\u0631\u062f\u0627\u0632\u0634 \u062a\u0635\u0648\u06cc\u0631.<\/li>\n<\/ul>\n<h4><span class=\"ez-toc-section\" id=\"%D8%A7%D8%AC%D8%B3%D8%A7%D9%85_%D9%88_%D8%B9%D9%85%D9%84%DB%8C%D8%A7%D8%AA_%D9%87%D9%86%D8%AF%D8%B3%DB%8C_%D9%BE%D8%A7%DB%8C%D9%87\"><\/span>\n<p>  <strong>\u0627\u062c\u0633\u0627\u0645 \u0648 \u0639\u0645\u0644\u06cc\u0627\u062a \u0647\u0646\u062f\u0633\u06cc \u067e\u0627\u06cc\u0647<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>\u0646\u0642\u0627\u0637\u060c \u062e\u0637\u0648\u0637\u060c \u0642\u0637\u0639\u0627\u062a \u062e\u0637 \u0648 \u0633\u0637\u0648\u062d:<\/strong><\/p>\n<ul>\n<li>\n<strong>\u0646\u06a9\u062a\u0647 \u0647\u0627:<\/strong> \u0648\u0627\u062d\u062f\u0647\u0627\u06cc \u0627\u0633\u0627\u0633\u06cc \u062f\u0631 \u0647\u0646\u062f\u0633\u0647 \u06a9\u0647 \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f\u0647 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u062f\u0631 \u0641\u0636\u0627 \u0647\u0633\u062a\u0646\u062f.<\/li>\n<li>\n<strong>\u062e\u0637\u0648\u0637:<\/strong> \u062f\u0631 \u0647\u0631 \u062f\u0648 \u062c\u0647\u062a \u0628\u06cc \u0646\u0647\u0627\u06cc\u062a \u06af\u0633\u062a\u0631\u0634 \u06cc\u0627\u0641\u062a\u0647 \u0648 \u0628\u0627 \u062f\u0648 \u0646\u0642\u0637\u0647 \u0645\u0634\u062e\u0635 \u0645\u06cc \u0634\u0648\u0646\u062f.<\/li>\n<li>\n<strong>\u0628\u062e\u0634 \u0647\u0627\u06cc \u062e\u0637:<\/strong> \u0628\u062e\u0634\u06cc \u0627\u0632 \u06cc\u06a9 \u062e\u0637 \u06a9\u0647 \u062a\u0648\u0633\u0637 \u062f\u0648 \u0646\u0642\u0637\u0647 \u067e\u0627\u06cc\u0627\u0646\u06cc \u062a\u0639\u0631\u06cc\u0641 \u0634\u062f\u0647 \u0627\u0633\u062a.<\/li>\n<li>\n<strong>\u0647\u0648\u0627\u067e\u06cc\u0645\u0627\u0647\u0627:<\/strong> \u0633\u0637\u0648\u062d \u0645\u0633\u0637\u062d \u06a9\u0647 \u0628\u06cc \u0646\u0647\u0627\u06cc\u062a \u062f\u0631 \u062f\u0648 \u0628\u0639\u062f \u06af\u0633\u062a\u0631\u0634 \u0645\u06cc \u06cc\u0627\u0628\u0646\u062f.<\/li>\n<\/ul>\n<p><strong>\u0628\u0631\u062f\u0627\u0631\u0647\u0627 \u0648 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u062f\u0627\u0631:<\/strong><\/p>\n<ul>\n<li>\n<strong>\u0628\u0631\u062f\u0627\u0631\u0647\u0627:<\/strong> \u06a9\u0645\u06cc\u062a \u0647\u0627 \u0631\u0627 \u0628\u0627 \u0642\u062f\u0631 \u0648 \u062c\u0647\u062a \u0646\u0645\u0627\u06cc\u0634 \u062f\u0647\u06cc\u062f.  \u0628\u0631\u0627\u06cc \u062a\u0648\u0635\u06cc\u0641 \u062a\u0631\u062c\u0645\u0647 \u0647\u0627 \u0648 \u062c\u0647\u062a \u0647\u0627 \u062f\u0631 \u0641\u0636\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<li>\n<strong>\u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u062f\u0627\u0631:<\/strong> \u0634\u0627\u0645\u0644 \u062c\u0645\u0639\u060c \u062a\u0641\u0631\u06cc\u0642\u060c \u062d\u0627\u0635\u0644 \u0636\u0631\u0628 \u0646\u0642\u0637\u0647 \u0627\u06cc\u060c \u0636\u0631\u0628\u062f\u0631\u06cc\u060c \u0648 \u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc.  \u0627\u06cc\u0646 \u0639\u0645\u0644\u06cc\u0627\u062a \u0628\u0631\u0627\u06cc \u0627\u0646\u062c\u0627\u0645 \u062a\u0628\u062f\u06cc\u0644\u0627\u062a \u0647\u0646\u062f\u0633\u06cc \u0648 \u0645\u062d\u0627\u0633\u0628\u0627\u062a \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<\/ul>\n<p><strong>\u062a\u0628\u062f\u06cc\u0644\u200c\u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u06cc \u067e\u0627\u06cc\u0647 (\u062a\u0631\u062c\u0645\u0647\u060c \u0686\u0631\u062e\u0634\u060c \u0645\u0642\u06cc\u0627\u0633\u200c\u0628\u0646\u062f\u06cc):<\/strong><\/p>\n<ul>\n<li>\n<strong>\u062a\u0631\u062c\u0645\u0647:<\/strong> \u062d\u0631\u06a9\u062a \u06cc\u06a9 \u0634\u06cc \u0647\u0646\u062f\u0633\u06cc \u0627\u0632 \u06cc\u06a9 \u0645\u06a9\u0627\u0646 \u0628\u0647 \u0645\u06a9\u0627\u0646 \u062f\u06cc\u06af\u0631 \u0628\u062f\u0648\u0646 \u062a\u063a\u06cc\u06cc\u0631 \u0634\u06a9\u0644 \u06cc\u0627 \u0627\u0646\u062f\u0627\u0632\u0647 \u0622\u0646.<\/li>\n<li>\n<strong>\u0686\u0631\u062e\u0634:<\/strong> \u0686\u0631\u062e\u0627\u0646\u062f\u0646 \u06cc\u06a9 \u062c\u0633\u0645 \u0628\u0647 \u062f\u0648\u0631 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u062b\u0627\u0628\u062a (\u06cc\u0627 \u0645\u0628\u062f\u0623) \u0628\u0627 \u0632\u0627\u0648\u06cc\u0647 \u0645\u0639\u06cc\u0646.<\/li>\n<li>\n<strong>\u0645\u0642\u06cc\u0627\u0633 \u0628\u0646\u062f\u06cc:<\/strong> \u062a\u063a\u06cc\u06cc\u0631 \u0627\u0646\u062f\u0627\u0632\u0647 \u06cc\u06a9 \u062c\u0633\u0645 \u0628\u0627 \u062d\u0641\u0638 \u0634\u06a9\u0644 \u0622\u0646\u060c \u0628\u0627 \u0628\u0632\u0631\u06af \u06a9\u0631\u062f\u0646 \u06cc\u0627 \u06a9\u0648\u0686\u06a9 \u06a9\u0631\u062f\u0646 \u0622\u0646.<\/li>\n<\/ul>\n<p><strong>\u0645\u062a\u0631\u06cc\u06a9 \u0648 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u0641\u0627\u0635\u0644\u0647:<\/strong><\/p>\n<ul>\n<li>\n<strong>\u0641\u0627\u0635\u0644\u0647 \u0627\u0642\u0644\u06cc\u062f\u0633\u06cc:<\/strong> \u0641\u0627\u0635\u0644\u0647 \u062e\u0637 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u06cc\u0646 \u062f\u0648 \u0646\u0642\u0637\u0647 \u062f\u0631 \u0641\u0636\u0627\u06cc \u0627\u0642\u0644\u06cc\u062f\u0633\u06cc.<\/li>\n<li>\n<strong>\u0641\u0627\u0635\u0644\u0647 \u0645\u0646\u0647\u062a\u0646:<\/strong> \u0641\u0627\u0635\u0644\u0647 \u0628\u06cc\u0646 \u062f\u0648 \u0646\u0642\u0637\u0647 \u062f\u0631 \u0627\u0645\u062a\u062f\u0627\u062f \u0645\u062d\u0648\u0631\u0647\u0627 \u062f\u0631 \u0632\u0627\u0648\u06cc\u0647 \u0642\u0627\u0626\u0645 \u0627\u0646\u062f\u0627\u0632\u0647 \u06af\u06cc\u0631\u06cc \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<li>\n<strong>\u0633\u0627\u06cc\u0631 \u0645\u0639\u06cc\u0627\u0631\u0647\u0627:<\/strong> \u0634\u0627\u0645\u0644 \u0641\u0627\u0635\u0644\u0647 \u0686\u0628\u06cc\u0634\u0641 \u0648 \u0641\u0627\u0635\u0644\u0647 \u0645\u06cc\u0646\u06a9\u0648\u0641\u0633\u06a9\u06cc \u0627\u0633\u062a \u06a9\u0647 \u062f\u0631 \u0632\u0645\u06cc\u0646\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0647\u0646\u062f\u0633\u06cc \u0648 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u0634\u0648\u062f.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D9%85%D9%88%D9%86%D9%87_%D9%87%D8%A7%DB%8C%DB%8C_%D8%A7%D8%B2_%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85_%D9%87%D8%A7%DB%8C_%D9%87%D9%86%D8%AF%D8%B3%D9%87_%D9%85%D8%AD%D8%A7%D8%B3%D8%A8%D8%A7%D8%AA%DB%8C\"><\/span>\n<p>  \u0646\u0645\u0648\u0646\u0647 \u0647\u0627\u06cc\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0634\u0627\u0645\u0644 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641\u06cc \u0628\u0631\u0627\u06cc \u062d\u0644 \u0645\u0648\u062b\u0631 \u0645\u0633\u0627\u0626\u0644 \u0647\u0646\u062f\u0633\u06cc \u0627\u0633\u062a.  \u062f\u0631 \u0627\u06cc\u0646\u062c\u0627 \u0646\u0645\u0648\u0646\u0647\u200c\u0647\u0627\u06cc\u06cc \u0627\u0632 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u200c\u0647\u0627\u06cc \u0631\u0627\u06cc\u062c \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u0634\u062f\u0647 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u067e\u0627\u0631\u0627\u062f\u0627\u06cc\u0645 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646:<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D9%86%D8%B2%D8%AF%DB%8C%DA%A9%D8%AA%D8%B1%DB%8C%D9%86_%D8%AC%D9%81%D8%AA_%D8%A7%D9%85%D8%AA%DB%8C%D8%A7%D8%B2_1D\"><\/span>\n<p>  <strong>\u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0627\u0645\u062a\u06cc\u0627\u0632 (1D)<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062f\u0631 \u06cc\u06a9 \u0628\u0639\u062f\u06cc\u060c \u06cc\u0627\u0641\u062a\u0646 \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0646\u0642\u0627\u0637 \u0631\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0631\u0648\u06cc\u06a9\u0631\u062f \u062a\u0642\u0633\u06cc\u0645 \u0648 \u063a\u0644\u0628\u0647 \u0628\u0647 \u0637\u0648\u0631 \u0645\u0648\u062b\u0631 \u0627\u0646\u062c\u0627\u0645 \u062f\u0627\u062f.  \u0627\u06cc\u062f\u0647 \u0627\u06cc\u0646 \u0627\u0633\u062a \u06a9\u0647 \u0646\u0642\u0627\u0637 \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062a \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0628\u0647 \u06af\u0631\u0648\u0647 \u0647\u0627\u06cc \u06a9\u0648\u0686\u06a9\u062a\u0631 \u062a\u0642\u0633\u06cc\u0645 \u06a9\u0646\u06cc\u062f \u0648 \u0646\u0632\u062f\u06cc\u06a9 \u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0631\u0627 \u062f\u0631 \u0647\u0631 \u06af\u0631\u0648\u0647 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u06cc\u062f.<\/p>\n<p><strong>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/strong>\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">closest_pair_1d<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">find_closest_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">):<\/span>\n        <span class=\"c1\"># Base case: If there are only two points, return them\n<\/span>        <span class=\"k\">if<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">2<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">return<\/span> <span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span>\n        <span class=\"c1\"># Base case: If there are three points, return the closest pair\n<\/span>        <span class=\"k\">if<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">3<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nf\">min<\/span><span class=\"p\">(<\/span>\n                <span class=\"p\">((<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]),<\/span>\n                 <span class=\"p\">(<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">2<\/span><span class=\"p\">]),<\/span>\n                 <span class=\"p\">(<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">2<\/span><span class=\"p\">])),<\/span>\n                <span class=\"n\">key<\/span><span class=\"o\">=<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">pair<\/span><span class=\"p\">:<\/span> <span class=\"nf\">abs<\/span><span class=\"p\">(<\/span><span class=\"n\">pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span>\n            <span class=\"p\">)<\/span>\n        <span class=\"c1\"># Divide the points into two halves\n<\/span>        <span class=\"n\">mid<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">)<\/span> <span class=\"o\">\/\/<\/span> <span class=\"mi\">2<\/span>\n        <span class=\"n\">left_half<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sorted_points<\/span><span class=\"p\">[:<\/span><span class=\"n\">mid<\/span><span class=\"p\">]<\/span>\n        <span class=\"n\">right_half<\/span> <span class=\"o\">=<\/span> <span class=\"n\">sorted_points<\/span><span class=\"p\">[<\/span><span class=\"n\">mid<\/span><span class=\"p\">:]<\/span>\n        <span class=\"c1\"># Find the closest pair in each half\n<\/span>        <span class=\"n\">closest_pair_left<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">find_closest_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">left_half<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">closest_pair_right<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">find_closest_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">right_half<\/span><span class=\"p\">)<\/span>\n        <span class=\"c1\"># Find the closest pair across the split\n<\/span>        <span class=\"n\">closest_pair_split<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">left_half<\/span><span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">right_half<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span>\n        <span class=\"c1\"># Return the overall closest pair\n<\/span>        <span class=\"k\">return<\/span> <span class=\"nf\">min<\/span><span class=\"p\">(<\/span><span class=\"n\">closest_pair_left<\/span><span class=\"p\">,<\/span> <span class=\"n\">closest_pair_right<\/span><span class=\"p\">,<\/span> <span class=\"n\">closest_pair_split<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"o\">=<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">pair<\/span><span class=\"p\">:<\/span> <span class=\"nf\">abs<\/span><span class=\"p\">(<\/span><span class=\"n\">pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]))<\/span>\n\n    <span class=\"k\">if<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)<\/span> <span class=\"o\">&lt;<\/span> <span class=\"mi\">2<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">raise<\/span> <span class=\"nc\">ValueError<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">At least two points are required<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n    <span class=\"c1\"># Sort the points\n<\/span>    <span class=\"n\">sorted_points<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">sorted<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)<\/span>\n    <span class=\"c1\"># Find the closest pair using divide and conquer\n<\/span>    <span class=\"k\">return<\/span> <span class=\"nf\">find_closest_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">sorted_points<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Example usage\n<\/span><span class=\"n\">points<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">7<\/span><span class=\"p\">,<\/span> <span class=\"mi\">9<\/span><span class=\"p\">,<\/span> <span class=\"mi\">11<\/span><span class=\"p\">]<\/span>\n<span class=\"n\">closest_points<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">closest_pair_1d<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"s\">The closest pair of points is: <\/span><span class=\"si\">{<\/span><span class=\"n\">closest_points<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"%D9%86%D8%B2%D8%AF%DB%8C%DA%A9%D8%AA%D8%B1%DB%8C%D9%86_%D8%AC%D9%81%D8%AA_%D8%A7%D9%85%D8%AA%DB%8C%D8%A7%D8%B2_2_%D8%A8%D8%B9%D8%AF%DB%8C\"><\/span>\n<p>  <strong>\u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0627\u0645\u062a\u06cc\u0627\u0632 (2 \u0628\u0639\u062f\u06cc)<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u062f\u0631 \u062f\u0648 \u0628\u0639\u062f\u06cc\u060c \u0645\u0633\u0626\u0644\u0647 \u0646\u0632\u062f\u06cc\u06a9\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u0646\u0642\u0637\u0647 \u067e\u06cc\u0686\u06cc\u062f\u0647 \u062a\u0631 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u0645\u0631\u062a\u0628\u200c\u0633\u0627\u0632\u06cc \u0646\u0642\u0627\u0637 \u0648 \u06cc\u0627\u0641\u062a\u0646 \u0628\u0627\u0632\u06af\u0634\u062a\u06cc \u0646\u0632\u062f\u06cc\u06a9\u200c\u062a\u0631\u06cc\u0646 \u062c\u0641\u062a \u062f\u0631 \u0628\u062e\u0634\u200c\u0647\u0627\u06cc \u062a\u0642\u0633\u06cc\u0645\u200c\u0634\u062f\u0647\u060c \u0633\u067e\u0633 \u0628\u0631\u0631\u0633\u06cc \u062f\u0631 \u0633\u0631\u0627\u0633\u0631 \u0645\u0631\u0632 \u062a\u0642\u0633\u06cc\u0645 \u0645\u06cc\u200c\u0634\u0648\u062f.<\/p>\n<p><strong>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/strong>\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">import<\/span> <span class=\"n\">math<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">distance<\/span><span class=\"p\">(<\/span><span class=\"n\">point1<\/span><span class=\"p\">,<\/span> <span class=\"n\">point2<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">math<\/span><span class=\"p\">.<\/span><span class=\"nf\">sqrt<\/span><span class=\"p\">((<\/span><span class=\"n\">point1<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">point2<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span> <span class=\"o\">**<\/span> <span class=\"mi\">2<\/span> <span class=\"o\">+<\/span> <span class=\"p\">(<\/span><span class=\"n\">point1<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">point2<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span> <span class=\"o\">**<\/span> <span class=\"mi\">2<\/span><span class=\"p\">)<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">closest_pair_2d<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">):<\/span>\n    <span class=\"k\">def<\/span> <span class=\"nf\">closest_pair_recursive<\/span><span class=\"p\">(<\/span><span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">,<\/span> <span class=\"n\">points_sorted_by_y<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">n<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"k\">if<\/span> <span class=\"n\">n<\/span> <span class=\"o\">&lt;=<\/span> <span class=\"mi\">3<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">return<\/span> <span class=\"nf\">brute_force_closest_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"n\">mid<\/span> <span class=\"o\">=<\/span> <span class=\"n\">n<\/span> <span class=\"o\">\/\/<\/span> <span class=\"mi\">2<\/span>\n        <span class=\"n\">left_half_x<\/span> <span class=\"o\">=<\/span> <span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">[:<\/span><span class=\"n\">mid<\/span><span class=\"p\">]<\/span>\n        <span class=\"n\">right_half_x<\/span> <span class=\"o\">=<\/span> <span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">[<\/span><span class=\"n\">mid<\/span><span class=\"p\">:]<\/span>\n\n        <span class=\"n\">midpoint<\/span> <span class=\"o\">=<\/span> <span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">[<\/span><span class=\"n\">mid<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\n        <span class=\"n\">left_half_y<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">list<\/span><span class=\"p\">(<\/span><span class=\"nf\">filter<\/span><span class=\"p\">(<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">x<\/span><span class=\"p\">:<\/span> <span class=\"n\">x<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">&lt;=<\/span> <span class=\"n\">midpoint<\/span><span class=\"p\">,<\/span> <span class=\"n\">points_sorted_by_y<\/span><span class=\"p\">))<\/span>\n        <span class=\"n\">right_half_y<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">list<\/span><span class=\"p\">(<\/span><span class=\"nf\">filter<\/span><span class=\"p\">(<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">x<\/span><span class=\"p\">:<\/span> <span class=\"n\">x<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">&gt;<\/span> <span class=\"n\">midpoint<\/span><span class=\"p\">,<\/span> <span class=\"n\">points_sorted_by_y<\/span><span class=\"p\">))<\/span>\n\n        <span class=\"p\">(<\/span><span class=\"n\">p1<\/span><span class=\"p\">,<\/span> <span class=\"n\">q1<\/span><span class=\"p\">,<\/span> <span class=\"n\">d1<\/span><span class=\"p\">)<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">closest_pair_recursive<\/span><span class=\"p\">(<\/span><span class=\"n\">left_half_x<\/span><span class=\"p\">,<\/span> <span class=\"n\">left_half_y<\/span><span class=\"p\">)<\/span>\n        <span class=\"p\">(<\/span><span class=\"n\">p2<\/span><span class=\"p\">,<\/span> <span class=\"n\">q2<\/span><span class=\"p\">,<\/span> <span class=\"n\">d2<\/span><span class=\"p\">)<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">closest_pair_recursive<\/span><span class=\"p\">(<\/span><span class=\"n\">right_half_x<\/span><span class=\"p\">,<\/span> <span class=\"n\">right_half_y<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"k\">if<\/span> <span class=\"n\">d1<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">d2<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">d<\/span> <span class=\"o\">=<\/span> <span class=\"n\">d1<\/span>\n            <span class=\"n\">min_pair<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">p1<\/span><span class=\"p\">,<\/span> <span class=\"n\">q1<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">d<\/span> <span class=\"o\">=<\/span> <span class=\"n\">d2<\/span>\n            <span class=\"n\">min_pair<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">p2<\/span><span class=\"p\">,<\/span> <span class=\"n\">q2<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"p\">(<\/span><span class=\"n\">p3<\/span><span class=\"p\">,<\/span> <span class=\"n\">q3<\/span><span class=\"p\">,<\/span> <span class=\"n\">d3<\/span><span class=\"p\">)<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">closest_split_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">,<\/span> <span class=\"n\">points_sorted_by_y<\/span><span class=\"p\">,<\/span> <span class=\"n\">d<\/span><span class=\"p\">,<\/span> <span class=\"n\">min_pair<\/span><span class=\"p\">)<\/span>\n\n        <span class=\"k\">if<\/span> <span class=\"n\">d3<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">d<\/span><span class=\"p\">:<\/span>\n            <span class=\"nf\">return <\/span><span class=\"p\">(<\/span><span class=\"n\">p3<\/span><span class=\"p\">,<\/span> <span class=\"n\">q3<\/span><span class=\"p\">,<\/span> <span class=\"n\">d3<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">return<\/span> <span class=\"n\">min_pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">min_pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">d<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">brute_force_closest_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">min_dist<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">float<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">inf<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">p1<\/span> <span class=\"o\">=<\/span> <span class=\"bp\">None<\/span>\n        <span class=\"n\">p2<\/span> <span class=\"o\">=<\/span> <span class=\"bp\">None<\/span>\n        <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"ow\">in<\/span> <span class=\"nf\">range<\/span><span class=\"p\">(<\/span><span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)):<\/span>\n            <span class=\"k\">for<\/span> <span class=\"n\">j<\/span> <span class=\"ow\">in<\/span> <span class=\"nf\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)):<\/span>\n                <span class=\"n\">d<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">distance<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">],<\/span> <span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"n\">j<\/span><span class=\"p\">])<\/span>\n                <span class=\"k\">if<\/span> <span class=\"n\">d<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">min_dist<\/span><span class=\"p\">:<\/span>\n                    <span class=\"n\">min_dist<\/span> <span class=\"o\">=<\/span> <span class=\"n\">d<\/span>\n                    <span class=\"n\">p1<\/span><span class=\"p\">,<\/span> <span class=\"n\">p2<\/span> <span class=\"o\">=<\/span> <span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">],<\/span> <span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"n\">j<\/span><span class=\"p\">]<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">p1<\/span><span class=\"p\">,<\/span> <span class=\"n\">p2<\/span><span class=\"p\">,<\/span> <span class=\"n\">min_dist<\/span>\n\n    <span class=\"k\">def<\/span> <span class=\"nf\">closest_split_pair<\/span><span class=\"p\">(<\/span><span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">,<\/span> <span class=\"n\">points_sorted_by_y<\/span><span class=\"p\">,<\/span> <span class=\"n\">delta<\/span><span class=\"p\">,<\/span> <span class=\"n\">best_pair<\/span><span class=\"p\">):<\/span>\n        <span class=\"n\">n<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">mid_x<\/span> <span class=\"o\">=<\/span> <span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">[<\/span><span class=\"n\">n<\/span> <span class=\"o\">\/\/<\/span> <span class=\"mi\">2<\/span><span class=\"p\">][<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\n\n        <span class=\"n\">Sy<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">point<\/span> <span class=\"k\">for<\/span> <span class=\"n\">point<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">points_sorted_by_y<\/span> <span class=\"k\">if<\/span> <span class=\"n\">mid_x<\/span> <span class=\"o\">-<\/span> <span class=\"n\">delta<\/span> <span class=\"o\">&lt;=<\/span> <span class=\"n\">point<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">&lt;=<\/span> <span class=\"n\">mid_x<\/span> <span class=\"o\">+<\/span> <span class=\"n\">delta<\/span><span class=\"p\">]<\/span>\n\n        <span class=\"n\">best<\/span> <span class=\"o\">=<\/span> <span class=\"n\">delta<\/span>\n        <span class=\"n\">len_Sy<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">Sy<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">for<\/span> <span class=\"n\">i<\/span> <span class=\"ow\">in<\/span> <span class=\"nf\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">len_Sy<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">1<\/span><span class=\"p\">):<\/span>\n            <span class=\"k\">for<\/span> <span class=\"n\">j<\/span> <span class=\"ow\">in<\/span> <span class=\"nf\">range<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"nf\">min<\/span><span class=\"p\">(<\/span><span class=\"n\">i<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">7<\/span><span class=\"p\">,<\/span> <span class=\"n\">len_Sy<\/span><span class=\"p\">)):<\/span>\n                <span class=\"n\">p<\/span><span class=\"p\">,<\/span> <span class=\"n\">q<\/span> <span class=\"o\">=<\/span> <span class=\"n\">Sy<\/span><span class=\"p\">[<\/span><span class=\"n\">i<\/span><span class=\"p\">],<\/span> <span class=\"n\">Sy<\/span><span class=\"p\">[<\/span><span class=\"n\">j<\/span><span class=\"p\">]<\/span>\n                <span class=\"n\">dst<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">distance<\/span><span class=\"p\">(<\/span><span class=\"n\">p<\/span><span class=\"p\">,<\/span> <span class=\"n\">q<\/span><span class=\"p\">)<\/span>\n                <span class=\"k\">if<\/span> <span class=\"n\">dst<\/span> <span class=\"o\">&lt;<\/span> <span class=\"n\">best<\/span><span class=\"p\">:<\/span>\n                    <span class=\"n\">best<\/span> <span class=\"o\">=<\/span> <span class=\"n\">dst<\/span>\n                    <span class=\"n\">best_pair<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">p<\/span><span class=\"p\">,<\/span> <span class=\"n\">q<\/span><span class=\"p\">)<\/span>\n        <span class=\"k\">return<\/span> <span class=\"n\">best_pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">best_pair<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">best<\/span>\n\n    <span class=\"n\">points_sorted_by_x<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">sorted<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"o\">=<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">x<\/span><span class=\"p\">:<\/span> <span class=\"n\">x<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span>\n    <span class=\"n\">points_sorted_by_y<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">sorted<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"o\">=<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">x<\/span><span class=\"p\">:<\/span> <span class=\"n\">x<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\n\n    <span class=\"n\">p1<\/span><span class=\"p\">,<\/span> <span class=\"n\">p2<\/span><span class=\"p\">,<\/span> <span class=\"n\">min_dist<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">closest_pair_recursive<\/span><span class=\"p\">(<\/span><span class=\"n\">points_sorted_by_x<\/span><span class=\"p\">,<\/span> <span class=\"n\">points_sorted_by_y<\/span><span class=\"p\">)<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">p1<\/span><span class=\"p\">,<\/span> <span class=\"n\">p2<\/span><span class=\"p\">,<\/span> <span class=\"n\">min_dist<\/span>\n\n<span class=\"c1\"># Example usage\n<\/span><span class=\"n\">points<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">3<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">12<\/span><span class=\"p\">,<\/span> <span class=\"mi\">30<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">40<\/span><span class=\"p\">,<\/span> <span class=\"mi\">50<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">12<\/span><span class=\"p\">,<\/span> <span class=\"mi\">10<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">3<\/span><span class=\"p\">,<\/span> <span class=\"mi\">4<\/span><span class=\"p\">)]<\/span>\n<span class=\"n\">closest_points<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">closest_pair_2d<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)<\/span>\n<span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sa\">f<\/span><span class=\"sh\">\"<\/span><span class=\"s\">The closest pair of points is: <\/span><span class=\"si\">{<\/span><span class=\"n\">closest_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span><span class=\"si\">}<\/span><span class=\"s\"> and <\/span><span class=\"si\">{<\/span><span class=\"n\">closest_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span><span class=\"si\">}<\/span><span class=\"s\"> with a distance of <\/span><span class=\"si\">{<\/span><span class=\"n\">closest_points<\/span><span class=\"p\">[<\/span><span class=\"mi\">2<\/span><span class=\"p\">]<\/span><span class=\"si\">}<\/span><span class=\"sh\">\"<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%DA%A9%D9%86_%DA%AF%D8%B1%D8%A7%D9%87%D8%A7%D9%85_%D9%87%D8%A7%D9%84_%D9%85%D8%AD%D8%AF%D8%A8\"><\/span>\n<p>  <strong>\u0627\u0633\u06a9\u0646 \u06af\u0631\u0627\u0647\u0627\u0645 (\u0647\u0627\u0644 \u0645\u062d\u062f\u0628)<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u06af\u0631\u0627\u0647\u0627\u0645 \u0627\u0633\u06a9\u0646 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u06cc \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0628\u062f\u0646\u0647 \u0645\u062d\u062f\u0628 \u0645\u062c\u0645\u0648\u0639\u0647 \u0627\u06cc \u0627\u0632 \u0646\u0642\u0627\u0637 \u0628\u0647 \u0635\u0648\u0631\u062a \u062f\u0648 \u0628\u0639\u062f\u06cc \u0627\u0633\u062a.  \u0646\u0642\u0627\u0637 \u0631\u0627 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0632\u0627\u0648\u06cc\u0647 \u0642\u0637\u0628\u06cc \u0646\u0633\u0628\u062a \u0628\u0647 \u06cc\u06a9 \u0645\u062d\u0648\u0631 \u0645\u0631\u062a\u0628 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u0633\u067e\u0633 \u0628\u062f\u0646\u0647 \u0645\u062d\u062f\u0628 \u0631\u0627 \u0645\u06cc \u0633\u0627\u0632\u062f.<\/p>\n<p><strong>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/strong>\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">import<\/span> <span class=\"n\">math<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">graham_scan<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">):<\/span>\n    <span class=\"c1\"># Find the point with the lowest y-coordinate, break ties by x-coordinate\n<\/span>    <span class=\"n\">pivot<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">min<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"o\">=<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">p<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]))<\/span>\n    <span class=\"n\">points<\/span><span class=\"p\">.<\/span><span class=\"nf\">remove<\/span><span class=\"p\">(<\/span><span class=\"n\">pivot<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\"># Sort the points based on polar angle with the pivot\n<\/span>    <span class=\"n\">points<\/span><span class=\"p\">.<\/span><span class=\"nf\">sort<\/span><span class=\"p\">(<\/span><span class=\"n\">key<\/span><span class=\"o\">=<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">p<\/span><span class=\"p\">:<\/span> <span class=\"p\">(<\/span><span class=\"n\">math<\/span><span class=\"p\">.<\/span><span class=\"nf\">atan2<\/span><span class=\"p\">(<\/span><span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">pivot<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">pivot<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]),<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]))<\/span>\n\n    <span class=\"c1\"># Add the pivot back to the beginning\n<\/span>    <span class=\"n\">points<\/span><span class=\"p\">.<\/span><span class=\"nf\">insert<\/span><span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"n\">pivot<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"c1\"># Initialize the hull with the first two points\n<\/span>    <span class=\"n\">hull<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[<\/span><span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">],<\/span> <span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]]<\/span>\n\n    <span class=\"k\">for<\/span> <span class=\"n\">p<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"mi\">2<\/span><span class=\"p\">:]:<\/span>\n        <span class=\"k\">while<\/span> <span class=\"nf\">len<\/span><span class=\"p\">(<\/span><span class=\"n\">hull<\/span><span class=\"p\">)<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">1<\/span> <span class=\"ow\">and<\/span> <span class=\"nf\">orientation<\/span><span class=\"p\">(<\/span><span class=\"n\">hull<\/span><span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mi\">2<\/span><span class=\"p\">],<\/span> <span class=\"n\">hull<\/span><span class=\"p\">[<\/span><span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">],<\/span> <span class=\"n\">p<\/span><span class=\"p\">)<\/span> <span class=\"o\">!=<\/span> <span class=\"mi\">2<\/span><span class=\"p\">:<\/span>\n            <span class=\"n\">hull<\/span><span class=\"p\">.<\/span><span class=\"nf\">pop<\/span><span class=\"p\">()<\/span>\n        <span class=\"n\">hull<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">p<\/span><span class=\"p\">)<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"n\">hull<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">orientation<\/span><span class=\"p\">(<\/span><span class=\"n\">p<\/span><span class=\"p\">,<\/span> <span class=\"n\">q<\/span><span class=\"p\">,<\/span> <span class=\"n\">r<\/span><span class=\"p\">):<\/span>\n    <span class=\"c1\"># Function to find the orientation of the triplet (p, q, r)\n<\/span>    <span class=\"c1\"># 0 -&gt; p, q, and r are collinear\n<\/span>    <span class=\"c1\"># 1 -&gt; Clockwise\n<\/span>    <span class=\"c1\"># 2 -&gt; Counterclockwise\n<\/span>    <span class=\"n\">val<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span> <span class=\"o\">*<\/span> <span class=\"p\">(<\/span><span class=\"n\">r<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span> <span class=\"o\">-<\/span> <span class=\"p\">(<\/span><span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span> <span class=\"o\">*<\/span> <span class=\"p\">(<\/span><span class=\"n\">r<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">val<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"mi\">0<\/span>\n    <span class=\"k\">elif<\/span> <span class=\"n\">val<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"mi\">1<\/span>\n    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"mi\">2<\/span>\n\n<span class=\"c1\"># Sample points\n<\/span><span class=\"n\">points<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mf\">0.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mf\">2.5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">)]<\/span>\n\n<span class=\"c1\"># Call the function\n<\/span><span class=\"n\">convex_hull<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">graham_scan<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Print the result\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Convex Hull:<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">convex_hull<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"%D8%AC%D8%A7%D8%B1%D9%88%DB%8C%D8%B3_%D9%85%D8%A7%D8%B1%DA%86_%DA%A9%D8%A7%D8%AF%D9%88%D9%BE%DB%8C%DA%86_%DA%A9%D8%A7%D8%B3%D9%87_%D9%85%D8%AD%D8%AF%D8%A8\"><\/span>\n<p>  <strong>\u062c\u0627\u0631\u0648\u06cc\u0633 \u0645\u0627\u0631\u0686 (\u06a9\u0627\u062f\u0648\u067e\u06cc\u0686) (\u06a9\u0627\u0633\u0647 \u0645\u062d\u062f\u0628)<\/strong><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Jarvis March (Gift Wrapping) \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u062f\u06cc\u06af\u0631\u06cc \u0628\u0631\u0627\u06cc \u06cc\u0627\u0641\u062a\u0646 \u0628\u062f\u0646\u0647 \u0645\u062d\u062f\u0628 \u0627\u0633\u062a.  \u0627\u0632 \u0633\u0645\u062a \u0686\u067e \u062a\u0631\u06cc\u0646 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0645\u06cc \u0634\u0648\u062f \u0648 \u062f\u0648\u0631 \u0646\u0642\u0627\u0637 \u0645\u06cc \u067e\u06cc\u0686\u062f \u062a\u0627 \u0628\u062f\u0646\u0647 \u0631\u0627 \u067e\u06cc\u062f\u0627 \u06a9\u0646\u062f.<\/p>\n<p><strong>\u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u067e\u0627\u06cc\u062a\u0648\u0646:<\/strong>\n<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"k\">def<\/span> <span class=\"nf\">gift_wrapping<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">):<\/span>\n    <span class=\"n\">hull<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[]<\/span>\n    <span class=\"n\">start<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">min<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">,<\/span> <span class=\"n\">key<\/span><span class=\"o\">=<\/span><span class=\"k\">lambda<\/span> <span class=\"n\">p<\/span><span class=\"p\">:<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span>  <span class=\"c1\"># Find the leftmost point\n<\/span>    <span class=\"n\">on_hull<\/span> <span class=\"o\">=<\/span> <span class=\"n\">start<\/span>\n    <span class=\"k\">while<\/span> <span class=\"bp\">True<\/span><span class=\"p\">:<\/span>\n        <span class=\"n\">hull<\/span><span class=\"p\">.<\/span><span class=\"nf\">append<\/span><span class=\"p\">(<\/span><span class=\"n\">on_hull<\/span><span class=\"p\">)<\/span>\n        <span class=\"n\">next_point<\/span> <span class=\"o\">=<\/span> <span class=\"n\">points<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span>\n        <span class=\"k\">for<\/span> <span class=\"n\">p<\/span> <span class=\"ow\">in<\/span> <span class=\"n\">points<\/span><span class=\"p\">:<\/span>\n            <span class=\"nf\">if <\/span><span class=\"p\">(<\/span><span class=\"n\">next_point<\/span> <span class=\"o\">==<\/span> <span class=\"n\">on_hull<\/span><span class=\"p\">)<\/span> <span class=\"ow\">or<\/span> <span class=\"p\">(<\/span><span class=\"nf\">orientation<\/span><span class=\"p\">(<\/span><span class=\"n\">on_hull<\/span><span class=\"p\">,<\/span> <span class=\"n\">next_point<\/span><span class=\"p\">,<\/span> <span class=\"n\">p<\/span><span class=\"p\">)<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">2<\/span><span class=\"p\">):<\/span>\n                <span class=\"n\">next_point<\/span> <span class=\"o\">=<\/span> <span class=\"n\">p<\/span>\n        <span class=\"n\">on_hull<\/span> <span class=\"o\">=<\/span> <span class=\"n\">next_point<\/span>\n        <span class=\"k\">if<\/span> <span class=\"n\">on_hull<\/span> <span class=\"o\">==<\/span> <span class=\"n\">start<\/span><span class=\"p\">:<\/span>\n            <span class=\"k\">break<\/span>\n    <span class=\"k\">return<\/span> <span class=\"n\">hull<\/span>\n\n<span class=\"k\">def<\/span> <span class=\"nf\">orientation<\/span><span class=\"p\">(<\/span><span class=\"n\">p<\/span><span class=\"p\">,<\/span> <span class=\"n\">q<\/span><span class=\"p\">,<\/span> <span class=\"n\">r<\/span><span class=\"p\">):<\/span>\n    <span class=\"c1\"># Function to find the orientation of the triplet (p, q, r)\n<\/span>    <span class=\"c1\"># 0 -&gt; p\n<\/span>\n<span class=\"p\">,<\/span> <span class=\"n\">q<\/span><span class=\"p\">,<\/span> <span class=\"ow\">and<\/span> <span class=\"n\">r<\/span> <span class=\"n\">are<\/span> <span class=\"n\">collinear<\/span>\n    <span class=\"c1\"># 1 -&gt; Clockwise\n<\/span>    <span class=\"c1\"># 2 -&gt; Counterclockwise\n<\/span>    <span class=\"n\">val<\/span> <span class=\"o\">=<\/span> <span class=\"p\">(<\/span><span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span> <span class=\"o\">*<\/span> <span class=\"p\">(<\/span><span class=\"n\">r<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span> <span class=\"o\">-<\/span> <span class=\"p\">(<\/span><span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">p<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span> <span class=\"o\">*<\/span> <span class=\"p\">(<\/span><span class=\"n\">r<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">]<\/span> <span class=\"o\">-<\/span> <span class=\"n\">q<\/span><span class=\"p\">[<\/span><span class=\"mi\">1<\/span><span class=\"p\">])<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">val<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"mi\">0<\/span>\n    <span class=\"k\">elif<\/span> <span class=\"n\">val<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"mi\">1<\/span>\n    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n        <span class=\"k\">return<\/span> <span class=\"mi\">2<\/span>\n\n<span class=\"c1\"># Sample points\n<\/span><span class=\"n\">points<\/span> <span class=\"o\">=<\/span> <span class=\"p\">[(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">1<\/span><span class=\"p\">,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">2<\/span><span class=\"p\">,<\/span> <span class=\"mi\">0<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mi\">0<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mf\">0.5<\/span><span class=\"p\">,<\/span> <span class=\"mf\">2.5<\/span><span class=\"p\">),<\/span> <span class=\"p\">(<\/span><span class=\"mf\">2.5<\/span><span class=\"p\">,<\/span> <span class=\"mi\">2<\/span><span class=\"p\">)]<\/span>\n\n<span class=\"c1\"># Call the function\n<\/span><span class=\"n\">convex_hull<\/span> <span class=\"o\">=<\/span> <span class=\"nf\">gift_wrapping<\/span><span class=\"p\">(<\/span><span class=\"n\">points<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Print the result\n<\/span><span class=\"nf\">print<\/span><span class=\"p\">(<\/span><span class=\"sh\">\"<\/span><span class=\"s\">Convex Hull:<\/span><span class=\"sh\">\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">convex_hull<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<\/div>\n<p>\u0627\u06cc\u0646 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u0647\u0627 \u06cc\u06a9 \u0646\u0642\u0637\u0647 \u0634\u0631\u0648\u0639 \u0639\u0645\u0644\u06cc \u0628\u0631\u0627\u06cc \u06a9\u0627\u0648\u0634 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0645\u0642\u062f\u0645\u0647 \u0627\u06cc \u0628\u0631 \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0645\u0627\u0644\u06cc \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc: \u0647\u0646\u062f\u0633\u0647 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0634\u0627\u062e\u0647 \u0627\u06cc \u0627\u0632 \u0639\u0644\u0648\u0645 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631 \u0648 \u0631\u06cc\u0627\u0636\u06cc\u0627\u062a \u0627\u0633\u062a \u06a9\u0647 \u0628\u0647 \u0645\u0637\u0627\u0644\u0639\u0647 \u0627\u062c\u0633\u0627\u0645 \u0647\u0646\u062f\u0633\u06cc \u0648 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0622\u0646\u0647\u0627 \u0645\u06cc \u067e\u0631\u062f\u0627\u0632\u062f. \u0627\u06cc\u0646 \u0634\u0627\u0645\u0644 \u062d\u0644 \u0645\u0633\u0627\u0626\u0644 \u0647\u0646\u062f\u0633\u06cc \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u06a9\u0646\u06cc\u06a9 \u0647\u0627\u06cc \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u06cc \u0627\u0633\u062a \u0648 \u0628\u0631\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u0647\u0627\u06cc &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-71944","post","type-post","status-publish","format-standard","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/71944","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=71944"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/71944\/revisions"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=71944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=71944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=71944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}