Bao lồi của điểm nguyên
Dựng bao lồi ngược chiều kim đồng hồ từ tối đa 1000 điểm nguyên, bắt đầu ở điểm nhỏ nhất theo thứ tự từ điển.
def convex_hull(points):
if type(points) is not list or len(points) > 1000:
raise ValueError("hull.input")
if any(type(p) not in (tuple, list) or len(p) != 2 or
any(type(v) is not int for v in p) for p in points):
raise ValueError("hull.point")
ordered = sorted(set(map(tuple, points)))
if len(ordered) <= 1:
return ordered
def turn(a,b,c):
return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
def chain(sequence):
out = []
for p in sequence:
while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
out.pop()
out.append(p)
return out
return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]- Dự án
- Thử đầu vào rỗng, trùng và thẳng hàng, chỉ giữ đầu mút ngoài cùng và từ chối tọa độ phân số.
- Kiểm tra trước khi áp dụng
- So sánh hành vi thực tế với kết quả mong đợi. Nếu kiểm tra thất bại, tìm nguyên nhân trước khi sửa tiếp.
- Mô hình
- Cấu hình endpoint tương thích OpenAI hoặc Anthropic bằng URL cơ sở và khóa API nếu cần. Kiểm tra kết nối. Máy chủ mô hình cục bộ phải đang chạy; công cụ từ xa có thể truyền dữ liệu riêng.
def convex_hull(points):
if type(points) is not list or len(points) > 1000:
raise ValueError("hull.input")
if any(type(p) not in (tuple, list) or len(p) != 2 or
any(type(v) is not int for v in p) for p in points):
raise ValueError("hull.point")
ordered = sorted(set(map(tuple, points)))
if len(ordered) <= 1:
return ordered
def turn(a,b,c):
return (b[0]-a[0])*(c[1]-a[1])-(b[1]-a[1])*(c[0]-a[0])
def chain(sequence):
out = []
for p in sequence:
while len(out) >= 2 and turn(out[-2],out[-1],p) <= 0:
out.pop()
out.append(p)
return out
return chain(ordered)[:-1]+chain(reversed(ordered))[:-1]Kết nối thay đổi hình học với ứng dụng sử dụng chúng
Mã hình học dễ rà soát hơn khi đầu ra cần có được nêu bằng yêu cầu ứng dụng. Hullspring là không gian lập trình AI trên Windows để xử lý yêu cầu đó khi dự án đang mở. Yêu cầu mô hình kết nối xem phép tính liên quan và các nơi sử dụng trước khi đề xuất sửa đổi, để đề xuất đáp ứng hành vi thực tế thay vì chỉ sắp xếp lại công thức.
Ví dụ, công cụ chọn có thể dùng đường bao ngoài quanh một tập điểm. Yêu cầu rà soát ảnh hưởng của điểm trùng và thẳng hàng đến đường bao, đồng thời giải thích điểm trung gian trên cạnh có thuộc kết quả không. Kèm nơi gọi kết xuất và dữ liệu kiểm thử tiêu biểu. Điều này cho trợ lý tác vụ cụ thể mà không giả định Hullspring tích hợp công cụ chọn nào.
Rà soát bản vá được đề xuất về thứ tự đầu ra, kiểm tra đầu vào, trường hợp rỗng và hình thông thường. Chạy dự án với một hàng điểm, tọa độ lặp và đa giác nhỏ. So sánh dãy trả về với kỳ vọng của nơi sử dụng; tập điểm hình học đúng vẫn có thể hiển thị sai khi quy ước thứ tự hoặc khép kín khác nhau.
Hullspring hỗ trợ kết nối mô hình qua điểm cuối tương thích OpenAI hoặc Anthropic. Có thể chọn mô hình AI abliterated ở nơi có cung cấp, nhưng dịch vụ đó quyết định hạn chế, dung lượng ngữ cảnh và công cụ. Dùng cuộc trao đổi để làm rõ lựa chọn triển khai và giữ việc kiểm chứng dựa trên dữ liệu kiểm thử của dự án.
Chuẩn bị yêu cầu bảo trì mã hình học
- Có nên giữ các điểm thẳng hàng trên cạnh trong đường bao không?
Nêu yêu cầu của nơi sử dụng. Một số trường hợp chỉ cần đỉnh ngoài cùng, số khác giữ điểm trung gian. Yêu cầu mô hình xem quy ước hiện tại và nêu rõ mọi thay đổi chính sách trong cả đề xuất lẫn kiểm thử.
- Vì sao kèm mã kết xuất khi rà soát phép tính?
Mã đó có thể cần thứ tự duyệt cụ thể hoặc đỉnh khép kín lặp lại. Phép tính có thể trả đúng các điểm nhưng vi phạm giao diện ấy. Xem nơi sử dụng giúp tránh việc sửa cục bộ gây lỗi hiển thị trở lại.
- Dữ liệu kiểm thử nào nhanh chóng làm lộ giả định?
Dùng tập rỗng, một điểm, điểm trùng, đường thẳng và đa giác nhỏ có điểm bên trong. Viết quy ước đầu ra mong đợi cho từng trường hợp. Chạy trong dự án thay vì chỉ dựa vào hình vẽ.
- Bản vá có thể tiện thể mở rộng kiểu tọa độ được chấp nhận không?
Coi đó là thay đổi quy ước riêng. Biểu diễn số khác nhau có thể ảnh hưởng so sánh và kiểm tra hợp lệ. Hỏi vì sao cần mở rộng và kiểm tra nơi gọi trước khi chấp nhận nó trong một sửa đổi hình học vốn có phạm vi hẹp.
Hullspring · Cập nhật 2026-10-25