Hãy vẽ một hàm f (x) = sin (πx) + 0,5 sin (3πx) trên miền [-3,3] . Chúng ta có thể giải thích điều này như một chuỗi lỏng lẻo nằm trên một bảng. Bây giờ, hãy lái n đinh vào bảng ở các vị trí (x 1 , y 1 ) đến (x n , y n ) , trong đó x i ∈ (-3,3) và y i [-1,1] . Hãy tưởng tượng rằng có hai khoen ở cuối chuỗi, đó là tại các vị trí (-3,0) và (3,0). Bây giờ chúng ta có thể lấy các đầu của chuỗi và kéo qua các lỗ nhỏ cho đến khi chuỗi được căng. Điều này sẽ biến dạng đồ thị của chúng ta thành một hàm tuyến tính piecewise.
Một số hình ảnh có thể giúp đỡ. Lấy 8 cái đinh ở (-2,8, -0,7), (-2,5, -0,9), (-1,2, .2), (-0,5, .8), (0,5, .4), (1.2, -0.9), (1.5, -0.6), (1.8, -0.8) . Ba lô sau đây cho thấy quá trình được mô tả ở trên:
Đối với phiên bản lớn hơn: Nhấp chuột phải -> Mở trong tab mới
Và đây là một hình ảnh động của chuỗi thắt chặt nếu bạn gặp khó khăn khi hình dung nó:
Các thách thức
Đưa ra một danh sách "đinh" (không nhất thiết phải được sắp xếp), vẽ các móng đó và chuỗi taut nếu nó bắt đầu từ hình dạng của hàm trên f .
Bạn có thể viết chương trình hoặc hàm và nhận đầu vào thông qua STDIN, ARGV hoặc đối số hàm. Bạn có thể hiển thị kết quả trên màn hình hoặc lưu hình ảnh vào một tệp.
Nếu kết quả được rasterized, nó cần phải rộng tối thiểu 300 pixel và cao 100 pixel. Phạm vi tọa độ từ (-3, -1.1) đến (3,1.1) phải bao phủ ít nhất 75% phạm vi ngang và dọc của hình ảnh. Tỷ lệ chiều dài của x và y không nhất thiết phải giống nhau. Bạn cần hiển thị móng tay (sử dụng ít nhất 3x3 pixel) và chuỗi (rộng ít nhất 1 pixel). Bạn có thể hoặc không bao gồm các trục.
Màu sắc là sự lựa chọn của bạn, nhưng bạn cần ít nhất hai màu có thể phân biệt: một cho nền và một cho móng và chuỗi (những màu này có thể có màu khác nhau).
Bạn có thể giả định rằng tất cả các móng cách xa ít nhất 10 -5 đơn vị so với f (do đó bạn không cần phải lo lắng về sự thiếu chính xác của dấu phẩy động).
Đây là mã golf, vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Thêm ví dụ
Dưới đây là hai ví dụ (đơn giản hơn):
{{-2.5, 1}, {-1.5, -1}, {-0.5, 1}, {0.5, -1}, {1.5, 1}, {2.5, -1}}
(Chuỗi trùng với x -axis.)
{{-2.7, -0.5}, {-2.3, -0.5}, {-1.7, 0.5}, {-1.3, 0.5}, {-0.7, -0.5}, {-0.3, -0.5}, {0.5, 1}, {1.5, -1}, {2.5, 1}}