Wise là một ngôn ngữ bitwise đơn giản mà tôi đã thiết kế một thời gian trước. Nó dựa trên các hoạt động bitwise của Python . Nó có một số hoạt động hầu hết trong số này là giống hoặc rất giống với biểu tượng tương đương trong Python.
:
Nhân đôi đỉnh của ngăn xếp?
Xoay đỉnh của ngăn xếp xuống dưới cùng!
Xoay dưới cùng của ngăn xếp lên trên cùng[
]
vòng lặp trong khi đỉnh của ngăn xếp không bằng không~
không phải đỉnh của ngăn xếp (-(n+1)
)-
phủ định đỉnh của ngăn xếp (-n
)>
bẻ khóa đỉnh của ngăn xếp một lần sang phải (n//2
)<
bẻ khóa đỉnh của ngăn xếp một lần sang trái (n*2
)^
xor hai mục trên cùng của ngăn xếp ( Giống như Python )|
hoặc hai mục trên cùng của ngăn xếp ( Giống như Python )&
và hai mục trên cùng của ngăn xếp ( Giống như Python )
Tạo một số nguyên trong Wise khá đơn giản, bạn có thể tạo số 0 bằng ::^
và tăng nó lên ~-
để bạn tạo số 0 và tăng nó lên rất nhiều lần. Tuy nhiên nếu chúng ta loại bỏ những -
thứ trở nên thú vị hơn một chút.
Chúng tôi vẫn có thể thực hiện mọi số bằng cách sử dụng các hoạt động còn lại. Ví dụ ở đây là 3
~<<~
Điều này hoạt động vì ~
biến zero, một chuỗi 0
bit vô hạn , thành chuỗi âm, chuỗi 1
bit vô hạn , mỗi bit <
nối thêm một 0
bit vào cuối, khi chúng ta thực hiện xong, chúng ~
biến mỗi chuỗi thành một chuỗi 0
s theo sau là hai 1
s hoặc như hầu hết mọi người gọi nó là 3.
Bài tập
Viết chương trình khi được cung cấp một số nguyên dương sẽ tạo ra chương trình Wise sẽ tạo ra số n
mà không có bất kỳ -
nguồn nào trong nguồn của nó (nguồn của đầu ra, bạn có thể sử dụng -
trong nguồn của riêng mình). Bạn có thể cho rằng đã có một số 0 trên đỉnh của ngăn xếp.
Đây là code-golf chứ không phải meta-golf, vì vậy bạn nên đặt mục tiêu giảm thiểu mã nguồn tạo không nhất thiết là đầu ra.
Ví dụ đầu ra
Danh sách này không đầy đủ, chúng chỉ đơn giản là đầu ra có thể
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:
áp dụng trên một ngăn xếp trống đẩy a 0
. Tôi nghĩ điều này nên được chỉ định, vì không rõ ràng rằng việc sao chép từ một ngăn xếp trống sẽ mang lại0
positive integers