Các Chaos Game là một phương pháp đơn giản để tạo ra Fractals. Cho điểm bắt đầu, tỷ lệ chiều dài r và tập hợp các điểm 2D, lặp đi lặp lại như sau:
- Từ tập hợp các điểm của bạn, chọn một điểm ngẫu nhiên (thống nhất).
- Trung bình điểm đó và điểm được vẽ cuối cùng (hoặc điểm bắt đầu) sử dụng r và 1 - r làm trọng số (nghĩa là r = 0 có nghĩa là bạn có điểm bắt đầu, r = 1 có nghĩa là bạn có điểm ngẫu nhiên và r = 0,5 có nghĩa là bạn lấy điểm giữa chừng.)
- Vẽ điểm kết quả.
Chẳng hạn, nếu bạn chọn các đỉnh của một tam giác đều và r = 0,5 , các điểm được vẽ sẽ vạch ra một tam giác Sierpinki:
Hình ảnh được tìm thấy trên Wikipedia
Bạn sẽ viết một chương trình hoặc chức năng "chơi" trò chơi hỗn loạn để tạo ra một fractal.
Đầu vào
Bạn có thể viết chương trình hoặc hàm và lấy các đầu vào sau thông qua ARGV, STDIN hoặc đối số hàm:
- Số lượng điểm để âm mưu.
- Tọa độ bắt đầu (cũng phải được vẽ!).
- Trọng lượng trung bình r trong khoảng [0,1] .
- Một danh sách các điểm để lựa chọn.
Đầu ra
Bạn có thể kết xuất trên màn hình hoặc viết một tập tin hình ảnh. Nếu kết quả được rasterized, nó cần có ít nhất 600 pixel cho mỗi bên, tất cả các điểm phải nằm trên khung vẽ và ít nhất 75% mức độ ngang và dọc của hình ảnh phải được sử dụng cho các điểm (điều này là để tránh câu trả lời với một pixel đen duy nhất có nội dung "nó thực sự bị thu nhỏ"). Các x và y trục phải nằm trên cùng một tỷ lệ (có nghĩa là dòng từ (0,0) đến (1,1) phải ở một góc 45 độ) và mỗi điểm vẽ trong các trò chơi hỗn loạn phải được thể hiện dưới dạng một đĩa đơn pixel (nếu phương pháp vẽ biểu đồ của bạn chống lại bí danh điểm, nó có thể được trải trên 2x2 pixel).
Màu sắc là 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 các chấm được vẽ trong trò chơi hỗn loạn. Bạn có thể nhưng không phải vẽ các điểm đầu vào.
Vui lòng bao gồm ba kết quả đầu ra thú vị trong câu trả lời của bạn.
Chấm điểm
Đây là mã golf, vì vậy câu trả lời ngắn nhất (tính bằng byte) sẽ thắng.
Chỉnh sửa: Bạn không còn cần phải vẽ các điểm đầu vào, vì dù sao chúng không thực sự hiển thị dưới dạng các pixel đơn lẻ.