Tất cả những ngọn hải đăng bận rộn đã làm cho một mớ hỗn độn. Họ đã viết tất cả trên băng. Với tốc độ này, hàng xóm của chúng tôi sẽ ngừng cho chúng tôi mượn băng không giới hạn.
Chúng tôi cần một cách mới để chơi trò chơi hải ly bận rộn, một cách không làm hỏng mọi băng chúng tôi sử dụng.
Những quy định
Brainfuck thôi. Băng nhớ không bị ràng buộc cả hai cách. Hướng dẫn nhập sẽ luôn đọc , vì vậy nó có thể được sử dụng để xóa giá trị.
Giới hạn nguồn 50 byte.
Khi kết thúc thực thi, bộ nhớ phải là s.
Điểm là khoảng cách giữa vị trí bắt đầu của con trỏ bộ nhớ và vị trí cuối cùng - nếu cần hướng dẫn di chuyển để đi giữa chúng, điểm của bạn là n . Cao hơn thì tốt hơn. Cung cấp một giá trị chính xác nếu bạn có thể, nếu không thì cung cấp một ước tính.
Thí dụ
32 byte,
-[-[[>]+>+[<]>-[[>]<+<+[<]>-]]>]
Giải trình
- Initialize the list to [255].
[ ] Repeat as long as the list is not empty.
[- ] Decrement the left end. We need to shrink the numbers so it ends eventually.
[ [ ] ] Skip if 0 already.
[ [[>] ] ] Move to the cell past the right end.
[ [ + ] ] Make this cell 1.
[ [ > ] ] Go right again.
[ [ + ] ] Make this cell 1. We've now appended [1, 1].
[ [ [<]> ] ] Go back to the first nonzero cell on the left.
[ [ - ] ] And decrement it.
[ [ [ ]] ] We will need to transfer the rest of the number from the left to the right, so keep looping.
[ [ [[>]< ]] ] Go to the last nonzero cell on the right.
[ [ [ +<+ ]] ] Increment this and the one on the left. These are the cells we appended earlier. We transfer to them.
[ [ [ [<]> ]] ] Go back to the first nonzero cell on the left, which we are transferring from.
[ [ [ -]] ] Decrement here on the left to balance out the incrementing on the right.
[ >] We end the iteration on a now empty cell. Move right, the new left end is there.
Chúng tôi bắt đầu với danh sách . Ở mỗi lần lặp, chúng ta tiêu thụ giá trị n ở bên trái của danh sách và nếu n > 1 , chúng ta sẽ thêm [ n - 1 , n - 1 ] vào bên phải. Các số được nối ( n - 1 ) thấp hơn số gốc ( n ) , vì vậy chúng sẽ nhỏ hơn cho đến khi chúng là 1 , tại thời điểm chúng được tiêu thụ mà không mở rộng. Do đó, quá trình kết thúc cuối cùng, với tất cả 0s trong bộ nhớ. Tuy nhiên, ở mỗi bước, số lượng bản sao của số nhân đôi. Điểm của chương trình này được khởi tạo với danh sách là 2 n - 1 .
Ví dụ này có nghĩa là để hiển thị một số kỹ thuật được sử dụng trong việc tạo một đệ trình. Nó không cạnh tranh cho kích thước của nó.