ฉันไบนารีชิงคู่คอมพิวเตอร์


10

บทนำ

ฉันชิงเป็นข้อความทำนายโบราณและเก่าแก่ที่สุดของจีนคลาสสิก มันใช้ประเภทของการทำนายที่เรียกว่า cleromancy ซึ่งผลิตตัวเลขสุ่มที่เห็นได้ชัด

หน่วยพื้นฐานของ Zhou yi คือhexagram (卦guà) รูปประกอบด้วยหกเส้นแนวนอนซ้อนกัน (爻yáo) แต่ละบรรทัดมีเส้นแบ่งหรือเส้นขาด ข้อความที่ได้รับของ Zhou yi มีทั้งhexagrams ที่เป็นไปได้ 64 แบบ

ลำดับกษัตริย์เหวินนำเสนอ 64 hexagrams แบ่งออกเป็น 32 คู่ สำหรับ 28 คู่นั้น hexagram ที่สองถูกสร้างขึ้นโดยพลิกคว่ำแรก (เช่นหมุน 180 °) ข้อยกเว้นสำหรับกฎนี้มีไว้สำหรับ hexagrams แบบสมมาตรที่เหมือนกันหลังจากการหมุน พาร์ทเนอร์สำหรับสิ่งเหล่านี้จะได้รับจากการย้อนกลับแต่ละบรรทัด: ของแข็งกลายเป็นหักและหักกลายเป็นแข็ง

 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
    1        2        3        4            5        6        7        8   

 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
    9       10       11       12           13       14       15       16   

 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
   17       18       19       20           21       22       23       24   

 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
   25       26       27       28           29       30       31       32   

 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
   33       34       35       36           37       38       39       40   

 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
   41       42       43       44           45       46       47       48   

 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
   49       50       51       52           53       54       55       56   

 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄      ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
 ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
 ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄      ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
   57       58       59       60           61       62       63       64   

ขอร้อง

เป้าหมายของสิ่งนี้คือการสร้างเครื่องมือเล็ก ๆ ที่คำนวณคู่สำหรับค่า hexagram ที่กำหนด

  • สำหรับการแปลนี้ลงในไบนารีผมใช้: broken line = 0, unbroken line = 1เพื่อให้มีhexagram Number 1binary value 63

  • เครื่องมือที่ใช้เวลาตรงหนึ่งอาร์กิวเมนต์เป็นจำนวนระหว่างวันที่ 1 ถึง 64, ตามคำขอของ hexagram คู่และผลิตสอง exagram มีจำนวนร้องขอและของเขาตรงข้าม (คำอธิบาย: ถ้าหาเรื่องแปลกที่ส่งออกจะต้องมีแฉกจากหาเรื่องและหาเรื่อง + 1แต่ถ้า หาเรื่องแม้ผลลัพธ์จะต้องมี hexagram จากหาเรื่อง - 1และหาเรื่อง )

  • เครื่องมือที่ต้องหมุน 180 ° hexagram ร้องขอในขณะที่ไม่ได้ symetric , หรือคว่ำพวกเขาเมื่อsymetric

  • ไม่มีแผนที่ที่ได้รับอนุญาตยกเว้นอันนี้ซึ่งจะถูกเก็บไว้ในรูปแบบใด ๆ ที่คุณจะพบว่ามีประโยชน์

     {  1:63,    3:34,    5:58,    7:16,    9:59,   11:56,   13:47,   15: 8,  
       17:38,   19:48,   21:37,   23: 1,   25:39,   27:33,   29:18,   31:14,  
       33:15,   35: 5,   37:43,   39:10,   41:49,   43:62,   45: 6,   47:22,  
       49:46,   51:36,   53:11,   55:44,   57:27,   59:19,   61:51,   63:42 }
    

    แผนที่นี้เก็บค่าไบนารีของแต่ละ exagram จากคู่ ดังนั้นสำหรับแต่ละคู่อันดับที่ 1 จะต้องนำมาจากแผนที่นี้ แต่อันดับที่สองจะต้องคำนวณตามกฎก่อนหน้า

  • Ouput ต้องมี hexagram สองอันและหมายเลขของเขา ตัวอย่าง:

    iChingHexaPair 1
     ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
        1        2   
    
    iChingHexaPair 14
     ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄ ▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
     ▄▄▄ ▄▄▄  ▄▄▄▄▄▄▄
     ▄▄▄▄▄▄▄  ▄▄▄▄▄▄▄
       13       14   
    
  • มีช่องโหว่มาตรฐาน

  • โปรดหลีกเลี่ยงภาษาที่ไม่มีอิสระหรือโพสต์เอาท์พุทสำหรับกรณีทดสอบแบบเต็ม

นี่คือดังนั้นคำตอบที่สั้นที่สุดในตัวละครชนะ

สั้นตามภาษา



@ MartinBüttnerใช่ขอบคุณ! บางทีเราสามารถเพิ่มแท็ก: i-ching (ฉันไม่ได้ foud พวกเขาในขณะที่ค้นหา I-Ching, hexagram และอื่น ๆ ) แต่คำถามของฉันถ้าเพิ่มเติมเกี่ยวกับrotating binary by 180°
F. Hauri

2
โปรดทราบว่าในปัจจุบันช่องโหว่มาตรฐานที่เกี่ยวข้องกับภาษาที่ไม่ใช้จะมีผลต่อความท้าทายของตำรวจและโจรเท่านั้น
Alex A.

@ AlexA.Question modified: ยินดีต้อนรับสู่ภาษาที่ไม่ใช่ภาษาอิสระแต่ไม่ได้ห้าม แต่จะต้องมีตัวอย่างผลลัพธ์สำหรับภาษาที่ไม่ใช่ภาษาอิสระ
F. Hauri

คำตอบ:


4

Python 2, 65 61

สร้างคู่ hexagram I-Ching ของ Unicode

def t(a):
 b=a+a%2
 for c in b-1,b:
  print unichr(19903+c),c

(บันทึกแล้ว 4 ขอบคุณ @ Sherlock9)

ตัวอย่างอินพุตและเอาต์พุต:

>>> t(1)
䷀ 1
䷁ 2
>>> t(14)
䷌ 13
䷍ 14

1
ฉันคิดว่าคุณสามารถบันทึก 4 ไบต์ด้วยb=a+a%2
Sherlock9

นั่นเป็นช่องโหว่: ไม่มีเครื่องคิดเลขไบนารี!
F. Hauri

@ F.Hauri: มันไม่ได้บอกว่าจะต้องมีหนึ่งในคำถามเลย
Deusovi

@Deusovi (1) ในชื่อ, (2) ในบรรทัดแรกของการร้องขอ, (3) อย่างน้อยก็แบ่งกฎข้อที่สี่: 1st has to be taken from this map!
F. Hauri

1
@F: คุณบอกว่าเป้าหมายคือการคำนวณคู่ แต่จากนั้นคุณเพียงแค่ต้องส่งออกคู่ hexagram 'ตาราง' สร้างขึ้นใน Unicode แทนที่จะเป็นไฟล์ข้อความ - มีอะไรผิดปกติหรือไม่
Deusovi

3

Python 2, 252 245 244

ตอนนี้รวมถึงการคำนวณแบบไบนารี (ประหยัด 8 ตัวอักษรด้วย @ Sherlock9):

d='?":\x10;8/\x08&0%\x01\'!\x12\x0e\x0f\x05+\n1>\x06\x16.$\x0b,\x1b\x133*'
k=lambda l:'\n'.join("{:06b}".format(l)).replace('1',u'▄▄▄▄▄▄▄').replace('0',u'▄▄▄ ▄▄▄')
def t(a):
 j=a+a%2-1;m=ord(d[j/2]);b=k(m);r=b[::-1];print b,j,'\n\n',r if r!=b else k(63-m),j+1

ตัวอย่างอินพุตและเอาต์พุต:

>>> t(1)
▄▄▄▄▄▄▄
▄▄▄▄▄▄▄
▄▄▄▄▄▄▄
▄▄▄▄▄▄▄
▄▄▄▄▄▄▄
▄▄▄▄▄▄▄ 1 

▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄ 2
>>> t(3)
▄▄▄▄▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄▄▄▄▄
▄▄▄ ▄▄▄ 3 

▄▄▄ ▄▄▄
▄▄▄▄▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄ ▄▄▄
▄▄▄▄▄▄▄ 4

1
คุณสามารถเปลี่ยนj=a+a%2-1เป็นj=a-1เนื่องจากคุณใช้การแบ่งจำนวนเต็ม แต่คุณจะต้องใช้j+1และj+2ในคำสั่งพิมพ์ในตอนท้าย ที่ยังช่วยให้คุณ 2 ไบต์ นอกจากนี้การใช้m=ord(d[j/2]);และmในสองสถานที่ที่คุณโทรk()จะประหยัด 6 ไบต์ นอกจากนี้ยังเป็นครั้งแรก0ใน"{0:06b}".format(l)อย่างเคร่งครัดจำเป็น? ถ้าไม่ใช่นั่นคือไบต์อื่น ท้ายที่สุดถ้าคุณเปลี่ยนไปใช้ Python 3 คุณสามารถกำจัดus ข้างหน้าได้▄▄▄▄▄▄▄แต่การพิมพ์จะต้องใช้วงเล็บดังนั้นนั่นเป็นเพียงไบต์เดียว ฉันจะให้คุณโพสต์ในสิ่งอื่นที่ฉันคิด
Sherlock9

แต่น่าเสียดายที่ฉันไม่สามารถเปลี่ยนj=a+a%2-1ไปj=a-1ตามที่ควรจะเอาท์พุทคู่ที่ 13 และ 14 เมื่อฉันป้อนข้อมูล 14. ขอบคุณสำหรับคำแนะนำของคุณ
วิลเล็ม

อ่าคุณพูดถูก บังเอิญฉันมีปัญหาในการเรียกใช้รหัสนี้ใน Ideone คุณช่วยดูหน่อยได้ไหม? ideone.com/GdWu4e
Sherlock9

@ Sherlock9 Ideone ดูเหมือนว่าจะมีปัญหากับอักขระยูนิโค้ดideone.com/FeK1rK
Willem

1
อ่าขอบคุณ def t(a):j=a+a%2-1;etc.หากต้องการบันทึกไบต์อื่นผมต้องการเขียน ใส่ทั้งหมดหนึ่งบรรทัดเป็นหลัก และคุณสามารถเขียนk=lambda l:เพื่อบันทึกไบต์อื่น
Sherlock9

2

ทุบตีบริสุทธิ์ 252

u=(▅▅▅{' ',▅}▅▅▅);m=_yWgXUL8CMB1Dxief5HaN@6mKAbIrjPG;s=$[($1-1)/2];r=$[64#${m:s:1}];for i in {0..5};do echo ${u[(r>>i)&1]} ${u[((r>>5)%2==r%2)&((r>>4)%2==(r>>1)%2)&((r>>3)%2==(r>>2)%2)?1^(r>>i)&1:(r>>(5-i))&1]};done;echo $[s*2+1] $[s*2+2]

ด้วยการระบาด 2 ครั้งเพิ่มเติม:

u=(▅▅▅{' ',▅}▅▅▅);m=_yWgXUL8CMB1Dxief5HaN@6mKAbIrjPG;s=$[($1-1)/2];r=$[64#${m:s
:1}];for i in {0..5};do echo ${u[(r>>i)&1]} ${u[((r>>5)%2==r%2)&((r>>4)%2==(r>>
1)%2)&((r>>3)%2==(r>>2)%2)?1^(r>>i)&1:(r>>(5-i))&1]};done;echo $[s*2+1] $[s*2+2]

แบบทดสอบ:

for k in 1 15 28 34;do set -- $k;echo request: $k;
u=(▅▅▅{' ',▅}▅▅▅);m=_yWgXUL8CMB1Dxief5HaN@6mKAbIrjPG;s=$[($1-1)/2];r=$[64#${m:s
:1}];for i in {0..5};do echo ${u[(r>>i)&1]} ${u[((r>>5)%2==r%2)&((r>>4)%2==(r>>
1)%2)&((r>>3)%2==(r>>2)%2)?1^(r>>i)&1:(r>>(5-i))&1]};done;echo $[s*2+1] $[s*2+2]
done;echo $[s*2+1] $[s*2+2]; done
request: 1
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
1 2
request: 15
▅▅▅ ▅▅▅ ▅▅▅ ▅▅▅
▅▅▅ ▅▅▅ ▅▅▅ ▅▅▅
▅▅▅ ▅▅▅ ▅▅▅▅▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅ ▅▅▅ ▅▅▅ ▅▅▅
▅▅▅ ▅▅▅ ▅▅▅ ▅▅▅
15 16
request: 28
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅ ▅▅▅ ▅▅▅▅▅▅▅
▅▅▅ ▅▅▅ ▅▅▅▅▅▅▅
▅▅▅ ▅▅▅ ▅▅▅▅▅▅▅
▅▅▅ ▅▅▅ ▅▅▅▅▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
27 28
request: 34
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅▅▅▅▅ ▅▅▅ ▅▅▅
▅▅▅▅▅▅▅ ▅▅▅▅▅▅▅
▅▅▅▅▅▅▅ ▅▅▅▅▅▅▅
▅▅▅ ▅▅▅ ▅▅▅▅▅▅▅
▅▅▅ ▅▅▅ ▅▅▅▅▅▅▅
33 34
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.