Hãy xem xét tam giác đều cạnh chuẩn, với các nút được dán nhãn bằng tọa độ nhị phân :
Chúng ta có thể biến tam giác 3 nút này thành tam giác 6 nút bằng cách thêm một dòng mới gồm 3 đỉnh (nhiều hơn một đỉnh của một cạnh của tam giác 3 nút ban đầu), loại bỏ bất kỳ cạnh bên trong (nhưng không phải các nút bên trong) và re- bình thường hóa tọa độ:
Lặp lại quá trình để đi từ tam giác 6 nút sang tam giác 10 nút, thêm một dòng gồm 4 đỉnh (một lần nữa, một lần nữa hiện diện trên một cạnh của tam giác 6 nút ban đầu), loại bỏ bất kỳ cạnh bên trong (nhưng không phải các nút bên trong ) và chuẩn hóa lại tọa độ:
Quá trình này có thể được lặp đi lặp lại vô thời hạn. Mục tiêu của thử thách này được đưa ra một số nguyên N
biểu thị bao nhiêu lần quá trình này đã được thực hiện, xuất ra tất cả các nút cho tam giác liên kết theo tọa độ nhị phân.
Đầu vào
Chương trình / hàm của bạn sẽ lấy đầu vào là một số nguyên không âm duy nhất N
biểu thị số lần quá trình này đã được áp dụng. Lưu ý rằng N=0
, bạn nên xuất ra tam giác ban đầu với 3 nút.
Đầu vào có thể đến từ bất kỳ nguồn nào (tham số chức năng, stdio, v.v.).
Đầu ra
Chương trình / hàm của bạn sẽ xuất tất cả các nút theo tọa độ barycentric chuẩn hóa. Thứ tự của các nút không quan trọng. Một số có thể được chỉ định dưới dạng phân số (không cần giảm phân số) hoặc số dấu phẩy động. Bạn cũng có thể xuất các vectơ "tỷ lệ" để chỉ định một nút. Ví dụ: cả 3 đầu ra sau đây đều tương đương và được phép:
0.5,0.5,0
1/2,2/4,0
[1,1,0]/2
Nếu sử dụng đầu ra dấu phẩy động, đầu ra của bạn phải chính xác trong phạm vi 1%. Đầu ra có thể là bất kỳ mức chìm nào mong muốn (stdio, giá trị trả về, tham số trả về, v.v.). Lưu ý rằng mặc dù tọa độ nhị phân được xác định duy nhất bởi chỉ có 2 số cho mỗi nút, bạn nên xuất cả 3 số cho mỗi nút.
Ví dụ
Các trường hợp ví dụ được định dạng là:
N
x0,y0,z0
x1,y1,z1
x2,y2,z2
...
trong đó dòng đầu tiên là đầu vào N
và tất cả các dòng sau tạo thành một nút x,y,z
nên ở đầu ra chính xác một lần. Tất cả các số được đưa ra dưới dạng số dấu phẩy động gần đúng.
0
1,0,0
0,1,0
0,0,1
1
1,0,0
0,1,0
0,0,1
0.5,0,0.5
0.5,0.5,0
0,0.5,0.5
2
1,0,0
0,1,0
0,0,1
0.667,0,0.333
0.667,0.333,0
0.333,0,0.667
0.333,0.333,0.333
0.333,0.667,0
0,0.333,0.667
0,0.667,0.333
3
1,0,0
0.75,0,0.25
0.75,0.25,0
0.5,0,0.5
0.5,0.25,0.25
0.5,0.5,0
0.25,0,0.75
0.25,0.25,0.5
0.25,0.5,0.25
0.25,0.75,0
0,0,1
0,0.25,0.75
0,0.5,0.5
0,0.75,0.25
0,1,0
Chấm điểm
Đây là mã golf; mã ngắn nhất trong byte thắng. Tiêu chuẩn áp dụng. Bạn có thể sử dụng bất kỳ tích hợp nào mong muốn.
[1,2,3]/6
nào?