ปรีชาญาณเป็นภาษาที่ใช้ง่ายบิตฉันออกแบบในขณะที่กลับ มันเป็นไปตามรอบหลามของการดำเนินงานค่าที่เหมาะสม มีการดำเนินการหลายอย่างโดยส่วนใหญ่จะเหมือนหรือคล้ายกับสัญลักษณ์เทียบเท่าใน Python
:
ทำซ้ำส่วนบนสุดของสแต็ก?
หมุนด้านบนของสแต็กไปที่ด้านล่าง!
หมุนด้านล่างของสแต็คไปด้านบน[
]
วนรอบในขณะที่ด้านบนของสแต็กไม่เป็นศูนย์~
ไม่ใช่ส่วนบนของสแต็ก (-(n+1)
)-
ลบล้างด้านบนของสแต็ก (-n
)>
bitshift ด้านบนของสแต็คหนึ่งครั้งไปทางขวา (n//2
)<
bitshift ด้านบนของสแต็คหนึ่งครั้งไปทางซ้าย (n*2
)^
หรือสองรายการบนสุดของสแต็ก ( เหมือนกับ Python )|
หรือสองรายการบนสุดของสแต็ก ( เหมือนกับ Python )&
และสองรายการแรกสุดของสแต็ก ( เหมือนกับ Python )
การสร้างจำนวนเต็มใน Wise นั้นค่อนข้างง่ายคุณสามารถสร้างศูนย์ด้วย::^
และเพิ่มขึ้นด้วย~-
ดังนั้นคุณจึงทำศูนย์และเพิ่มมันหลายครั้ง อย่างไรก็ตามถ้าเราลบ-
สิ่งต่าง ๆ ออกไปจะน่าสนใจขึ้นอีกนิด
เรายังคงสามารถทำให้ทุกหมายเลขโดยใช้การดำเนินการที่เหลืออยู่ ตัวอย่างเช่นที่นี่ 3
~<<~
งานนี้เพราะ~
ผลัดกันเป็นศูนย์, สตริงที่ไม่มีที่สิ้นสุดของ0
บิตเป็นหนึ่งในเชิงลบสตริงที่ไม่มีที่สิ้นสุดของ1
บิตแต่ละ<
ผนวก0
บิตเพื่อท้ายที่สุดแล้วเมื่อเราจะทำเราทำ~
ซึ่งจะเปลี่ยนแต่ละมันเป็นสตริงของ0
s ตามด้วยสอง1
s หรือตามที่คนส่วนใหญ่เรียกว่า 3
งาน
เขียนโปรแกรมที่เมื่อได้รับจำนวนเต็มบวกจะส่งออกโปรแกรมปรีชาญาณที่จะสร้างตัวเลขn
โดยไม่ต้องมี-
ในแหล่งที่มาของมัน (แหล่งที่มาของการส่งออกคุณอาจใช้-
ในแหล่งที่มาของคุณเอง) คุณอาจคิดว่ามีศูนย์อยู่ด้านบนของสแต็กแล้ว
นี่คือcode-golf ไม่ใช่ meta-golfดังนั้นคุณควรมุ่งที่จะลดการสร้างซอร์สโค้ดโดยไม่จำเป็นต้องมีเอาต์พุต
ตัวอย่างผลลัพธ์
รายการนี้ไม่ละเอียดถี่ถ้วน
1 -> ~<~
2 -> ~<~<
3 -> ~<<~
4 -> ~<~<<
5 -> ~<~:<<|
6 -> ~<<~<
7 -> ~<<<~
8 -> ~<~<<<
9 -> ~<~:<<<|
10 -> ~<~:<<|<
11 -> ~<<~:><<<|
12 -> ~<<~<<
13 -> ~<<~:<<<|>
14 -> ~<<<~<
15 -> ~<<<<~
16 -> ~<~<<<<
:
0
ฉันคิดว่าควรระบุสิ่งนี้เนื่องจากไม่ชัดเจนว่าควรให้ซ้ำกับกองที่ว่างเปล่า0
positive integers