ตำรวจและโจร: Reverse Regex Golf


76

หมายเหตุ : ความท้าทายนี้ปิดตอนนี้ การส่งตำรวจในอนาคตใด ๆ จะไม่ได้รับการพิจารณาสำหรับคำตอบที่ได้รับการยอมรับ นี่คือเพื่อให้แน่ใจว่าไม่มีใครสามารถโพสต์ regex ที่ง่ายมากในอนาคตที่ยังคงไม่ได้แยกออกเพราะไม่มีใครสนใจในการท้าทายอีก

The Cops 'Challenge

คุณต้องเขียน regex สั้น ๆ ที่ยุ่งเหยิงเพื่อให้เป็นไปตามข้อกำหนดต่อไปนี้:

  • คุณสามารถเลือกรสชาติที่สามารถทดสอบออนไลน์ได้อย่างอิสระ มีรายการที่ดีของการทดสอบออนไลน์เป็นมากกว่าใน StackOverflow โดยเฉพาะอย่างยิ่งRegex101น่าจะดีสำหรับคุณในการเริ่มต้นเนื่องจากรองรับ PCRE, ECMAScript และ Python รสชาติ คุณสามารถเพิ่มการ จำกัด การหมดเวลาได้โดยคลิกที่ประแจที่มุมขวาบนหากจำเป็น โปรดระบุผู้ทดสอบที่คุณเลือกในคำตอบของคุณ

    หากไม่มีผู้ทดสอบที่เหมาะสมสำหรับรสนิยมที่คุณเลือกคุณอาจใช้ล่ามออนไลน์เช่นideoneและเขียนสคริปต์เล็กน้อยในภาษาโฮสต์ซึ่งผู้คนสามารถใช้เพื่อทดสอบการส่งของคุณ

  • คุณสามารถใช้คุณลักษณะใดก็ได้ของรสชาตินั้นซึ่งไม่ได้เรียกใช้ภาษาโฮสต์โดยตรง (เช่นคุณสมบัติการประเมินโค้ดของ Perl)
  • ในทำนองเดียวกันคุณสามารถใช้ตัวดัดแปลงใด ๆ (ถ้ารสชาติของคุณมี) ยกเว้นว่าพวกเขาส่งผลในการประเมินรหัส
  • regex ของคุณจะต้องยอมรับอย่างน้อยหนึ่งสตริงSและปฏิเสธอย่างน้อยหนึ่งสตริงTแต่ละอันมีอย่างน้อย 16 และไม่เกิน 256 อักขระที่มีความยาวในระยะเวลาที่เหมาะสม (ไม่เกินหนึ่งนาที) SและTอาจมีอักขระ Unicode ที่ไม่ใช่ ASCII ตราบใดที่มีวิธีป้อนอักขระเหล่านั้นลงในเครื่องมือทดสอบออนไลน์ คู่ของสตริงดังกล่าวจะเป็นกุญแจสำคัญในการส่งของคุณ
  • regex ของคุณอาจใช้เวลานานในการป้อนข้อมูลอื่น ๆ

หลักของความท้าทายคือการสร้าง regex ที่มีคีย์หายาก นั่นคือมันควรจะยากที่จะบอกสตริงที่ไม่ตรงกันหรือสตริงที่ตรง (หรืออาจทั้งสองถ้า regex ใช้เวลาหลายวันเพื่อให้เสร็จทั้งหมด แต่สตริงของคีย์)

ความท้าทายของโจร

ผู้ใช้ทุกคนรวมถึงผู้ที่ส่ง regex ของตนเองได้รับการสนับสนุนให้ "ถอดรหัส" การส่งอื่น ๆ การส่งจะแตกเมื่อคีย์ตัวใดตัวหนึ่งถูกโพสต์ในส่วนความคิดเห็นที่เกี่ยวข้อง

สำคัญ:ตรวจสอบให้แน่ใจว่าสตริงทั้งสองที่คุณโพสต์นั้นมีความยาวระหว่าง 16 ถึง 256 อักขระแม้ว่าจะใช้สตริงใดก็ได้เกือบทุกส่วนของคีย์

หากการส่งยังคงอยู่เป็นเวลา 72 ชั่วโมงโดยไม่มีการแก้ไขหรือถอดรหัสผู้เขียนอาจเปิดเผยรหัสที่ถูกต้องโดยแก้ไขให้เป็นสปอยเลอร์แท็กในคำตอบของเขา สิ่งนี้จะทำให้คำตอบของเขา "ปลอดภัย" คือไม่สามารถถอดรหัสได้อีกต่อไป

อนุญาตให้พยายามแคร็กได้หนึ่งครั้งต่อการส่งต่อผู้ใช้หนึ่งราย ตัวอย่างเช่นหากฉันส่งให้ผู้ใช้ X: "รหัสของคุณคือ0123456789abcdef/ fedcba9876543210" และฉันผิดผู้ใช้ X จะปฏิเสธการเดาของฉันว่าไม่ถูกต้องและฉันจะไม่สามารถส่งการเดาเพิ่มเติมสำหรับการส่งนั้นได้อีกต่อไป แต่ฉันยังสามารถถอดรหัสการส่งอื่น ๆ ได้ (และคนอื่น ๆ ยังสามารถถอดรหัสได้)

การส่งที่แคร็กจะถูกกำจัดออกจากการแข่งขัน (หากไม่ปลอดภัย) พวกเขาไม่ควรแก้ไขหรือลบ หากผู้เขียนต้องการส่ง regex ใหม่เขาควรทำในคำตอบที่แยกต่างหาก

อย่าถอดรหัสของคุณเอง!

หมายเหตุ:สำหรับสตริงที่ยาวในความคิดเห็นที่ไม่มีช่องว่าง SE จะแทรกตัวแบ่งบรรทัดด้วยตนเองในรูปแบบของอักขระ Unicode สองตัว ดังนั้นหากคุณโพสต์คีย์ใน backticks ซึ่งยาวจนมันตัดบรรทัดระหว่างอักขระที่ไม่เว้นวรรคคุณจะไม่สามารถคัดลอกคีย์ตรงออกไปยังเครื่องทดสอบ regex ในกรณีนี้โปรดแจ้งความคิดเห็นแก่ผู้ทดสอบ regex ที่เกี่ยวข้องพร้อมกับ regex ของตำรวจและกุญแจของคุณ - ผู้ทดสอบส่วนใหญ่จะมีคุณสมบัตินี้

เกณฑ์การให้คะแนน

คะแนนของตำรวจจะเป็นขนาดของ regex ของพวกเขาในหน่วยไบต์ (รูปแบบรวมถึงตัวดัดแปลง, ตัวคั่นที่อาจเกิดขึ้นจะไม่ถูกนับ) โดยที่มันไม่ได้ถูกถอดรหัส คะแนนต่ำสุดของการส่ง "ปลอดภัย" จะเป็นผู้ชนะ

คะแนนของโจรจะเป็นจำนวนของการส่งพวกเขาแตก ในกรณีที่มีการเสมอขนาดรวมของการส่งที่พวกเขาแตกจะถูกใช้เป็นตัวผูกไท ที่นี่นับไบต์สูงสุดชนะ

ตามที่ระบุไว้ข้างต้นตำรวจใด ๆ อาจเข้าร่วมเป็นโจรและในทางกลับกัน

ฉันจะรักษากระดานผู้นำแยกไว้สำหรับสองส่วนของความท้าทาย

ลีดเดอร์

ปรับปรุงล่าสุด: 19/10/2557, 20:33 UTC

ตำรวจ:

การส่งเป็นตัวเอียงยังไม่ปลอดภัย

  1. nneonneo 841 ไบต์
  2. Wumpus Q. Wumbley , 10,602 ไบต์
  3. Sp3000 , 52,506 ไบต์
  4. user23013 , 53,884 ไบต์
  5. nneonneo , 656,813 bytes

โจร

  1. ผู้ใช้ 23013 , แคร็ก: 11, ขนาดรวม: 733 + 30 + 2,447 + 71 + 109 + 121 + 97 + 60 + 141 + 200,127 + 7,563 = 211,499 ไบต์
  2. nneonneo , แคร็ก: 10, ขนาดรวม: 4,842 + 12,371 + 150 + 3,571 + 96 + 168 + 395 + 1,043 + 458 + 17,372 = 40,466 ไบต์
  3. Wumpus Q. Wumbley , แคร็ก: 6, ขนาดรวม: 22 + 24 + 158 + 32 + 145,245 + 145,475 = 290,956 ไบต์
  4. เดนนิส , แคร็ก: 2, ขนาดโดยรวม: 70 + 73 = 143 ไบต์
  5. harius , แคร็ก: 1, ขนาดรวม: 9,998ไบต์
  6. g.rocket , แคร็ก: 1, ขนาดรวม: 721ไบต์
  7. Stokastic , แคร็ก: 1, ขนาดรวม: 211ไบต์
  8. Sp3000 , แคร็ก: 1, ขนาดทั้งหมด: 133ไบต์
  9. TwiNight , Cracked: 1, ขนาดรวม: 39ไบต์

6
ฉันสงสัยว่ามีโค้ดกี่บรรทัดที่เราเขียนขึ้นเพื่อสร้างปริศนาเหล่านี้และพยายามที่จะไขปริศนาเหล่านั้น ... และมันจะคุ้มค่าหรือไม่ที่จะรวบรวมมันทั้งหมด ทุกคนสามารถมีส่วนร่วมในสิ่งที่พวกเขาได้รับ (เข้ารหัส, ถอดรหัส, แก้ปัญหาทั้งที่ประสบความสำเร็จและไม่สำเร็จ) ตามที่เป็นอยู่ไม่ใส่ร้ายและแฮ็กแม้ว่าพวกเขาอาจจะ ด้วย README ถ้าคุณรู้สึกว่ามัน มันจะเหมือนกับการประชุมของเรา

ในขณะที่ไม่มีคำตอบใหม่ ๆ ถูกโพสต์อีกต่อไปมันอาจจะคุ้มค่า "ปิด" คำถามในบางจุด ไม่เช่นนั้นอาจเป็นไปได้ที่บางคนอาจตอบเมื่อความสนใจลดลงและยืนหยัดต่อไปอีกนาน
nneonneo

@neonneo หืมมฉันมักจะไม่ชอบที่จะปิดการท้าทายของฉัน แต่ในกรณีนี้มันอาจเป็นความคิดที่ดี ฉันยังคิดว่า 3 รายการสุดท้ายได้รับประโยชน์จากการได้รับความสนใจน้อยลง ฉันจะกำหนดเวลาสำหรับวันศุกร์
Martin Ender

@ MartinBüttner: ฉันคิดว่ามันจะต้องเป็นมาตรฐานสำหรับตำรวจและโจรที่ท้าทายที่จะมีวันหมดอายุ ความท้าทายอยู่ที่น่าสนใจมานานเท่านั้น (สำหรับบันทึกที่ท้าทายนี้น่าจะยังคงเป็นที่ชื่นชอบส่วนตัวของฉัน แต่ฉันอาจจะลำเอียงในความคิดว่า :)
nneonneo

คำตอบ:


19

.NET regex, 841 bytes [Safe!]

ตอนนี้ฉันมีทางเข้าที่ปลอดภัยแล้วมาดูกันว่าฉันสามารถสร้าง regex ได้แค่ไหน!

^(?<a>){53}((0(((?<-a>)(?<A>){7}|){997}((?<-b>)(?<B>){7}|){997}((?<-c>)(?<C>){7}|){997}((?<-d>)(?<D>){7}|){997}((?<-e>)(?<E>){7}|){997}((?<-f>)(?<F>){7}|){997}((?<-g>)(?<G>){7}|){997}(?<A>){5})|1(((?<-a>)(?<A>){3}|){997}((?<-b>)(?<B>){3}|){997}((?<-c>)(?<C>){3}|){997}((?<-d>)(?<D>){3}|){997}((?<-e>)(?<E>){3}|){997}((?<-f>)(?<F>){3}|){997}((?<-g>)(?<G>){3}|){997}(?<A>)))((?<-A>){997}(?<B>)|){9}((?<-A>)(?<a>)|){997}((?<-B>){997}(?<C>)|){9}((?<-B>)(?<b>)|){997}((?<-C>){997}(?<D>)|){9}((?<-C>)(?<c>)|){997}((?<-D>){997}(?<E>)|){9}((?<-D>)(?<d>)|){997}((?<-E>){997}(?<F>)|){9}((?<-E>)(?<e>)|){997}((?<-F>){997}(?<G>)|){9}((?<-F>)(?<f>)|){997}((?<-G>){997}|){9}((?<-G>)(?<g>)|){997}){256}$(?<-a>){615}(?(a)(?!))(?<-b>){59}(?(b)(?!))(?<-c>){649}(?(c)(?!))(?<-d>){712}(?(d)(?!))(?<-e>){923}(?(e)(?!))(?<-f>){263}(?(f)(?!))(?<-g>){506}(?(g)(?!))

น่าสนใจ :

^(?<a>){53}
(
    (0(
        ((?<-a>)(?<A>){7}|){997}
        ((?<-b>)(?<B>){7}|){997}
        ((?<-c>)(?<C>){7}|){997}
        ((?<-d>)(?<D>){7}|){997}
        ((?<-e>)(?<E>){7}|){997}
        ((?<-f>)(?<F>){7}|){997}
        ((?<-g>)(?<G>){7}|){997}
        (?<A>){5})
    |1(
        ((?<-a>)(?<A>){3}|){997}
        ((?<-b>)(?<B>){3}|){997}
        ((?<-c>)(?<C>){3}|){997}
        ((?<-d>)(?<D>){3}|){997}
        ((?<-e>)(?<E>){3}|){997}
        ((?<-f>)(?<F>){3}|){997}
        ((?<-g>)(?<G>){3}|){997}
        (?<A>))
    )
    ((?<-A>){997}(?<B>)|){9}((?<-A>)(?<a>)|){997}
    ((?<-B>){997}(?<C>)|){9}((?<-B>)(?<b>)|){997}
    ((?<-C>){997}(?<D>)|){9}((?<-C>)(?<c>)|){997}
    ((?<-D>){997}(?<E>)|){9}((?<-D>)(?<d>)|){997}
    ((?<-E>){997}(?<F>)|){9}((?<-E>)(?<e>)|){997}
    ((?<-F>){997}(?<G>)|){9}((?<-F>)(?<f>)|){997}
    ((?<-G>){997}|){9}      ((?<-G>)(?<g>)|){997}
){256}$

(?<-a>){615}(?(a)(?!))
(?<-b>){59}(?(b)(?!))
(?<-c>){649}(?(c)(?!))
(?<-d>){712}(?(d)(?!))
(?<-e>){923}(?(e)(?!))
(?<-f>){263}(?(f)(?!))
(?<-g>){506}(?(g)(?!))

คุณสมบัติ:

  • สั้น , 841 ไบต์
  • ตีกอล์ฟและเขียนด้วยมือ
  • ไม่รู้จักการเข้ารหัสปัญหา NP-hard
  • หมดเวลากับการป้อนข้อมูลที่ไม่ถูกต้องมากที่สุด :)
  • ทดสอบที่http://regexhero.net/tester/ใช้เวลาประมาณ 5 วินาทีในการป้อนข้อมูลที่ถูกต้อง

ขอบคุณ Sp3000 และ user23013 สำหรับการ cluing ฉันใน. NET regex


หลังจาก 72 ชั่วโมงฉันกำลังเปิดเผยกุญแจเพื่อให้การส่งนี้ปลอดภัย

ตรงกับ :

1110111111110010000110011000001011011110101111000011101011110011001000000111111111001010000111100011111000000100011110110111001101011001000101111110010111100000000010110001111011011111100000011001101110011111011010100111011101111001110111010001111011000000

ไม่ตรง :Aren'tHashFunctionsFun?

คำอธิบาย:

นิพจน์ทั่วไปนี้ใช้ฟังก์ชันแฮชที่เรียบง่ายและค่อนข้างโง่ ฟังก์ชัน hash คำนวณจำนวนเต็มเดียวxเป็นเอาต์พุต xเริ่มออกเท่ากับ 53 มันจะมีการปรับขึ้นอยู่กับตัวละครแต่ละตัวพบ: ถ้ามันเห็น0มันจะตั้งx = 7x + 5และถ้ามันเห็นมันจะตั้ง1 จะลดลงแล้ว 997 mod 7 ผลลัพธ์สุดท้ายจะถูกตรวจสอบกับค่าคงที่ที่กำหนดไว้ล่วงหน้า; regex ไม่สามารถจับคู่ได้หากค่าแฮชไม่เท่ากัน x = 3x + 1x

กลุ่มการดักจับเจ็ดกลุ่ม (ag) ใช้เพื่อจัดเก็บเลขฐาน 997 ของxโดยมีกลุ่มการดักจับอีกเจ็ดกลุ่ม (AG) ที่ทำหน้าที่เป็นที่เก็บชั่วคราว ฉันใช้ส่วนขยาย "สมดุลการจับภาพกลุ่ม" ของ. NET regex เพื่อเก็บจำนวนเต็มในกลุ่มการจับภาพ ในทางเทคนิคแล้วจำนวนเต็มที่เกี่ยวข้องกับแต่ละกลุ่มการจับภาพคือจำนวนของการจับคู่ที่ไม่สมดุลที่จับโดยกลุ่มนั้น "การจับ" สตริงว่างโดยใช้(?<X>)จำนวนการเพิ่มที่เพิ่มขึ้นและ "การปรับสมดุล" กลุ่มโดยใช้การ(?<-X>)ลดจำนวนของการจับ (ซึ่งจะทำให้เกิดความล้มเหลวในการแข่งขันหากกลุ่มไม่มีการจับ) ทั้งสามารถทำซ้ำเพื่อเพิ่มและลบค่าคงที่แบบคงที่ได้

อัลกอริทึมแฮชนี้เป็นเพียงหนึ่งเดียวที่ฉันเร่งรีบและนี่เป็นอัลกอริธึมแฮชที่เล็กที่สุดที่ฉันสามารถพบได้ซึ่งดูเหมือนว่าปลอดภัยพอสมควรโดยใช้การเพิ่มและการคูณเท่านั้น มันไม่แน่นอนการเข้ารหัสลับที่มีคุณภาพและมีแนวโน้มที่จะเป็นจุดอ่อนที่ทำให้มันเป็นไปได้ที่จะหาการปะทะกันในเวลาน้อยกว่า 997 7 /2 การประเมินผลกัญชา


ฉันมีความคิด ... จากนั้นฉันก็เลิกเพราะฉันไม่มีพื้นที่ว่าง 500 + GB ในฮาร์ดไดรฟ์ของฉัน
jimmy23013

3
เห็นมันในขณะนี้ใน 3 ส่ง Uncracked (?<a>){53}ผมอย่างเป็นทางการลงทะเบียนไม่รู้ทั้งหมดของฉันของวัตถุประสงค์ในการสร้างที่ ดูเหมือนว่าจะจับรูปแบบที่ว่างเปล่าไว้ในกลุ่มที่มีชื่อa53 ครั้ง ดังนั้นตั้งค่าa=""แล้วทำซ้ำ 52 ครั้งมากขึ้น? แต่ฉันไม่รู้ว่า(?<หมายถึงสิ่งเดียวกันในแนวคิดของ regexp ของ Microsoft หรือไม่ เอกสารของพวกเขาไม่สามารถพูดถึงมันได้ หากแม้กระทั่งการแข่งขัน regexpจบลงด้วยส่วนขยายของ Microsoft ที่ไม่มีเอกสารกลิ้งอยู่เหนือคนยูนิกซ์การดำรงอยู่ของฉันก็ไม่มีจุดประสงค์

มันเป็นการจับภาพกลุ่มที่ไม่จับภาพอะไรเลย 53 ครั้ง .NET มีส่วนขยายที่เรียกว่าการจับภาพกลุ่มที่สมดุลซึ่งเป็นคำตอบของการเปรียบเทียบการจับคู่ กลุ่มที่มีชื่อแต่ละกลุ่มทำหน้าที่เหมือนสแต็กดังนั้น(?<a>){53}ดันสตริงว่าง 53 ครั้ง คุณสามารถ pop (?<-a>)สแต็คโดยใช้ หวังว่าตอนนี้มันชัดเจนว่าทำไมการสร้างนี้จึงมีประโยชน์มาก
nneonneo

2
@ WumpusQ.Wumbley ฉันเป็นคนยูนิกซ์ที่พบว่ามีประโยชน์
jimmy23013

4
@ WumpusQ.Wumbley MSDN มีทั้งหน้าเกี่ยวกับโครงสร้างการจัดกลุ่ม ซึ่งสามารถพบได้จากการอ้างอิงอย่างรวดเร็ว ซึ่งเป็นที่นิยมครั้งแรกสำหรับ ".net regex reference"ซึ่งคล้ายกับคำค้นหา Perl ของคุณ (เหมือนกันสำหรับ "ไวยากรณ์", "คู่มือ" หรือ "ข้อกำหนด")
Martin Ender

29

Regex พื้นฐาน 656813 ไบต์ [ปลอดภัย!]

regex เพื่อสิ้นสุด regexes ทั้งหมด ไชโยนัดสุดท้ายในคืนนี้

สามารถทดสอบได้ภายใต้ PCRE, Perl, Python และอื่น ๆ อีกมากมาย

bzip2'd และเวอร์ชันที่เข้ารหัสแบบ 64 ฐานบน Pastebin: http://pastebin.com/9kprSWBn (Pastebin ไม่ต้องการเวอร์ชั่นดิบเพราะมันใหญ่เกินไป)

เพื่อให้แน่ใจว่าคุณได้รับ regex ที่ถูกต้องคุณสามารถตรวจสอบได้ว่า MD5 แฮชนั้น

c121a7604c6f819d3805231c6241c4ef

หรือตรวจสอบว่ามันเริ่มต้นด้วย

^(?:.*[^!0-9@-Za-z].*|.{,255}|.{257,}|.[U-Za-z].{34}[12569@CDGHKLOPSTWXabefijmnqruvyz].{8}[02468@BDFHJLNPRTVXZbdfhjlnprtvxz].{210}

และจบลงด้วย

.{56}[7-9@-DM-Tc-js-z].{121}[3-6A-DI-LQ-TYZabg-jo-rw-z].{28}[!0-9@-T].{48})$

ที่สำคัญยังคงสบายดี 256 ไบต์

ฉันทดสอบ regex นี้ด้วย Python แต่โปรดทราบว่า regex นี้ไม่ได้ใช้คุณสมบัติพิเศษของ Python อันที่จริงยกเว้น(?:)(เป็นกลไกการจัดกลุ่ม) จริงๆแล้วมันไม่ได้ใช้คุณสมบัติพิเศษของเอนจิน regex ใด ๆ เลย: แค่คลาสตัวละครพื้นฐานการทำซ้ำและการยึด ดังนั้นควรทดสอบได้ในเอ็นจินนิพจน์ทั่วไปจำนวนมาก

ที่จริงแล้วฉันยังสามารถเหวี่ยงความยากลำบากขึ้นได้สมมติว่ามีใครบางคนไม่เพียง แต่แก้ปัญหาเล็ก ๆ ได้ทันที ... แต่ฉันเดิมพันให้ผู้คนมีปัญหากับ 1GB regex ...


หลังจาก 72 ชั่วโมงการส่งนี้จะไม่ถูกแยกออก! ดังนั้นตอนนี้ฉันจึงเปิดเผยกุญแจที่จะทำให้การส่งนั้นปลอดภัย นี่คือการส่งที่ปลอดภัยครั้งแรกหลังจากการส่งมากกว่า 30 ครั้งถูกถอดรหัสในแถวโดยโจรที่ไม่หยุดยั้ง

ตรงกับ : Massive Regex Problem Survives The Night!
ไม่ตรง :rae4q9N4gMXG3QkjV1lvbfN!wI4unaqJtMXG9sqt2Tb!0eonbKx9yUt3xcZlUo5ZDilQO6Wfh25vixRzgWUDdiYgw7@J8LgYINiUzEsIjc1GPV1jpXqGcbS7JETMBAqGSlFC3ZOuCJroqcBeYQtOiEHRpmCM1ZPyRQg26F5Cf!5xthgWNiK!8q0mS7093XlRo7YJTgZUXHEN!tXXhER!Kenf8jRFGaWu6AoQpj!juLyMuUO5i0V5cz7knpDX0nsL

คำอธิบาย Regex:

Regex นั้นถูกสร้างขึ้นจากปัญหา 3SAT ที่ "ยาก" ด้วยวิธีการสุ่มแบบจงใจ ปัญหานี้สร้างขึ้นโดยใช้อัลกอริธึมจาก [Jia, Moore & Strain, 2007]: "การสร้างสูตรที่น่าพึงพอใจอย่างหนักโดยการซ่อนโซลูชันอย่างซ่อนเร้น" ตัวแปรบูลีนหกตัวถูกบีบอัดไว้ในแต่ละไบต์ของคีย์รวมเป็น 1536 ตัวแปร
Regex นั้นค่อนข้างง่าย: มันเป็นการแสดงออกถึงแต่ละย่อหน้าของ 7680 3SAT ในฐานะเงื่อนไขกลับหัว (ตามกฎของเดอมอร์แกน) และจับคู่สตริงใด ๆ ที่ไม่ตรงกับ 3SAT ในข้อใดข้อหนึ่ง ดังนั้นคีย์คือสตริงที่ไม่ตรงกับ regex นั่นคือสตริงที่ตรงตามอนุประโยคทุกข้อ


1
ดังนั้นฉันเพิ่งลองโหลด regex 60MB ไปยัง Python คาดการณ์ว่ามันไม่ได้มีความสุขเกินไป ใช้เวลารวบรวมหลายนาที แต่ส่วนที่เจ๋งคือเกือบจะทันทีที่ตอบคำถาม ฉันสงสัยว่าการโหลด 1GB regex ลงใน Python จะใช้เวลาสองสามชั่วโมงในการคอมไพล์ ...
nneonneo

3
หรือไม่ง่ายนัก จากความพยายามครั้งแรกของฉันในการแกะสลักลงไปจนถึงขนาดที่แก้ไขได้เราจะต้องใช้ซีพียูประมาณ 2 ** 61 ตัวในการทำให้เสร็จทันเวลา

12
ความท้าทายที่จะเริ่มต้น "คุณจะเขียนสั้น , regex ยุ่งเหยิง" (เน้นเพิ่ม)
Ypnypn

5
@Ypnypn ความท้าทายที่ผ่านมาคือการได้รับ regex ที่ไม่สามารถตรวจสอบได้บนกระดาน - อันนี้ดูเหมือนจะเป็นครั้งแรกที่จะทำลายกำแพงแม้ว่า :)
Sp3000

3
@ MartinBüttner: ขอบคุณ! ฉันทำไปแล้ว ตอนนี้ฉันต้องออกไปลองปัญหา NP-hard regex อื่น ๆ เหล่านี้ ...
nneonneo

17

ECMAScript (1,0602 ไบต์)

(หมายเหตุภาษา: ฉันเห็นโพสต์จำนวนมากที่ระบุว่า ruby ​​หรือ python หรืออะไรก็ตามเมื่อพวกเขาไม่ได้ใช้คุณสมบัติเฉพาะภาษาใด ๆ จริงๆสิ่งนี้ต้องการเพียง(?!...)และ(?=...)ด้านบนของ POSIX ERE พร้อมกับ backreferences คุณสมบัติเหล่านั้นอาจอยู่ใน เอ็นจิน regexp ของภาษาโปรดของคุณดังนั้นอย่าท้อแท้จากการลองใช้ความท้าทายเพราะฉันเลือกใช้ตัวทดสอบออนไลน์จาวาสคริปต์)

สนุกนิด ๆ หน่อย ๆ ไม่ยากกับการคำนวณเหมือนอย่างอื่น

^(?!(.).*\1.|.+(.).*\2)(?=(.))(?=(((?![ҁѧѦЩ]{2}).)*(?=[ҁѧѦЩ]{2}).){2}(?!.*[ЩѦҁѧ]{2}))(?=(((?![ɿqԼϚ]{2}).)*(?=[ϚqԼɿ]{2}).){2}(?!.*[ԼϚɿq]{2}))(?=((?![ϼλҡՄ]{2}).)*(?=[ҡλϼՄ]{2}).(?!.*[Մλϼҡ]{2}))(?=(((?![ʯֆɎF]{2}).)*(?=[FֆʯɎ]{2}).){2}(?!.*[FɎֆʯ]{2}))(?=(((?![AɔbУ]{2}).)*(?=[ɔbAУ]{2}).){3}(?!.*[ɔAbУ]{2}))(?=(((?![ʈͽՄɒ]{2}).)*(?=[ͽՄɒʈ]{2}).){2}(?!.*[ͽՄɒʈ]{2}))(?=(((?![ϙшѭϢ]{2}).)*(?=[Ϣϙѭш]{2}).){2}(?!.*[ѭшϙϢ]{2}))(?=(((?![ՐɏƋѠ]{2}).)*(?=[ƋՐɏѠ]{2}).){2}(?!.*[ѠƋՐɏ]{2}))(?=(((?![Жտʓo]{2}).)*(?=[Жտʓo]{2}).){2}(?!.*[Жʓտo]{2}))(?=(((?![ƆʙƸM]{2}).)*(?=[ƆʙMƸ]{2}).){2}(?!.*[ƆʙMƸ]{2}))(?=(((?![dNѤѯ]{2}).)*(?=[ѤѯNd]{2}).){2}(?!.*[ѤѯdN]{2}))(?=(((?![ҎvȵҜ]{2}).)*(?=[vҜȵҎ]{2}).){2}(?!.*[ҎvҜȵ]{2}))(?=(((?![ҹɀҀҤ]{2}).)*(?=[ɀҤҀҹ]{2}).){2}(?!.*[ҹҤҀɀ]{2}))(?=(((?![OɄfC]{2}).)*(?=[fOɄC]{2}).){3}(?!.*[ɄOfC]{2}))(?=((?![ǷϗЋԒ]{2}).)*(?=[ЋϗԒǷ]{2}).(?!.*[ԒϗЋǷ]{2}))(?=((?![էҹϞҀ]{2}).)*(?=[ҹҀէϞ]{2}).(?!.*[ϞէҹҀ]{2}))(?=(((?![QԶϧk]{2}).)*(?=[QkϧԶ]{2}).){2}(?!.*[ϧԶkQ]{2}))(?=(((?![cիYt]{2}).)*(?=[իYct]{2}).){2}(?!.*[tcYի]{2}))(?=(((?![ɐҷCɄ]{2}).)*(?=[CɄɐҷ]{2}).){3}(?!.*[CҷɐɄ]{2}))(?=(((?![ҥմѾϢ]{2}).)*(?=[ϢѾմҥ]{2}).){2}(?!.*[մϢѾҥ]{2}))(?=((?![Ϛǝjɰ]{2}).)*(?=[Ϛǝjɰ]{2}).(?!.*[jɰϚǝ]{2}))(?=((?![ϭBѾҸ]{2}).)*(?=[ѾҸϭB]{2}).(?!.*[ѾҸBϭ]{2}))(?=((?![ϼλyՎ]{2}).)*(?=[λՎyϼ]{2}).(?!.*[λՎyϼ]{2}))(?=((?![MԋƆƻ]{2}).)*(?=[ƻƆԋM]{2}).(?!.*[MƆԋƻ]{2}))(?=(((?![uԳƎȺ]{2}).)*(?=[uԳƎȺ]{2}).){3}(?!.*[ȺƎuԳ]{2}))(?=((?![ɂƐϣq]{2}).)*(?=[qϣƐɂ]{2}).(?!.*[ɂƐϣq]{2}))(?=(((?![ϫճωƺ]{2}).)*(?=[ωϫճƺ]{2}).){2}(?!.*[ճƺϫω]{2}))(?=((?![ζɏΞƋ]{2}).)*(?=[ɏƋζΞ]{2}).(?!.*[ɏƋζΞ]{2}))(?=(((?![Ӄxԏϣ]{2}).)*(?=[Ӄxԏϣ]{2}).){2}(?!.*[ԏxϣӃ]{2}))(?=(((?![ԈʄʫԻ]{2}).)*(?=[ԻʄԈʫ]{2}).){2}(?!.*[ʫԈԻʄ]{2}))(?=(((?![ɒէƣʈ]{2}).)*(?=[ʈɒէƣ]{2}).){2}(?!.*[ʈƣɒէ]{2}))(?=(((?![Ϥϟƺϫ]{2}).)*(?=[Ϥϫϟƺ]{2}).){3}(?!.*[ƺϫϤϟ]{2}))(?=((?![ɋȡþͼ]{2}).)*(?=[ȡþͼɋ]{2}).(?!.*[þͼȡɋ]{2}))(?=((?![ҡʈԄՄ]{2}).)*(?=[ʈԄՄҡ]{2}).(?!.*[ՄԄҡʈ]{2}))(?=(((?![ʌkȿՌ]{2}).)*(?=[Ռȿkʌ]{2}).){3}(?!.*[kՌȿʌ]{2}))(?=(((?![gǝժʮ]{2}).)*(?=[ǝgʮժ]{2}).){2}(?!.*[gǝʮժ]{2}))(?=((?![ɧƸȝՊ]{2}).)*(?=[ƸɧȝՊ]{2}).(?!.*[ՊȝɧƸ]{2}))(?=(((?![ɜȶʟɀ]{2}).)*(?=[ɀȶʟɜ]{2}).){3}(?!.*[ȶɀʟɜ]{2}))(?=((?![ƅѿOf]{2}).)*(?=[ѿfƅO]{2}).(?!.*[Oѿfƅ]{2}))(?=(((?![GҠƪԅ]{2}).)*(?=[ҠGԅƪ]{2}).){2}(?!.*[GԅƪҠ]{2}))(?=(((?![Һӻѩͽ]{2}).)*(?=[ӻͽҺѩ]{2}).){2}(?!.*[ͽҺѩӻ]{2}))(?=(((?![ʊLՅϪ]{2}).)*(?=[ՅʊLϪ]{2}).){3}(?!.*[LʊϪՅ]{2}))(?=(((?![ɅՈƪԅ]{2}).)*(?=[ƪԅՈɅ]{2}).){2}(?!.*[ԅՈƪɅ]{2}))(?=((?![ʇɊƈѹ]{2}).)*(?=[Ɋƈʇѹ]{2}).(?!.*[ʇƈѹɊ]{2}))(?=(((?![նЏYI]{2}).)*(?=[IYնЏ]{2}).){2}(?!.*[նЏIY]{2}))(?=((?![ͼխɷȡ]{2}).)*(?=[ͼȡɷխ]{2}).(?!.*[ɷխȡͼ]{2}))(?=((?![ҝɞҎv]{2}).)*(?=[ɞҎvҝ]{2}).(?!.*[Ҏҝvɞ]{2}))(?=(((?![eƪGω]{2}).)*(?=[Geƪω]{2}).){3}(?!.*[ƪeGω]{2}))(?=(((?![ɂɿƱq]{2}).)*(?=[Ʊqɿɂ]{2}).){2}(?!.*[Ʊqɂɿ]{2}))(?=((?![ƣЖoɒ]{2}).)*(?=[Жɒoƣ]{2}).(?!.*[ƣoɒЖ]{2}))(?=(((?![Ҵԉձϻ]{2}).)*(?=[ձԉϻҴ]{2}).){2}(?!.*[ϻԉձҴ]{2}))(?=((?![ɆɟѧE]{2}).)*(?=[EѧɆɟ]{2}).(?!.*[ѧEɆɟ]{2}))(?=((?![ѪɝȾѸ]{2}).)*(?=[ѪѸɝȾ]{2}).(?!.*[ѪѸȾɝ]{2}))(?=(((?![ßΩԂɥ]{2}).)*(?=[ɥΩßԂ]{2}).){2}(?!.*[ɥßԂΩ]{2}))(?=(((?![ӃդƐϣ]{2}).)*(?=[ƐդӃϣ]{2}).){2}(?!.*[ϣդƐӃ]{2}))(?=(((?![ѪլѸԿ]{2}).)*(?=[ԿѪѸլ]{2}).){2}(?!.*[ԿѪլѸ]{2}))(?=((?![ɉшƻϙ]{2}).)*(?=[ɉƻшϙ]{2}).(?!.*[ϙƻɉш]{2}))(?=((?![ѹփʯΨ]{2}).)*(?=[ʯփΨѹ]{2}).(?!.*[ѹʯփΨ]{2}))(?=((?![ƕϯʮҏ]{2}).)*(?=[ƕҏʮϯ]{2}).(?!.*[ҏϯʮƕ]{2}))(?=((?![ՌȿSբ]{2}).)*(?=[բՌSȿ]{2}).(?!.*[SȿբՌ]{2}))(?=(((?![ИщɌK]{2}).)*(?=[ɌщИK]{2}).){2}(?!.*[ɌИщK]{2}))(?=(((?![aҵɸւ]{2}).)*(?=[ւҵaɸ]{2}).){2}(?!.*[aւɸҵ]{2}))(?=(((?![լѸխɷ]{2}).)*(?=[ɷѸլխ]{2}).){2}(?!.*[խɷլѸ]{2}))(?=(((?![ՉLʝϥ]{2}).)*(?=[LϥʝՉ]{2}).){2}(?!.*[ՉϥʝL]{2}))(?=((?![ʬϬȝɣ]{2}).)*(?=[Ϭɣȝʬ]{2}).(?!.*[ȝɣϬʬ]{2}))(?=(((?![ɺȴҵւ]{2}).)*(?=[ȴɺҵւ]{2}).){3}(?!.*[ҵȴɺւ]{2}))(?=(((?![ΞʇɊζ]{2}).)*(?=[ζɊʇΞ]{2}).){2}(?!.*[ΞɊζʇ]{2}))(?=(((?![դփӃΨ]{2}).)*(?=[ΨփդӃ]{2}).){2}(?!.*[ΨփդӃ]{2}))(?=((?![ԳuҦc]{2}).)*(?=[uԳҦc]{2}).(?!.*[ҦucԳ]{2}))(?=(((?![ԻЭɌщ]{2}).)*(?=[ԻɌщЭ]{2}).){2}(?!.*[ɌщԻЭ]{2}))(?=((?![ЉջѮӺ]{2}).)*(?=[ӺЉѮջ]{2}).(?!.*[ѮӺЉջ]{2}))(?=(((?![ӿѤɹN]{2}).)*(?=[ӿɹѤN]{2}).){3}(?!.*[ѤNɹӿ]{2}))(?=(((?![ƕʮBg]{2}).)*(?=[Bʮgƕ]{2}).){3}(?!.*[Bʮgƕ]{2}))(?=((?![կƛȸԓ]{2}).)*(?=[ƛȸԓկ]{2}).(?!.*[կԓƛȸ]{2}))(?=(((?![ɥДȸh]{2}).)*(?=[ɥhДȸ]{2}).){2}(?!.*[ɥhȸД]{2}))(?=(((?![ʁԺեW]{2}).)*(?=[եWԺʁ]{2}).){2}(?!.*[ԺʁWե]{2}))(?=((?![ɮςϿʢ]{2}).)*(?=[ʢϿɮς]{2}).(?!.*[ɮςʢϿ]{2}))(?=(((?![ձУAƾ]{2}).)*(?=[ƾУձA]{2}).){2}(?!.*[УAձƾ]{2}))(?=(((?![ԻϠɌʄ]{2}).)*(?=[ʄɌԻϠ]{2}).){2}(?!.*[ϠɌʄԻ]{2}))(?=((?![ɜҥմȶ]{2}).)*(?=[ҥȶɜմ]{2}).(?!.*[ҥȶɜմ]{2}))(?=(((?![ƏՀթϞ]{2}).)*(?=[թՀƏϞ]{2}).){2}(?!.*[ƏՀթϞ]{2}))(?=((?![ҩɃȽϛ]{2}).)*(?=[ɃȽϛҩ]{2}).(?!.*[ҩϛɃȽ]{2}))(?=((?![ҠȺԃD]{2}).)*(?=[ȺҠԃD]{2}).(?!.*[DԃҠȺ]{2}))(?=((?![ɆʊLϥ]{2}).)*(?=[LϥʊɆ]{2}).(?!.*[ʊϥɆL]{2}))(?=(((?![ͽѩɒЖ]{2}).)*(?=[ͽɒѩЖ]{2}).){2}(?!.*[ѩɒЖͽ]{2}))(?=(((?![ςϪʢƩ]{2}).)*(?=[ƩʢςϪ]{2}).){3}(?!.*[ςƩϪʢ]{2}))(?=(((?![ҁϥѧɆ]{2}).)*(?=[ϥѧҁɆ]{2}).){2}(?!.*[ѧҁϥɆ]{2}))(?=((?![Жϗѩʓ]{2}).)*(?=[ʓϗЖѩ]{2}).(?!.*[ʓЖϗѩ]{2}))(?=(((?![ʁեɋþ]{2}).)*(?=[ʁɋեþ]{2}).){2}(?!.*[þեʁɋ]{2}))(?=((?![Mnƻɉ]{2}).)*(?=[Mɉƻn]{2}).(?!.*[ƻMnɉ]{2}))(?=(((?![HʬϬѺ]{2}).)*(?=[HѺʬϬ]{2}).){2}(?!.*[ϬѺʬH]{2}))(?=(((?![cիըҦ]{2}).)*(?=[ըҦիc]{2}).){2}(?!.*[cիҦը]{2}))(?=((?![ȸɥկΩ]{2}).)*(?=[ɥΩկȸ]{2}).(?!.*[ɥȸկΩ]{2}))(?=(((?![ʫҝԲɞ]{2}).)*(?=[ʫԲɞҝ]{2}).){2}(?!.*[ʫɞԲҝ]{2}))(?=(((?![ҺЋϗѩ]{2}).)*(?=[ѩҺϗЋ]{2}).){3}(?!.*[ҺѩЋϗ]{2}))(?=((?![ʯΨɎч]{2}).)*(?=[ʯΨɎч]{2}).(?!.*[ʯΨɎч]{2}))(?=(((?![ѮɔЉA]{2}).)*(?=[ЉɔѮA]{2}).){2}(?!.*[ѮɔAЉ]{2}))(?=(((?![ʞӶdN]{2}).)*(?=[dNʞӶ]{2}).){2}(?!.*[ӶNdʞ]{2}))(?=(((?![ԀŋҔɴ]{2}).)*(?=[ŋԀҔɴ]{2}).){3}(?!.*[ҔɴŋԀ]{2}))(?=(((?![ΠЪƏթ]{2}).)*(?=[ƏΠթЪ]{2}).){3}(?!.*[ΠթЪƏ]{2}))(?=(((?![OՌѿբ]{2}).)*(?=[ՌOբѿ]{2}).){2}(?!.*[OբՌѿ]{2}))(?=((?![ɮȾʢѪ]{2}).)*(?=[ɮȾʢѪ]{2}).(?!.*[ѪȾɮʢ]{2}))(?=((?![ЪϤՋΠ]{2}).)*(?=[ϤΠЪՋ]{2}).(?!.*[ՋΠЪϤ]{2}))(?=((?![Մͽӻϼ]{2}).)*(?=[ͽϼՄӻ]{2}).(?!.*[ϼͽՄӻ]{2}))(?=((?![ԋҳѦЩ]{2}).)*(?=[ѦԋЩҳ]{2}).(?!.*[ѦЩҳԋ]{2}))(?=((?![gҶҸB]{2}).)*(?=[BҶgҸ]{2}).(?!.*[ҸBgҶ]{2}))(?=(((?![ɢλҡѥ]{2}).)*(?=[λҡɢѥ]{2}).){2}(?!.*[ѥλɢҡ]{2}))(?=(((?![AϻЉձ]{2}).)*(?=[ϻձЉA]{2}).){2}(?!.*[ϻձЉA]{2}))(?=((?![tRիp]{2}).)*(?=[Rtpի]{2}).(?!.*[tpRի]{2}))(?=(((?![ɮȹϿÞ]{2}).)*(?=[ϿɮÞȹ]{2}).){2}(?!.*[ϿɮȹÞ]{2}))(?=((?![ϯժʮџ]{2}).)*(?=[ժџϯʮ]{2}).(?!.*[џϯʮժ]{2}))(?=(((?![HʬȠҨ]{2}).)*(?=[HҨȠʬ]{2}).){2}(?!.*[ȠҨʬH]{2}))(?=((?![ՒԉPϻ]{2}).)*(?=[ԉϻPՒ]{2}).(?!.*[PϻԉՒ]{2}))((?=Գ[նƎuc]|ƕ[Bʮȴҏ]|ϣ[ԏɂӃƐ]|Ʊ[ɿϬӄɂ]|Ѿ[ϭϢҸҥ]|ͽ[ѩӻՄɒ]|ɷ[խͼլ]|փ[դiѹΨ]|ϛ[ɅɃȽՀ]|Ԃ[ɥѭմß]|խ[ȡɐѸɷ]|P[ȠՒԉ]|ӷ[ЩEՊƆ]|Ə[ΠթƣϞ]|ч[xɎΨ]|ʄ[ԈϠԻҺ]|Љ[AѮϻջ]|ɒ[ʈƣЖͽ]|ʞ[ӶɔNЦ]|Ɛ[ϣɰqդ]|ʮ[ϯժƕg]|ɥ[ȸДԂΩ]|Ҕ[ŋՐɺɴ]|χ[Ԏѯ]|Ջ[ΠϤԾտ]|Ɏ[чʯֆ]|ҥ[մѬѾȶ]|ɞ[ҝҎԲ]|ҏ[ƕՐϯɺ]|Հ[ϛթϞw]|y[ϼԈҝՎ]|λ[ѥՎϼҡ]|Մ[ͽҡϼʈ]|ϟ[ϫϤԾ]|Ћ[ǷϠҺϗ]|ʫ[ԲԈҝԻ]|ǝ[gjɰժ]|Ԅ[ҡҹʟʈ]|ʌ[kՌэC]|ȶ[ҥЊɜʟ]|Ɍ[щИԻϠ]|ի[Rtըc]|Ո[ƪƺЪɅ]|ƺ[ՈϤϫω]|ß[ԂΩɜҤ]|I[նЏљ]|ҷ[ȡэCɐ]|Ц[ςbʞɹ]|Ǝ[ǂȺԳG]|ӄ[ƱӾѺ]|ʇ[ζiɊѹ]|ֆ[ɎF]|ɏ[ѠΞƋ]|Բ[ɞʫЭ]|Ի[ɌЭʫʄ]|ƪ[ԅωGՈ]|ȡ[խɋͼҷ]|Ϡ[ɌдʄЋ]|ɋ[эʁþȡ]|U[ɝɄՅʝ]|ɺ[ҵȴҏҔ]|Ƚ[ԅϛDҩ]|Ɋ[ƈʇΞ]|ժ[Φʮǝџ]|Ӿ[ӄɂԏ]|Ψ[Ӄчʯփ]|Ω[Ղկßɥ]|щ[KɌЭ]|ɉ[nҶшƻ]|Ժ[WԱե]|G[ƎeҠƪ]|ղ[կՂՑɃ]|Ӷ[ԷʞdѮ]|u[ȺԳQҦ]|Ѡ[ɴɏՐ]|ƛ[ԓՑѿկ]|ɜ[ɀմßȶ]|Ҵ[ԉձʡɧ]|ȿ[kSՌԃ]|ɂ[qӾϣƱ]|Պ[ӷɧƸʡ]|Щ[ѧѦӷԋ]|Ⱦ[ѪɝʢՅ]|Ƀ[ղҩwϛ]|Ҏ[vҜɞ]|ɐ[ҷɄɝխ]|ԏ[ϣxӾ]|Ҁ[ҹϞҤw]|մ[ԂҥɜϢ]|ҳ[ДԋϙѦ]|Ϛ[jɰqԼ]|w[ҀՀɃՂ]|E[ӷɟѧʡ]|У[μAbƾ]|ձ[ҴϻƾA]|ɟ[ɆμEƾ]|Ҥ[ҀßՂɀ]|v[ȵҎՎҝ]|ш[ϢϙɉҸ]|Ͽ[ɹɮςÞ]|O[fCՌѿ]|ʁ[ԶեWɋ]|ȹ[ÞԿɮ]|Ϟ[ՀէҀƏ]|ԋ[ƻҳЩƆ]|ƅ[fԓՉѿ]|ω[ƺeճƪ]|ʈ[ɒԄՄէ]|Ԉ[ʫʄӻy]|Ƌ[ζՐϯɏ]|ɰ[ǝƐΦϚ]|ȴ[ƕϭւɺ]|Δ[Չhҁԓ]|Π[ՋЪoƏ]|Ϫ[ʢƩʊՅ]|ӻ[ҺԈͽϼ]|ʝ[ՉLfU]|Ծ[ϟrՋ]|þ[ɋեͼ]|ӿ[ѤɹÞ]|բ[ՌՑSѿ]|ҡ[λՄɢԄ]|ɸ[ȻՃaҵ]|д[ϠИǷ]|ճ[ωϫл]|ɀ[ҹҤʟɜ]|л[ճeљ]|Ϥ[ϟЪƺՋ]|c[ԳYҦի]|Ռ[Oʌբȿ]|ն[ԳǂYI]|Ʌ[ԅϛՈթ]|ҝ[yɞʫv]|p[ƜRt]|ƣ[էƏɒo]|Ҷ[Ҹɉgj]|A[УձɔЉ]|Þ[ȹϿӿ]|Ƿ[дЋԒ]|k[QԶȿʌ]|ջ[ՒӺЉ]|Ɇ[ʊѧϥɟ]|ʢ[ςϪɮȾ]|ѭ[ДϢϙԂ]|ʘ[ЏƜt]|ѹ[ʇʯփƈ]|ʟ[Ԅȶɀɢ]|ϯ[ҏƋʮџ]|լ[ԿɷѸ]|Ƹ[ՊʙƆȝ]|N[ɹʞdѤ]|ς[ЦϿʢƩ]|ǂ[eƎљն]|ѧ[ɆEҁЩ]|ɴ[ѠҔԀ]|Ʉ[ɐfCU]|ҹ[ԄҀէɀ]|Ւ[ջPϻ]|ѥ[ɢλaՃ]|o[ΠտЖƣ]|g[BҶʮǝ]|Կ[լѪȹ]|Џ[ʘIY]|Y[ctЏն]|Ҡ[ȺDGԅ]|Ѧ[Щҁҳh]|Ѻ[HϬӄ]|ɹ[NЦϿӿ]|ԓ[ƛƅΔȸ]|f[OƅɄʝ]|L[ʝʊՅϥ]|ϼ[yӻλՄ]|џ[ζժiϯ]|ҩ[SɃȽՑ]|Ʃ[Ϫμbς]|դ[փƐӃΦ]|Ѯ[ӶӺЉɔ]|ƻ[ɉԋϙM]|ѩ[ҺϗͽЖ]|ʊ[μɆϪL]|Ж[ɒʓѩo]|B[ƕҸgϭ]|ԅ[ҠɅƪȽ]|ɔ[ʞѮAb]|ϗ[ЋʓԒѩ]|Ɔ[ӷMƸԋ]|љ[лǂI]|ȸ[ɥԓhկ]|q[ƐɿϚɂ]|Ҹ[шҶBѾ]|ʡ[ҴƾEՊ]|Ԏ[dχԷ]|j[ϚnǝҶ]|Ҧ[uըcϧ]|ϻ[ՒЉԉձ]|ʙ[ƸԼɣM]|ե[ʁþԺ]|Ƞ[PHҨ]|Φ[ɰդiժ]|Њ[ɢaѬȶ]|b[ɔƩЦУ]|Չ[ʝƅϥΔ]|ϧ[ԶҦWQ]|Ճ[ѥɸȵՎ]|Ҩ[ɧԉȠʬ]|ҁ[ΔѧѦϥ]|Ց[ҩƛղբ]|ɿ[qԼɣƱ]|μ[УƩɟʊ]|e[ωǂGл]|Һ[Ћʄѩӻ]|ѯ[dѤχ]|Ԓ[Ƿюϗ]|ҵ[ɸɺŋւ]|տ[Ջʓro]|ϙ[ѭƻҳш]|R[իԱp]|Ɯ[pʘ]|r[Ծюտ]|ƈ[ɊѹF]|M[ʙnƆƻ]|i[փʇΦџ]|ƾ[ձУʡɟ]|ɝ[ѸȾɐU]|ю[Ԓʓr]|Д[hҳѭɥ]|a[Њѥւɸ]|Յ[LUϪȾ]|ϭ[ѬBѾȴ]|Ѹ[Ѫɝխլ]|D[ԃȽҠS]|Ⱥ[ԃuƎҠ]|Ȼ[ŋȵɤɸ]|э[ʌԶҷɋ]|Ѥ[ѯӿN]|ԃ[ȺDȿQ]|ȵ[ҜȻՃv]|S[բȿҩD]|Ղ[ҤwΩղ]|ɢ[ѥҡʟЊ]|ɣ[Ϭɿȝʙ]|Վ[yvλՃ]|Ϭ[ɣʬƱѺ]|Ӄ[ϣxΨդ]|թ[ƏɅЪՀ]|ȝ[ʬƸɧɣ]|Ԁ[ɤɴŋ]|ѿ[ƅOƛբ]|H[ȠʬѺ]|F[ֆƈʯ]|Ѫ[ѸȾɮԿ]|է[ʈƣϞҹ]|ʯ[ѹFɎΨ]|ŋ[ȻҔԀҵ]|ɤ[ԀҜȻ]|ԉ[ҴPҨϻ]|ͼ[ȡɷþ]|t[իʘpY]|Ϣ[ѭմѾш]|Э[щԲԻ]|ɮ[ʢѪϿȹ]|ϫ[ƺճϟ]|Ѭ[Њւϭҥ]|Լ[Ϛnɿʙ]|Ξ[ζɊɏ]|Է[ԎӺӶ]|Q[ϧkԃu]|ւ[ҵaѬȴ]|Ր[ѠҏҔƋ]|ը[իԱWҦ]|ʓ[տϗюЖ]|K[щИ]|Ӻ[ԷѮջ]|x[чӃԏ]|И[KɌд]|ʬ[HҨȝϬ]|Ա[RըԺ]|ɧ[ȝҴՊҨ]|n[jɉMԼ]|C[ʌҷɄO]|W[ϧըʁԺ]|h[ДѦΔȸ]|ϥ[ՉLɆҁ]|Ъ[ΠՈϤթ]|կ[Ωղƛȸ]|ζ[џΞʇƋ]|Ҝ[ɤҎȵ]|Զ[ϧkʁэ]|d[ԎNѯӶ]).){3,}\3

ทดสอบที่นี่: http://regex101.com/r/kF2oQ3/1

(จิ้งหรีดร้องเจี๊ยก ๆ )

ไม่มีผู้รับ? เป็นเรื่องน่าผิดหวังอย่างยิ่งที่คิดว่าจะโพสต์สปอยเลอร์โดยไม่มีหลักฐานว่าใครก็ตามที่มองมันนานพอที่จะเข้าใจว่าเป็นปัญหาประเภทใด

ฉันกำลังเขียนคำอธิบายที่สมบูรณ์เพื่อโพสต์ในภายหลัง แต่ฉันคิดว่าฉันจะมีความสุขมากขึ้นถ้ามีคนเอาชนะฉัน

เมื่อฉันบอกว่ามันไม่ใช่ "ยากในการคำนวณ" ... มันเป็นตัวอย่างของปัญหา NP-complete แต่ไม่ใช่กรณีใหญ่

คำแนะนำ:มันเป็นปริศนาดินสอและกระดาษ แต่ฉันจะค่อนข้างประทับใจถ้าคุณสามารถแก้ปัญหานี้ด้วยดินสอและกระดาษเพียงอย่างเดียว (หลังจากถอดรหัส regexp ในรูปแบบที่เหมาะสมสำหรับการพิมพ์)

สปอยเลอร์เวลา

ที่นี่มีสปอยเลอร์หลายระดับ หากคุณยังไม่สามารถแก้ปัญหา regexp ได้คุณอาจต้องการลองอีกครั้งหลังจากอ่านเฉพาะสปอยเลอร์บล็อกแรก คีย์จริงที่ตรงกับ regexp คือหลังจากบล็อกสปอยเลอร์สุดท้าย

regexp นี้เข้ารหัสตัวต่อปริศนาSlitherlink

เมื่อคุณทราบว่าเกิดอะไรขึ้นและแปลง regexp ให้เป็นตาราง Slitherlink คุณจะพบว่ามันยากกว่า Slitherlink ทั่วไป มันอยู่ในตารางสี่เหลี่ยมจัตุรัส 16x16 ซึ่งใหญ่กว่า 10x10 ปกติ นอกจากนี้ยังเป็นที่ผิดปกติเล็กน้อยที่ไม่มี0เบาะแสและปัญหาการขาดแคลนญาติของ3's 0ของและ3เป็นเบาะแสที่ง่ายที่สุดในการทำงานกับดังนั้นฉันไม่ต้องการที่จะให้พวกเขามาก

ปริศนา slitherlink

ชั้นที่สองของการเน่าเสีย:

เมื่อคุณกำลังไขปริศนา Slitherlink ความประหลาดใจเพิ่มเติมที่เกิดขึ้นคือ Slitherlink นี้มีโซลูชันมากกว่าหนึ่งรายการ หากคุณเป็นนักแก้ปัญหา Slitherlink เป็นประจำและคุณมีนิสัยชอบหักเงินตามข้อสันนิษฐานของโซลูชันที่ไม่เหมือนใครคุณอาจจะสับสน ถ้าเป็นเช่นนั้นคุณเป็นคนโกงและนี่คือการลงโทษของคุณ! ส่วนหนึ่งของงานแก้ปริศนาคือการหาวิธีแก้ปัญหาที่มี

ชั้นสุดท้ายของการเน่าเสีย:

ความบิดเบี้ยวสุดท้าย: โซลูชันทั้งสองของ Slitherlink นั้นส่วนใหญ่เหมือนกัน แต่อย่างใดอย่างหนึ่งยาวกว่าอีกเล็กน้อย คุณต้องหาตัวย่อ หากคุณพบความยาวและเข้ารหัสเป็นสตริงเพื่อให้ตรงกับ regexp สตริงจะมีความยาว 257 ตัวอักษร เส้นทางผ่าน 256 โหนด แต่คุณต้องทำซ้ำโหนดแรกที่สิ้นสุดเพื่อปิดการวนซ้ำ และถ้าคุณไปไกลขนาดนั้นคุณอาจคิดว่าฉันทำผิดพลาดและลืมนับตัวละครพิเศษนั้น Nope! และ / หรือ Gotcha! (และ / หรือ Boosh! และ / หรือ Kakow!)

คำตอบสั้น ๆ คือ 254 เซกเมนต์ยาวและเข้ารหัสสตริงของอักขระ 255 ตัวซึ่งเป็นกุญแจ เนื่องจากคุณสามารถเริ่มต้นที่โหนดใด ๆ บนลูปและดำเนินการตามเข็มนาฬิกาหรือทวนเข็มนาฬิกามี 254 * 2 = 508 คำตอบที่เป็นไปได้

โซลูชัน slitherlink

ไม่ตรง: การbananabananabanana
แข่งขัน: ƜpRԱԺեþɋэʌkȿՌOfɄCҷɐխɷլԿѪɮȹÞӿѤNɹЦʞӶdѯχԎԷӺջՒϻЉAɔbУƾձҴԉҨʬHѺӄӾԏxчɎֆFƈɊΞζџiփΨӃϣɂƱϬɣɿqϚɰƐդΦժʮgBƕȴւҵɺҏϯƋՐѠɴҔŋԀɤȻɸaЊѬҥѾҸшɉҶjnMʙƸՊʡEɟμƩςʢϪʊLՅȾɝUʝՉϥҁѧЩӷƆԋҳϙѭϢմԂɥȸhΔԓƛѿբՑҩSDȽԅҠGeωƪՈɅϛɃwҀҤՂΩßɜȶʟɀҹԄҡλѥՃȵҜҎɞԲЭщɌИдϠʄԻʫҝyϼӻҺЋϗѩͽɒʈէϞՀթЪΠƏƣoտʓюrԾϟϤƺϫճлљIնǂƎԳuȺԃQϧԶʁWըիcYЏʘƜ
พิสูจน์: http://regex101.com/r/pJ3uM9/2


ขอแสดงความยินดีกับการทำผ่าน 72 ชั่วโมง! ตอนนี้คุณสามารถล็อคคำตอบของคุณจากการแคร็กโดยเปิดเผยกุญแจ จนกว่าคุณจะทำคำตอบยังคงสามารถถอดรหัสได้
Martin Ender

ฉันพยายาม แต่ไม่พบว่าเป็นระนาบ ...
jimmy23013

14

รส Perl, 158 [แตก]

นี่เป็นความพยายามครั้งแรกของฉัน:

(?(R)|^(?=[a-z]))((?!.*(?&K))(((?|([?-K])|(?'K'$)|(?'k'j'k'?)|(?'k'C[^_^]{3,33}))(?(3)\3|3)){3}(?(R)R(-.-)|(?R))(?'k'<grc>-(?!(?&k))\4(?(R)|\$\4(?5)$)))|(?R))

ทดสอบบน ideone.com

(?(R)|^(?=[a-z]))ตัวอักษรตัวแรกมากต้องเป็นตัวอักษรตัวพิมพ์เล็ก
(?!.*(?&K))สตริงไม่สามารถมีตัวอักษรในช่วง ASCII [?-K]
(?|...|(?'k'j'k'?)|...)ไม้ขีดไฟj'k(กลุ่มอื่น ๆ ที่มีปลาเฮอริ่งแดงเป็นหลัก)
(?(3)\3|3){3}ซ้ำตรงกับกลุ่มที่ 3 หรือ '3' หลังจาก 3 ระดับของการเรียกซ้ำซ้ำ 3 ครั้ง
(?(R)...|(?R))recurse มากกว่า regex ทั้งหมดครั้งเดียวหรือจับคู่ตัวละคร
...(?!(?&k))...ฉันคิดว่านี่เป็น[?-K]อีกครั้ง แต่ฉันจำไม่ได้
(?(R)|...$)หลังจากเรียกซ้ำจับคู่กลุ่มบางกลุ่มและจบสตริง
|(?R)หากมีสิ่งใดที่ไม่ตรงกันเมื่อถึงเวลาที่จะเรียกซ้ำ: D


4
จับคู่: j'k3j'kj'k3j'kj'kj'k3j'k3j'kj'k3j'kj'kj'k3R-k-<grc>-j'k<grc>-j'k$j'k-k-ไม่จับคู่: HOLYCRAPTHATWASEVIL(จับคู่กันได้ที่ideone.com/pXaGaXเพื่อพิสูจน์)

16
ทุกคนที่พยายามแก้ไขปัญหานี้และได้ครึ่งทางขณะนี้ก็พร้อมที่จะส่งรายงานข้อผิดพลาด 2 รายการและเอกสารประกอบ 3 ชุดสำหรับเครื่องมือ perexp regexp (และพวกเราทุกคนสำหรับสิ่งที่แตกต่างกัน)

7
+1 สำหรับรหัสเด็ดและมีสัญลักษณ์แสดงอารมณ์ใน regex ของคุณ[^_^] (-.-)
justhalf

@ WumpusQ.Wumbley ทำได้ดีมาก! ฉันคิดว่าพวกโจรกำลังชนะรางวัลนี้ :(
ก.ย.

3
ความคิดเห็นก่อนหน้าของฉันส่วนใหญ่เป็นเรื่องตลก แต่บางทีคำอธิบายบางอย่างน่าจะดี การใช้กลุ่มการดักจับที่ระบุชื่อข้างใน(?|...)นั้นยุ่งยาก แต่ก็มีการบันทึกไว้ ดูทางเดินในperlreที่เริ่มต้นด้วยBe careful when using the branch reset pattern in combination with named captures.เคล็ดลับคือการที่กลุ่มที่มีหมายเลขเดียวกัน แต่ชื่อที่แตกต่างกันในกลุ่มเดียวกันในขณะที่กลุ่มที่มีชื่อเดียวกัน แต่ตัวเลขที่แตกต่างกันกลุ่มที่แตกต่างกัน

12

รสชาติ JS, 9998 ไบต์ [แตก]

^(?!.*(.).*\1)(?=M)((?=!7|!D|!a|!§|!¾|!Ö|!ù|!Ě|!į|!Ň|"C|"s|"t|"¡|"°|"»|"è|"ñ|"÷|"ķ|"ļ|"Œ|#W|#k|#l|#o|#q|#¶|#À|#Â|#Æ|#č|%!|%1|%O|%ÿ|%Ĕ|%Ğ|%Ī|%ĭ|&e|&q|&Õ|&æ|&ü|&đ|&Ĩ|'%|'`|'k|'¯|'É|'í|'þ|'ė|'Ğ|'ĩ|'IJ|'ļ|'ł|,%|,'|,l|,ª|,®|,¸|,¹|,ã|,õ|,Ċ|,Ġ|,Ī|,İ|,Ņ|-U|-V|-»|-Ï|-Þ|-ì|0_|0u|0°|0Ġ|0İ|0ł|1#|1-|1g|1å|1é|1ą|1Ļ|1ń|2B|2O|2¬|2ë|2ò|2õ|2Ğ|2ĩ|2į|2IJ|2ļ|3d|3²|3Ï|3Þ|3ß|3ç|3ø|3ĉ|3ķ|3ĸ|3Ŀ|4c|4£|4ß|4ã|4Ċ|4ģ|4Ĩ|4ő|4Œ|5&|5Q|5û|5Ā|5ě|5ĩ|6ú|6Ķ|6Ł|7Q|7V|7e|7²|7Á|7Þ|7à|7đ|7Ġ|7ĵ|8w|8¯|8¾|8ņ|8ő|9H|9Y|9i|:6|:s|:¬|:ð|:ü|:Ĉ|:Ċ|:Ĵ|:ĸ|:Ŀ|;X|;®|;¯|;²|;¸|;Ó|;à|;ĥ|;Œ|<-|<t|<å|<ø|<Į|<Ľ|<ō|=&|=l|=¨|=Á|=Ý|=Č|=Ĩ|=Ń|>-|>±|>¸|>Ä|>à|>ð|>ó|>Ī|@B|@F|@_|@³|@´|@Ó|@Ü|@ã|@û|@Ğ|@ğ|@Ĭ|@İ|@Ŀ|A5|AV|A_|Ax|A¹|AÅ|AĞ|AĶ|Aņ|Aō|B¼|BÂ|Bä|Bç|BĊ|Bį|Bİ|BĻ|BŅ|C1|C<|CG|Cy|C~|C¼|Cì|Cù|Cō|DT|DU|Dc|Dj|D¤|DÂ|DÑ|DĀ|Dİ|E,|E¬|E¼|E×|Eā|Eė|Eń|FZ|Ft|F»|F¿|FÈ|FØ|Fç|Fì|Fć|FĬ|Fı|FŅ|Gj|Gl|Gv|G¯|Gâ|Gï|GĖ|Gę|GĦ|Gĭ|H8|HB|HS|Hu|H¥|HÃ|HÌ|Hø|HĆ|HĒ|HĬ|Hĭ|I=|It|I©|Iæ|IĿ|Iō|J1|J3|J5|JQ|JÉ|JÔ|J×|Jă|JIJ|K-|KP|KÄ|Kî|Kā|KĐ|Kġ|KĨ|KĴ|L!|LÐ|Lá|LĚ|LĠ|M5|M¿|MÅ|Må|MĈ|MŊ|N,|N2|N5|NB|Nh|NÂ|NØ|NÜ|NĖ|Nĝ|NŃ|O;|Of|O¯|O¸|Oå|OĈ|Oď|Oē|OIJ|P7|PQ|Pp|P£|Pđ|PĴ|Pŀ|Q7|QR|Q¥|QÝ|Qî|Qī|Qĸ|Qŀ|Qő|R0|RA|RI|RN|R¥|R¼|Rö|Rû|RĬ|RĮ|RŎ|S;|SC|ST|Sd|Sy|S§|TX|Td|Tw|Tª|T¿|Tõ|U0|U:|UÊ|Uĉ|Uę|UĢ|UĦ|Uį|UĶ|Uň|V:|Vq|Vs|V¦|VÂ|Vó|Vþ|Wh|WÅ|WÉ|Wê|Wô|Wģ|Wň|X:|XI|XS|X`|Xâ|Xċ|Xė|XĠ|Xģ|Y"|YX|Yb|Yn|Yo|Y£|Y§|YÌ|YÎ|YÚ|Yá|Yă|YĜ|Yĥ|YĿ|Yʼn|Z6|Z:|Z;|Z¶|Zå|Zæ|Zċ|Zĺ|ZŊ|_,|_-|_c|_g|_à|_ĉ|_Ħ|_ł|`I|`z|`ð|`ă|`IJ|`ij|a4|a9|aF|a½|aä|añ|aď|aĝ|aĸ|b&|b7|b¸|bÝ|bë|bĺ|bņ|bŊ|c&|cP|cr|cÄ|cÑ|cÖ|cČ|cę|cĩ|cIJ|cķ|cĿ|d"|dI|d¥|d¦|dä|dģ|eK|e²|eý|eą|eČ|eĔ|eIJ|eĶ|eń|fM|fm|f¥|fÇ|fÒ|fæ|fì|fć|fě|fĝ|g!|gN|gx|gz|gÍ|gĚ|gĞ|h"|h¬|h¶|hä|hì|hï|hĆ|hņ|hŋ|hŏ|i'|i9|i¢|i¤|iÓ|iÖ|iā|iĕ|iĝ|iį|iĶ|jH|jT|j£|jµ|j·|jø|jĸ|jŐ|k0|k2|kA|k~|k¨|k½|kÙ|l&|lX|lc|ln|l£|l¥|lµ|lÃ|lå|lé|lĩ|lŌ|lŒ|m-|mW|mÐ|mĘ|mĮ|mĸ|n!|n2|nJ|nU|n¬|n½|nĆ|nĒ|nĔ|nĭ|nŇ|o5|o<|oD|oM|oÖ|oĂ|ps|pz|pº|pê|pĢ|pĥ|pIJ|qK|qa|q§|qÛ|qç|qý|qă|qĒ|qĴ|qĶ|qń|rA|re|rj|r§|r«|r¿|rÃ|rß|rò|rĔ|rĖ|rĢ|rķ|sD|sc|sÍ|sĀ|tT|tW|ta|t£|t¯|t±|tÊ|tÑ|tĚ|tļ|uV|ua|ub|uf|u¦|u´|u»|u¾|uË|uØ|uĞ|uĪ|uĹ|v:|vi|vw|v§|v½|vÄ|vÈ|vÌ|vù|vĮ|vļ|vʼn|vŎ|w!|w0|wZ|wg|wÞ|wæ|wò|wù|wĥ|wħ|wŎ|xD|x©|x®|xá|xû|xģ|xľ|xł|yC|ya|yr|y²|yÉ|yò|yĆ|yĠ|yĵ|yŒ|zM|zi|z¯|zø|zú|zć|zđ|~5|~Y|~¨|~º|~Û|~å|~ê|~ô|~ü|~ą|~ĥ|~Ī|~İ|~Ľ|~ō|¡J|¡±|¡¼|¡Ê|¡Ë|¡Ñ|¡ã|¡Ă|¡Ġ|¡Ĩ|¡ī|¡Œ|¢@|¢G|¢±|¢º|¢ç|¢Đ|¢İ|¢Ŀ|£F|£e|£Þ|£ä|£Ĵ|¤P|¤p|¤¯|¤µ|¤þ|¤ď|¤Ģ|¤ī|¥Z|¥¤|¥È|¥Ñ|¥û|¥Ď|¦T|¦Y|¦Z|¦a|¦b|¦e|¦q|¦r|¦¡|¦³|¦ĩ|¦IJ|¦ĺ|§b|§n|§w|§¿|§Ç|§Đ|¨3|¨Ã|¨Ë|¨Î|¨ë|¨÷|¨Č|¨ġ|¨Ī|¨Ĺ|¨ł|¨Œ|©I|©Z|©Ý|©ë|©ü|©ġ|©ŋ|ªP|ªo|ªr|ª¨|ª¯|ª²|ª¾|ªÇ|ªÔ|ªÙ|ªĉ|«K|«p|«£|«¨|«©|«¬|«®|«Õ|«Þ|«ß|«ö|«Đ|¬!|¬j|¬ª|¬¼|¬À|¬Ã|¬Ì|¬ú|¬ő|®#|®´|®É|®č|®đ|®ī|®ʼn|¯9|¯g|¯n|¯¹|¯È|¯Ē|¯ę|¯ġ|°N|°d|°k|°m|°s|°²|°È|°Î|°ê|°ó|°ʼn|±%|±R|±Y|±r|±æ|±Ŀ|±ń|²D|²H|²U|²×|²ã|²ä|²ç|²ą|²ħ|³`|³Ë|³ã|³ë|³ò|³ô|³ø|³Ċ|³Ĥ|³Ŀ|´~|´§|´Ê|´è|´Ķ|´Ŏ|µ:|µC|µ¢|µØ|µó|µĠ|µģ|µĤ|¶!|¶0|¶7|¶Y|¶¤|¶À|¶Ö|¶Ħ|¶ő|·p|·Á|·Ç|·ë|·î|·Ļ|·Ŋ|¸X|¸Z|¸¦|¸÷|¸ú|¸Đ|¸ĝ|¹,|¹>|¹M|¹Z|¹a|¹¢|¹Ì|¹×|¹Ø|¹þ|¹ĉ|¹Ĩ|º>|ºj|ºá|ºç|ºý|ºć|»2|»c|»°|»Ä|»ñ|»Ġ|»Ŋ|¼3|¼F|¼c|¼d|¼x|¼y|¼Ä|¼É|¼û|¼Č|¼ē|¼Ĩ|¼Ĭ|¼Ĵ|¼Ĺ|½k|½Ø|½ø|½ħ|¾2|¾:|¾L|¾¿|¾Á|¾ñ|¾ô|¾÷|¾đ|¾ĥ|¾Ń|¿D|¿«|¿ö|¿ø|¿Ĕ|¿ę|¿Ļ|¿ō|À3|ÀW|À°|ÀÆ|Àđ|ÀĘ|ÀĞ|Àģ|Àİ|Á§|Áé|Áõ|ÁĜ|Áĝ|ÁĪ|Áʼn|Â&|ÂB|ÂM|¿|Âø|Âħ|Âĺ|ÂĻ|ÂŁ|Âʼn|Ã`|Ãt|â|é|ÃĆ|ÃĖ|Ãĥ|Ãĩ|Ä_|Ä¥|ÄÌ|ÄÞ|Äð|ÄĆ|Äİ|ÄŁ|Å@|ÅY|Å«|ÅĄ|Åı|Åĸ|Æ;|ÆK|Æv|Ƶ|ƹ|ƽ|ÆÇ|ÆÛ|Æõ|Æü|ÆĆ|ÆĤ|Çd|Ǻ|ÇĔ|Çě|Çģ|ÇĶ|ÇĽ|Èd|Èz|È~|È´|Ƚ|ÈÂ|Èæ|Èõ|ÈŅ|ÉH|ÉO|ÉÌ|Éï|ÉČ|Éę|ÉĬ|Éĭ|ÉĴ|ÉŎ|Ê%|Ê6|ÊI|Êk|Êy|ʳ|ÊÁ|Êñ|Êą|ÊŃ|Ë!|ËH|Ëh|˺|Ë»|ËÆ|Ëğ|ËŌ|Ì3|Ì7|ÌG|Ìp|Ì«|Ìè|Ìï|ÌĮ|ÌŎ|ÍZ|Íd|Í©|ÍÖ|Íá|Íê|Íø|Íā|ÍŊ|Î-|Î_|ÎÊ|Îæ|Îó|Îù|ÎĀ|ÎĐ|Îġ|Îĭ|ÎŇ|Ï"|Ï5|Ï7|ÏA|ÏH|Ïl|ϱ|Ϲ|ÏÈ|ÏØ|ÏÚ|ÏÛ|ÏĻ|Ïʼn|ÐR|з|ÐÀ|ÐÓ|ÐĒ|Ðě|ÐĶ|Ðľ|Ñ©|ѵ|ÑÅ|ÑÈ|Ñʼn|ÒV|ÒÇ|Òĉ|Òħ|ÒŃ|Ó2|ÓD|ÓÎ|Óç|Ó÷|Óù|ÓĈ|Óķ|ÔE|ÔJ|Ôf|Ôy|ÔÆ|ÔÞ|Ôâ|ÔĂ|ÔĨ|Õ3|ÕG|Õh|Õ¹|ÕÁ|ÕÐ|Õÿ|Õğ|Õī|Ö7|ÖB|Öª|Ö¼|Öÿ|Öħ|Öij|×6|×>|×f|×¢|×µ|×·|×Â|×Ê|×Ñ|×ã|ØG|د|ØÄ|ØÊ|Øé|Øë|ØĊ|ØŇ|ØŐ|Øő|Ù:|Ùh|Ùx|Ù²|Ùč|Ùē|Ùę|Ùě|ÙĨ|ÙŇ|ÚE|Úq|Ú®|ÚÄ|ÚÒ|ÚÜ|Úä|Úí|Úı|Úķ|Û'|ÛW|Ûo|Ût|ÛÓ|Ûô|Ûõ|Ûû|Ûʼn|Ûŋ|Ü!|ÜJ|ÜÆ|ÜŐ|ÝR|Ýg|Ýq|Ýu|ÝÜ|Ýß|Ýð|Ýø|Ýč|ÝĶ|Ýʼn|Þº|ÞÝ|ÞĂ|Þą|Þć|ÞĠ|ÞĨ|ßu|ßÀ|ßė|à4|àS|à`|àk|à§|àé|àø|àĊ|àę|àģ|àĬ|á3|á£|á¶|áÄ|áÏ|áÑ|áâ|áü|áČ|áĽ|áņ|áŌ|â#|âY|â£|âº|âÓ|âġ|âĭ|âı|âŐ|âŒ|ã,|ã1|ã7|ã8|ãé|ãĭ|ä3|ä6|äN|ä¢|ä©|ä¬|äÏ|äĖ|äį|äŏ|åN|å¡|å¾|åØ|åë|åû|åč|åě|æ7|æT|æt|æ¸|æá|æï|æā|æij|ç2|çA|çJ|çl|ç¥|ç¬|çĝ|çĸ|èl|èq|èÓ|èÙ|èČ|èĖ|èĩ|èņ|èʼn|èő|éV|éZ|é®|é´|éí|éó|éû|éą|éě|éĭ|éŃ|ê5|êv|ê«|ê¶|êº|êÃ|êÔ|êİ|ëB|ëb|ë¤|ë¨|ëÎ|ëę|ëĞ|ì#|ì,|ì=|ì>|ìQ|ìS|ìV|ìº|ìā|ìġ|íJ|íV|í~|í¶|íò|íø|íă|íė|íĭ|î<|î=|îD|îR|îµ|îÚ|îÛ|îå|îê|îþ|îĒ|îĜ|îğ|ï%|ï,|ïa|ïu|ïÀ|ïÁ|ïá|ïĄ|ïą|ïċ|ïġ|ïĿ|ïŁ|ïŌ|ð6|ðE|ðp|ð¬|ðÞ|ðä|ðĚ|ðğ|ðļ|ñ1|ñ2|ñX|ñi|ñá|ñú|ñû|ñü|ñį|ñŊ|òB|ò«|ò¿|òÝ|òê|òď|ó5|óÄ|óÇ|óÈ|óÓ|óÕ|óĨ|óļ|ô4|ôh|ôÖ|ôî|ôþ|ôğ|ôŅ|õo|õ¢|õ¶|õÆ|õÓ|õä|õČ|õĕ|õģ|ö7|ö@|ön|ö¢|öÉ|öÒ|öÛ|öâ|öĝ|÷-|÷J|÷p|÷Ò|÷Ģ|÷ĭ|÷ı|÷ʼn|ø,|øo|ø¥|øÆ|øç|øè|øù|øĤ|øĥ|øħ|øň|ù7|ù9|ùs|ùu|ù¹|ùÍ|ùĆ|ùę|ùě|ùĹ|úG|úÅ|úÕ|úÖ|úÜ|úã|úç|úĂ|úĦ|û%|û;|ûR|ûh|ûu|ûz|û´|ûÐ|ûë|ûń|ûŊ|ü_|ü²|üê|üē|üğ|üł|üŅ|ý8|ý¨|ý©|ýÍ|ýÜ|ýĄ|ýċ|ýĩ|ýı|ýIJ|ýĸ|ýł|ýň|ýŎ|þ;|þD|þJ|þT|þr|þ·|þè|þĆ|ÿO|ÿÒ|ÿæ|ÿð|ÿć|ÿğ|ÿŇ|ĀA|ĀR|Ā_|Āv|Āá|ĀĘ|Āģ|Āİ|ā6|āM|ā¸|āä|āĮ|ĂX|ĂÁ|ĂÕ|ĂĚ|Ăķ|ĂĹ|ă"|ă°|ă¸|ăÉ|ăĆ|ăĚ|ăğ|ăĸ|ăĻ|ăŃ|ĄG|ĄJ|ĄK|Ą`|Ąc|Ąd|Ąg|Ąl|Ą³|ĄÄ|ĄÊ|ĄÌ|Ąú|ĄĽ|ą;|ąL|ąc|ąd|ąo|ąr|ą®|ą±|ąÄ|ąÅ|ąÇ|ąÍ|ą×|ąĈ|ąĎ|ąĐ|ąĩ|ąŌ|Ć´|Ƹ|Ć¼|ĆÑ|ĆØ|Ćí|ĆĊ|Ćņ|ĆŌ|ć4|ćx|ćy|ć¦|ć«|ćù|ćŃ|Ĉ&|Ĉ8|ĈE|ĈK|Ĉn|Ĉ¨|Ĉà|Ĉé|Ĉû|Ĉđ|Ĉĥ|ĈĪ|Ĉī|Ĉņ|ĉ@|ĉa|ĉÇ|ĉ×|ĉĩ|ĉň|Ċ#|Ċb|Ċt|Ċ»|ĊÁ|ĊÚ|Ċä|Ċÿ|Ċĝ|Ċĩ|Ċį|ċ'|ċD|ċ¶|ċÖ|ċê|ċþ|ċğ|ċņ|ČM|Čs|Č£|ČĨ|Čį|č±|čÖ|čè|čć|čğ|čń|čʼn|Ď`|Ď¡|Ď·|Ď¾|Ď¿|Ďą|Ďij|Ďŋ|ď"|ď5|ď8|ď=|ďD|ďs|ďØ|ďÚ|ďí|ďġ|ďĩ|ďļ|ĐF|ĐS|Đg|Đk|Đn|Đv|Đ~|ĐÖ|ĐÚ|ĐÜ|Đâ|ĐĞ|đA|đf|đ´|đ¸|đ¿|đÈ|đÖ|đà|đĽ|đŀ|đŌ|Ē%|ĒH|ĒÍ|ĒĹ|ĒĻ|ĒŁ|ĒŃ|ĒŇ|ē;|ēG|ēa|ēe|ēq|ē¶|ē»|ē÷|ēň|Ĕ"|Ĕ4|ĔÃ|Ĕý|Ĕą|ĔĆ|ĔĚ|ĔĞ|ĔĨ|ĕ"|ĕm|ĕw|ĕ¨|ĕ®|ĕÌ|ĕÑ|ĕĤ|Ė#|ĖR|Ėe|Ėu|Ė~|Ė¯|Ėĩ|ĖĬ|ėH|ė¹|ėö|ėú|ėÿ|ėĨ|Ęs|ĘÝ|Ęą|ĘČ|Ęĝ|Ęī|Ęĺ|Ęʼn|ęA|ęk|ęp|ę»|ęè|ęą|ęĐ|ęĨ|Ě'|Ě9|Ěe|Ěm|Ěo|Ě£|Ěª|Ě¾|Ěå|Ěë|Ěă|ĚĎ|ĚĜ|ĚĞ|ěP|ěx|ěê|ěî|ěö|ěĂ|ěĤ|ěĭ|ěļ|Ĝ%|ĜÜ|ĜĽ|ĝJ|ĝh|ĝ¹|ĝÃ|ĝÈ|ĝĖ|ĝĞ|ĝŇ|ĝŒ|Ğ&|Ğe|Ğs|ĞÖ|ğX|ğ²|ğ´|ğ¼|ğÙ|ğò|ğĂ|ğđ|ğĕ|ğĨ|ğĬ|ĠB|Ġc|Ġµ|ĠÈ|Ġè|Ġì|Ġđ|Ġě|ġ5|ġ<|ġH|ġm|ġº|ġÒ|ġü|ġă|ġĶ|ġŀ|Ģ;|Ģ¤|Ģ«|ĢÍ|ĢØ|Ģù|Ģă|ĢĐ|Ģđ|ģ-|ģL|ģ«|ģë|ģþ|ģċ|ģČ|ģĨ|ģĻ|Ĥf|Ĥª|Ĥñ|ĥM|ĥN|ĥU|ĥf|ĥz|ĥ»|ĥõ|ĥň|Ħ`|Ħj|Ħu|Ħ°|Ħ´|ĦÁ|ĦÈ|ĦÕ|Ħæ|ĦĤ|ħ4|ħp|ħ¡|ħ¦|ħ¶|ħß|ħç|ħĴ|ħĵ|ĨC|Ĩ°|ĨÂ|ĨÌ|Ĩç|Ĩõ|ĨĔ|Ĩŏ|ĩ8|ĩl|ĩt|ĩw|ĩċ|ĩđ|ĩĥ|ĩī|ĩŅ|Ī4|Ī9|ĪP|Īz|Ī±|ĪÅ|ĪÈ|ĪÝ|Īä|Īđ|ĪĦ|ĪĬ|ĪĽ|īb|īl|ī¥|ī¦|īÌ|īì|īČ|īĎ|īĐ|Ĭ#|Ĭ4|ĬF|Ĭ¤|Ĭê|Ĭí|Ĭû|Ĭĝ|ĬŌ|ĭ1|ĭK|ĭL|ĭz|ĭ¡|ĭ¯|ĭÌ|ĭâ|ĭĘ|ĭě|ĭĺ|ĮM|ĮR|Įd|Įx|Į¤|ĮÃ|ĮË|ĮÚ|Įå|ĮĤ|ĮĦ|Įī|į&|įD|įI|į¥|į«|įÉ|įÕ|įÛ|įĉ|įđ|įĒ|İQ|İi|ݬ|ݾ|İÕ|İ×|İĄ|İĬ|İľ|ı4|ıa|ıd|ıe|ıf|ı¡|ıĐ|ıĖ|ıIJ|IJ:|IJT|IJU|IJm|IJÛ|IJķ|IJŎ|ij0|ijb|ij¢|ij«|ijé|ijí|ijĎ|ijĘ|ijķ|Ĵ#|ĴF|ĴG|Ĵµ|Ĵ¹|ĴÈ|ĴÏ|Ĵý|Ĵþ|ĴĖ|ĵ8|ĵE|ĵK|ĵ¦|ĵ±|ĵÙ|ĵó|ĵõ|ĵĹ|Ķ6|ĶE|Ķl|Ķm|Ķ£|Ķ²|ĶÅ|Ķ÷|ĶĀ|Ķă|ĶĆ|ķv|ķ«|ķå|ķĢ|ķŌ|ĸ9|ĸH|ĸ¼|ĸè|ĸý|ĸĕ|ĸį|ŧ|Ĺ·|ĹÇ|ĹÈ|Ĺġ|Ĺĩ|ĺ#|ĺ6|ĺp|ĺr|ĺu|ĺæ|ĺí|ĺĖ|Ļ@|ĻI|Ļn|Ļ£|Ļ¶|ĻÂ|Ļú|ĻĮ|ĻŎ|ļ=|ļK|ļO|ļ_|ļ´|ļÀ|ļÄ|ļó|Ľ>|ĽC|ĽD|ĽG|ĽZ|Ľk|Ľr|Ľ¼|ĽÌ|Ľâ|ĽĮ|ĽŒ|ľf|ľÙ|ľÞ|ľĂ|ľī|ľł|ľņ|ĿÊ|Ŀď|Ŀđ|ĿĚ|Ŀĵ|ĿĻ|Ŀŏ|ŀC|ŀM|ŀ®|ŀà|ŀð|ŀõ|ŀČ|ŁE|ŁÁ|ŁÄ|Łõ|Łķ|ŁĿ|ł4|łG|łu|ł¬|łÏ|łò|łČ|łč|łĐ|łŌ|Ń6|Ń¿|ŃÅ|ŃË|ŃÚ|Ńü|Ńě|Ńņ|ń4|ń<|ńE|ńx|ń»|ńÄ|ńď|ńĺ|Ņ,|ŅP|Ņe|Ņn|Ņo|Ņ©|Ņ¯|Ņ½|ŅÛ|ŅĂ|ņî|ņð|ņô|ņĈ|ņī|ņĬ|ņı|Ň8|Ň:|ŇD|ŇT|Ň_|Ňd|Ňu|Ňª|Ňā|Ňć|ŇĈ|Ňň|ňK|ňL|ň¬|ňÇ|ňÏ|ňþ|ňĐ|ňĠ|ňŐ|ʼnQ|ʼn_|ʼnf|ʼnÉ|ʼnË|ʼnĨ|ʼnŃ|Ŋ0|ŊM|ŊW|ŊÔ|ŊĠ|ŋC|ŋH|ŋK|ŋÍ|ŋÒ|ŋØ|ŋÞ|ŋı|ŋĹ|Ō,|Ōl|Ō³|Ōò|Ōā|ŌĖ|ŌĚ|ŌĬ|ŌĮ|Ōĸ|ŌŒ|ōJ|ō¿|ōÀ|ōÝ|ōʼn|Ŏ8|Ŏ;|ŎQ|ŎV|Ŏ§|ŎÄ|ŎÏ|ŎĎ|ŎŇ|ŏ=|ŏD|ŏV|ŏ¹|ŏÈ|ŏÒ|ŏč|ŏĐ|ŏī|ŏĿ|ŏʼn|Ő2|Ő<|ŐC|ŐX|Őg|Ől|Őp|Ő®|Őİ|ő8|ő¹|őÀ|őó|őć|őĊ|őĖ|őĦ|őķ|őĸ|őŀ|ŒB|Œv|ŒÀ|ŒÒ|Œā|Œĉ|Œė|ŒĜ|ŒĦ|Œķ|Œľ).){255}Ň$

ทดสอบบนRegex101

แต่ละสายการจับคู่เป็นเส้นทางแฮมิลตันจากไปM ฉันรู้ว่านี่ไม่ปลอดภัยพอ ฉันไม่ทราบวิธีสร้างปัญหาเส้นทางแฮมิลตันอย่างหนักเช่นกัน มันมีทางออกมากเกินไป และในขณะที่มาร์ตินBüttnerกล่าวว่า Mathematica ทำมันทันที แต่นี่เป็นอีกวิธีการ NP ที่สมบูรณ์แบบอื่นที่ไม่ใช่ COTO อย่าลังเลที่จะปรับปรุงแนวคิดนี้และโพสต์คำตอบใหม่ โซลูชันที่ฉันสร้างขึ้นในตอนแรกคือ: https://regex101.com/r/tM1vX8/2Ň

โซลูชันที่ฉันสร้างขึ้น:

MĈàękÙēGâġ<øÆv:ĴÏĻĮ¤ĢùĹ·îĜĽDÂŁEā6ĶĆŌĸ¼yò¿Ĕýı¡Ë!į&qKPpzđȽħ¶YÌïÁéVþèlåN2O¸úÜŐİľfćx®čńďļ=¨3d"÷ĭ¯9i'ĞsĀAÅĄ³`ðĚmĘĝŒBç¬ő¹>-ìS§nUĉňĠěĤª¾ôŅ,ĊtÊIĿĵ±RĬíăÉČĨŏĐÖij0°²ã1gÍáÑʼnŃÚÒÇģLÐĒ%ĪĦu¦añû´~ą;ĥ»créüêºjµó5ĩċğĕwŎÄ¥ĎŋØëÎæTXėH8ņībŊÔÞÝßÀWhäĖeIJÛõÓķ«ö7QŀCōJ×¢@_ł4£FZĺ#oĂÕÿŇ

3
การแข่งขัน:ดูregex101.com/r/wK9hI1/1 ไม่ตรงกับ: good_job_user23013!
harius

14
ฉันคิดว่าเราถูกแบ่งออกเป็น 2 ค่ายในขณะนี้: ผู้ที่เผา CPU และหวังว่าจะได้รับโชคดีและผู้ที่พยายามพิสูจน์ P = NP ภายในสองสามวัน

1
@ WumpusQ.Wumbley และพวกเราใช้ Mathematica ;)
Martin Ender

2
เนื่องจาก harius ไม่สามารถแสดงความคิดเห็นได้อย่างละเอียดว่าเขาแตกมันฉันจะร่างอย่างรวดเร็วว่าฉันทำมัน: รูปแบบการเข้ารหัสกราฟกำกับด้วย 256 vertices (แสดงเป็นตัวอักษร) และ 2270 ขอบ (แสดงเป็นคู่ของตัวละครที่ได้รับอนุญาต ที่จะติดต่อกัน) และการแข่งขันแต่ละครั้งเป็นเส้นทางผ่านมิลกราฟจากไปM ŇMathematica FindHamiltonianCycleมีฟังก์ชั่น เราสามารถเปลี่ยนสิ่งนี้ให้เป็นวงจรที่เคลื่อนที่ได้Ň -> Mโดยการเพิ่มขอบใหม่และเชื่อมต่อŇและMผ่านมัน โชคดีที่ Mathematica พบวัฏจักรดังกล่าวในทันที :)
Martin Ender

1
ฉันเป็นคนที่ 3 แต่ฉันรู้สึกเหมือนกำลังหาเส้นทางค้นหาที่เติบโตที่บ้านของฉันอยู่ดี มันให้สิ่งนี้กับฉัน: regex101.com/r/nT2xM6/1

10

RegEx รองรับ JS - 3,571 ไบต์ [แตก]

ฉัน ... จะ ... มี ... อย่างน้อย ... หนึ่งอย่าง ... ไม่ได้ติดตาม ... o \ __ / o

[^,;]|^(.{,255}|.{257,})$|^(?!.*,;,,;;)|^(?!.*,;;,,;)|^(?!.*..,;;;,..,.)|^(?!.*.,.;.;.,.,,)|^(?!.*....,,....;;.;.;)|^(?!.*;.{8};,;;;..)|^(?!.*.{8};;.{6};,.,;)|^(?!.*..;....,.;;.{5};;...)|^(?!.*;,.;.{7},...;.{6};...)|^(?!.*...,.,..,,...,.{7};....)|^(?!.*.,;.;.{11};.{9};..,.)|^(?!.*.,.{6},....;.{11};,...,)|^(?!.*..;.{5};....,.{6};,.{12};.)|^(?!.*,,.,,.{8};.{11};.{10})|^(?!.*...,.{9};..,....;.{6},...;.{8})|^(?!.*.{6},.{8},.{6},.{8},..;.,....)|^(?!.*.{7};..;.{5},....;.{10};...;.{9})|^(?!.*..;.{7},.{5};;.{12},.{13},.)|^(?!.*.{5},..;...;.{5};..;.{6},.{22})|^(?!.*.{10},.{8},.{6},;.{14};.;.{6})|^(?!.*..,.;...,.{19};.;..;.{22})|^(?!.*.{6};..;.{14},,.{11};....,.{13})|^(?!.*.{8},.{12};.{19},.{6},;.{6},....)|^(?!.*.,.{11},...,.{7},.{16},.{11},.{6})|^(?!.*.{15};.{7};..;..,.{24},.{7},...)|^(?!.*...,,.{25};...;...;.{19},.{7})|^(?!.*.{26},....,....,.{15},.{6},.{6};....)|^(?!.*.{6};.,.{28};.{6},.{21},.;..)|^(?!.*.{21};..;..,.{22},.{21};,..)|^(?!.*.{5};.{22};,.{17};.{18},,.{8})|^(?!.*.{9};.{25};,.{20},.{6},.{14};.)|^(?!.*.,.{9},.{8};.{8};.{10};.,.{38})|^(?!.*.{18};.{8},.,.;.{5};.{6},.{41})|^(?!.*.{15},.{16};.{7};.{17};.{8};..,.{15})|^(?!.*.{18};.,.{25};..,..;.{13};.{24})|^(?!.*.{10};.{16},.{33};...;.{17},....,..)|^(?!.*.{13},.{46},.{9},.{11},,.,.{10})|^(?!.*.{14},.{33},.{18};....,.;.{16},....)|^(?!.*.{16};....;,.{8},.{30},.{31},.{6})|^(?!.*.{9},;.{15};.{22};.{30},.{16};...)|;.,,;;.;|,;,;,.,.|.;;,.;;;|;.;,,,.;|,...;.;.,,.;.|,.,.;.{5},,;|...;;....;;;;|;..,,,.;..;..|..;;,,..;.{7};.|;..,.,,...;...,...|...;;,.,.;.;.{6}|.;...;,....;.;...,|.;.{8};,.{6},.;.;|.{5},...,...;...;.;..;|...;....;..,..,.;..;...|...;.{5};,.{5},...,.;|;.,.{12},..;;.{7};|...;.{5},..;;.{9},..;.|.;,,..;.{13};....;..|.,;.{15},,...,.,..|.{8};.,....,...,..,.{9};|...;.;.{11},..,...;....;...|.,.,.{9};;....;..,.{10}|.{5};.,;....,.{15};..,|....;.{10};.;....,.{10},;...|....;.{8};;.{6},...;.{5};.{6}|..,;;.{16};....,;.{10}|.{18};.{9};,.,.,..;.|.{11},.{10};.;.;.{10};....,|....;.{11},.{10},..;.,.;.{8}|..,....,.;.{5},.{9},.{7};.{9}|.{7};.;.{5},.{13};.;.{7};...|.{5},.{15};;.{5},.{15},..;|.{12};...;..,.,..;.{5},.{17}|.{12},..;...;.{22},.,..,|.{10},.{11},.,.;.{11};;.{8}|.{11},.{9},.{5},...,.{14};.;....|;.{22};....,.;.{10};.{10};|.{13};...;.{13},.{6};.,.{10};.|.{11};....;.{17},.{9},.{5};,.|,.{14},.{12};.{6};...;.{14};...|..;.;.{19},.{16},.{5};.{6},...|.{27};..,;.{8};;.{8};.{7}|,.{6};.,.{20},.{13},.;.{11}|.{12};.{9},.{8};,.,.{17},.{10}|;.{22};..;.{5},..;....,.{22}|.{6},.{19};.{22};;,.{5};.{5}|;.{5},.{10};..;.;;.{39}|.{11};.{7};.;.{23};.{19};.;|,.{13};.{12},.,.{27};.{6},...|...;.;.{9};.{18};.;.{27},...|...;,.{12},..;.{28},.{15};..|....;.{8};..;...;.{17},.{19},.{14}|.{8};.{29};.{17};.{5};.{5};;...|...,..;.{14},.{8};.{12};.{18},.{10}|..;.;.{7};.{17},.{11},.{24},.{5}|;.{17},.;.{29};.{9};....;.{12}|.{5},..,.{6},.{16};;.{15},.{28}|...,.{12};..;.{10};.{31};.{14};|.{24},.{6},.{22},.,..,.{10};.{7}|.{10},.{12},.{5};.{12},.{7};.{23};.{8}|.{19};.,.{6},.{22},,.{7};.{22}|.{27};,.{14},..,.{7};.{15},.{12}|....;.{18},.{22},,..,.{27};....|...,.{11},.;.;.{9},.{46},.{11}|.{19},....,.{23},.{5},.{7};.{14},.{10}|.{19};,.{11};..,.{11};.{23};.{16}|.{11};.{34},.{14},.{9},.;.{13};|.{11};....,.{41},.{9};;.{8};.{14}|.{5};.;.,.{5};...;.,.{71}|.{6};.{13};....;....;.{20};.{24},.{16}|.{26};,.{19};....;.{11},.;.{26}|.{9},.{9},.{21},.{14};.{10};.{16};.{13}|.{10},.{5},.{9};.{13},...,.{24},.{28}|.{12},.{7};.{8};.{6};;.{36};.{23}|....;.{10},.{21};.{10};.{20},.{10},.{17}|.{19},.{7},.{17},.{9};.{13},.{22};.{10}|....,.{41};.{5},..,.{21};.{6};.{18}|.{25};....;.{28},.{12},.{19};.{8};.|.{10};....,.,.{22};.{11};.{44},.{5}

แก้ไขทุกสตริงทันที ทดสอบได้บนคอนโซล JS ใด ๆ

+100 ตัวแทนทุกคนที่ทำลายสัตว์ร้ายนี้


1
ยอมรับการท้าทาย ...
Unihedron

10
การแข่งขันThatWasActuallyFun : ไม่ตรง : ,,;,;,,;,;;;,;,;,;;,,,,;,,,;,;;,,,,,,;;,,,,;;,;,,,;,;;;;,;;,;;,;,,;,,;,;;;,;,;,;;,,,;,;;;;,;,;;;,;,,;,,,;,,,,;,;;;;;;,,,,,;,;,;;;;;,;;;,;;,,,;;;,,;,;;,,,;,,,,,,;,;,,;;,,;;,,,;,;;,,,;,,;;,;,;,;;;;,,;,;,,;;;;;,,;,,;;,,;,,;;,,,,;,,;,,;;,;;;,,,,,;,,,,,,,,;,,,,.
nneonneo

5
โปรด! ทำไม่ได้! พ.ศ. ! ดังนั้น! ด่วน!
TwiNight

6
คุณเป็นบ้า RegExp ตัวนี้มี 122 ตัวเลือก 40 ตัวซึ่งเป็นค่าลบเชิงลบ WTG ++
CSᵠ

2
@nneonneo: Lousy SAT ตัวแก้ที่มีประสิทธิภาพ > ___ <แต่อุปกรณ์ประกอบฉากสำหรับเปลี่ยนปัญหาและใช้ประโยชน์จากเครื่องมือที่มีอยู่ในนั้น ฉันจะให้รางวัล 100 ตัวแทนหนึ่งในคำตอบของคุณโดยเร็วซึ่งเป็นเวลาประมาณ 19 ชั่วโมง
COTO

10

PCRE - 96bytes UTF8, ไม่มีตัวคั่น, ไม่มีแฟล็ก

[พ่ายแพ้] เพราะnneonneoเป็นคนฉลาด

(?<Warning>[You] \Will (*FAIL)!|\So just (*SKIP)this one!|\And (*ACCEPT)defeat!|[^\d\D]{16,255})

ไม่มีอะไรให้ดูที่นี่ย้ายไป ...


1
การแข่งขัน: So just *SKIPthis one!; ไม่มีการแข่งขัน:This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is not accepted. This string is still not accepted. Snow leopards FTW.
COTO

นี่ไม่ใช่ไวยากรณ์ PCRE มันเป็นไวยากรณ์ Perl ธรรมดา (ตัวดัดแปลงการย้อนรอยไม่ทำงานบน PCRE, AFAIK)
nneonneo

6
การแข่งขันDo just this one! : ไม่ตรง : WellThatWasTooEasy. (ทดสอบกับทั้ง Perl 5.12 และ 5.18 Perl ในเครื่องของฉัน)
nneonneo

@nneonneo ถูกต้อง! PS: * VERBS มีอยู่ใน PCRE เป็นเวลาอย่างน้อย 5 ปี แต่มีเอกสารไม่เพียงพอ
CSᵠ

@COTO การแข่งขันไม่ถูกต้อง NonMatch ก็โอเค
CSᵠ

8

RegEx ที่เข้ากันได้กับ JS - 733 ไบต์ [แตก]

ลองครั้งนี้เป็นครั้งที่สองโดยมีการย้อนกลับตัวชี้วัด: นิพจน์ปกติ hulking แต่เป็นคีย์ที่ค่อนข้างเล็ก (ที่สำคัญที่สุดคือภายใน 256 ไบต์)

[^a-e]|^(?:.{0,33}|.{35,}|.{11}.(?!babcde).{22}|.{17}.(?!daacde).{16}|.{23}.(?!ecacbd).{10}|.{29}.(?!ab).{4}|.{31}.(?!cd)..|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).(?!\4\8\1\2\3\10|\6\3\11\2\9\1|\6\2\9\3\4\11|\8\10\6\5\3\1|\1\8\4\5\3\7).{22}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{6}.(?!\15\14\16\19\21\12|\17\12\22\13\16\15|\19\14\12\20\18\21|\16\22\19\14\20\12|\21\19\13\18\15\22).{16}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{12}.(?!\31\32\24\28\26\23|\33\25\30\29\27\32|\28\27\23\24\29\30|\31\33\23\29\26\32|\26\28\25\24\23\33).{10}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{18}.(?!\34\39|\37\38|\34\37|\36\42|\43\41|\35\38|\40\35|\44\42).{4}|(.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{20}.(?!\51\45|\53\54|\47\46|\45\54|\50\51|\53\45|\52\51|\52\48|\48\55)..)$

แก้ไขทุกสตริงทันที ทดสอบบน RegExr

ขยาย (เพื่อความสะดวก):

[^a-e] |
^(?:
    .{0,33}|
    .{35,}|
    .{11}.(?!babcde).{22}|
    .{17}.(?!daacde).{16}|
    .{23}.(?!ecacbd).{10}|
    .{29}.(?!ab).{4}|
    .{31}.(?!cd)..|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).(?!\4\8\1\2\3\10|\6\3\11\2\9\1|\6\2\9\3\4\11|\8\10\6\5\3\1|\1\8\4\5\3\7).{22}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{6}.(?!\15\14\16\19\21\12|\17\12\22\13\16\15|\19\14\12\20\18\21|\16\22\19\14\20\12|\21\19\13\18\15\22).{16}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{12}.(?!\31\32\24\28\26\23|\33\25\30\29\27\32|\28\27\23\24\29\30|\31\33\23\29\26\32|\26\28\25\24\23\33).{10}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{18}.(?!\34\39|\37\38|\34\37|\36\42|\43\41|\35\38|\40\35|\44\42).{4}|
    (.)(.)(.)(.)(.)(.)(.)(.)(.)(.)(.).{20}.(?!\51\45|\53\54|\47\46|\45\54|\50\51|\53\45|\52\51|\52\48|\48\55)..
)$

ขอให้โชคดีทุกคน ;)


5
จับคู่: aaaabaaacaaadaaa, ไม่จับคู่:cacdbbcabdeababcdedaacdeecacbdabcd
jimmy23013

@ user23013: ฉันคาดว่าจะมีรอยแตก แต่ก็ไม่ได้เร็วขนาดนั้น คุณทำมันบนกระดาษหรือไม่?
COTO

1
ใช่. มีเพียงสองความเป็นไปได้ที่เหลือหลังจากการแสดงออกยาวสองครั้งแรก และมีตัวละครเพียงสามตัวที่ไม่รู้จักหลังจากสามคนดังนั้นฉันสามารถลองสองสามครั้งเพื่อแก้ปัญหาได้
jimmy23013

8

.NET รสชาติ 60 ไบต์ [แตก]

^((\d)(?!(|(\d\d)*\d|(\d{3})*\d\d|(\d{5})*\d{4}|\d{6})\2))+$

ทดสอบกับRegex พายุ


3
1234567890012345การแข่งขัน: ไม่ตรง: 1111222233334444.
jimmy23013

8
٠߀०০੦૦୦௦౦೦൦๐໐༠၀႐០᠐᥆᧐᭐᮰᱀᱐꘠꣐꤀꩐0ดังนั้นตัวเลขทั้งหมดนี้ถือว่าเป็นตัวเลขใน. NET ...
jimmy23013

2
นั่นคือบ้าครึ่งหนึ่งของผู้ที่ไม่ได้แม้กระทั่งการแสดงขึ้นที่ถูกต้องในเบราว์เซอร์ของฉัน
SP3000

7

Python รสชาติ: 211 ไบต์ [แตก]

หมายเหตุ: คำตอบนี้ถูกโพสต์ก่อนที่กฎจะเปลี่ยนเกี่ยวกับความยาวสูงสุดของคีย์

คิดว่าฉันจะได้ลูกบอลกลิ้งกับสิ่งนี้:

(((((((((((((((\)\\\(58\)5\(58\(\\5\))\15\)9)\14\\919\)\)4992\)5065\14\(5)\13\\\14\\71\13\(\13\)4\\\13\\)\12\12\\28\13)\11)\10\\7217)\9\\)\8\\04)\7\)\(\8\()\6\(183)\5)\4\)65554922\\7624\)7)\3\)8\(0)\2\4\\8\\8)\1

(ทดสอบบนRegExr )


การระเบิดย้อนกลับอย่างง่ายของตัวละคร \()0123456789


ฉันสามารถบอกคุณได้ว่าสตริงที่ยอมรับนั้นประมาณ ความยาว 7 ล้านตัวอักษร ในความเป็นจริงแล้วมันอาจจะเป็นไฟล์ข้อความขนาด 7 MB ได้บ้าง?
COTO

ใช่นั่นเป็นวิธีเดียวที่จะไป ฉันคิดว่าฉันจะเริ่มต้นด้วยบางสิ่งที่ไม่ยากที่จะถอดรหัส แต่เคล็ดลับอยู่ที่การสร้างผลผลิต หากการ จำกัด เวลาไม่ได้เกิดขึ้นแม้ว่าสิ่งนี้จะใช้เวลานานกว่านี้มาก: P
Sp3000

การป้อนสิ่งที่ฉันเชื่อว่าเป็นสตริงเดียวที่ตรงกับ regex ของคุณที่ RegExr.com ทำให้เบราว์เซอร์ Chrome ของฉันขัดข้อง ใน Safari ใช้งานได้ แต่ RegExr รายงานว่า 'หมดเวลา' คุณทำการทดสอบทางออนไลน์สำเร็จหรือไม่?
Emil

@Emil ฉันทดสอบมันสำเร็จใน Firefox และฉันยังคงรอที่จะบันทึก
jimmy23013

5
ที่สำคัญคือ 5281064 ไบต์โดยนับของฉัน อัปโหลดไฟล์ที่นี่ (5 mb) mediafire.com/view/4jt41pzfp7855ax/match.txt
stokastic

7

RegEx ที่เข้ากันได้กับ JS - 12,371 ไบต์ [แตก]

หลังจากให้กำลังใจมาร์ตินและเห็นว่าตำรวจคนอื่นส่ง 600 + KB regexes อย่างมีความสุขฉันตัดสินใจที่จะกระโดดอีกครั้งกับเรื่องนี้ (และเวอร์ชั่นที่น่าสนใจที่นี่ )

แก้ไขทุกสตริงทันที ทดสอบได้บนคอนโซล JS ใด ๆ น่าเสียดายที่ขนาดนี้ทำให้ผู้ทดสอบระบบ regex ออนไลน์ไม่สามารถทดสอบได้


ฮ่าฮ่าฉันจะพยายามไม่ไปบ้ากับขนาด regex - ความท้าทายนี้ยากแม้ว่า: / incriminates @ user23013
Sp3000

2
การแข่งขันthis was not NP-hard : ไม่ตรงกับ :nerdnydeprdoypoypwwwdprelwsprwssddayaeeeysyaaaypowroplsaoprdaolasnoylaeaeadeosladnnosyoywyesorlrydwddadoeyponneeyaaapesenaalnneydaewndplredlerwaawlnrssapapaopnrdwnslowdoanlrernpwyyarpprwnrssdlaopsnnrnnnardpaessldalroleswnnooarlpllasapsesaorardwreylayrr
nneonneo

ฉันใช้มันอย่างเต็มที่ (ใช้เวลาประมาณ 0.06 วินาทีใน Python) และได้รับวิธีแก้ไขปัญหาที่ยอมรับได้สี่ข้อ แต่เนื่องจากข้อผิดพลาดใน regex ของคุณ regex ของคุณจึงปฏิเสธวิธีแก้ไขเพิ่มเติมอีกมากมาย (โดยทั่วไปคุณไม่ตรวจสอบว่าอักขระทุกตัวใน "substring" ที่กำหนดถูกใช้แล้วและคุณไม่ตรวจสอบว่า "substring" ประกอบด้วยอักขระ 84 ตัวเท่านั้น)
nneonneo

1
(หมายเหตุสุดท้าย: regexpal.comจัดการ regex นี้ได้ดีฉันเดาว่ามันอาจจะใช้เครื่องมือ regex ของเบราว์เซอร์)
nneonneo

1
ด้วย 12k ไบต์ไม่จำเป็นต้องเชื่อมโยงไปยังแหล่งข้อมูลภายนอก คำตอบ SE สามารถมีอักขระได้สูงสุด 30k
Martin Ender

7

. NET รส 458 ไบต์ [แตก]

^(?=[01]{10},[01]{10}$)(0|1((?<=^.)(?<l>){512}|(?<=^..)(?<l>){256}|(?<=^...)(?<l>){128}|(?<=^.{4})(?<l>){64}|(?<=^.{5})(?<l>){32}|(?<=^.{6})(?<l>){16}|(?<=^.{7})(?<l>){8}|(?<=^.{8})(?<l>){4}|(?<=^.{9})(?<l>){2}|(?<=^.{10})(?<l>){1})(?(l)(?<-l>(?=.*,(?:0|1(?<m>){512})(?:0|1(?<m>){256})(?:0|1(?<m>){128})(?:0|1(?<m>){64})(?:0|1(?<m>){32})(?:0|1(?<m>){16})(?:0|1(?<m>){8})(?:0|1(?<m>){4})(?:0|1(?<m>){2})(?:0|1(?<m>){1})$))|){1024})*,(?<-m>){669043}(?(m)(?!)|)

อันนี้ง่าย แต่ฉันจะโพสต์ที่ยากขึ้นในภายหลัง

ฉันคิดว่าฉันใกล้กับคำตอบที่ปลอดภัยแล้ว

การทดสอบบนRegexStorm

นี่เป็นพื้นฐานเกี่ยวกับการแยกตัวประกอบจำนวนเต็ม สตริงที่ตรงกับที่ควรจะเป็นฐานเป็นตัวแทนของทั้งสองจำนวนเต็มและA Bสำหรับแต่ละ 1 จากAนั้นก็จะตรงกับ 512, 256, ... , 1 กลุ่มครั้งซึ่งสามารถเพิ่มที่จะได้รับl Aและแต่ละครั้งlก็จะตรงกับการBใช้ lookahead และBกลุ่มครั้งmซึ่งคล้ายกับครั้งA lดังนั้นmจะจับคู่ทั้งหมดA*Bครั้ง ในที่สุดก็จะลบกลุ่มm669043 ครั้งและตรวจสอบว่าไม่มีอีกmต่อไป ดังนั้นA*Bต้องเป็นอย่างแน่นอน 669043

เพื่อความง่าย: 669043 = 809 * 827และวิธีแก้ปัญหาคือรูปแบบไบนารีของตัวเลขสองตัวนี้

วิธีนี้ใช้ไม่ได้กับจำนวนที่มากเกินไปเพื่อให้ปลอดภัยเนื่องจากเอ็นจิ้น Regex ต้องเพิ่มจำนวนที่หลาย ๆ ครั้ง แต่ฉันได้โพสต์คำตอบใหม่เพื่อทำงานกับฐาน 289 จำนวนเต็มขนาดใหญ่ มีความยาว 1536 บิต

นอกจากนี้ยังต้องขอบคุณมาร์ตินBüttnerสำหรับการแนะนำคุณลักษณะกลุ่มสมดุลของ .NET Regex ในคำตอบของเขา


ความคิดนี้ว้าว ...
Sp3000

4
การแข่งขัน1100101001,1100111011 : ไม่ตรง :ThatsWhatIWantedToDo,Nice
nneonneo

1
ฉันคิดว่าปัญหาเดียวคือการจับคู่นั้นใช้เวลานานมากและจำนวนเต็มเป้าหมายต้องแสดงเป็นจำนวนการทำซ้ำ (ดังนั้นจึงมีแนวโน้ม จำกัด ที่ 32/64/128 บิตซึ่งเป็นเรื่องเล็กน้อยสำหรับปัจจัย) ฉันมีความคิดบางอย่างเกี่ยวกับข้อ จำกัด เหล่านี้โดยใช้การคูณ Karatsuba แต่จากนั้นฉันจะได้ log (n) ^ 2 regexes ขนาด ...
nneonneo

1
@ Sp3000 pastebin.com/SW0YbQarสิ่งนี้ใช้ได้ ฉันไม่แน่ใจว่าทำไม บางทีนักพัฒนาอาจคิดว่าการจับคู่สตริงว่าง ๆ ซ้ำ ๆ อาจไม่สมเหตุสมผล
jimmy23013

1
@ Sp3000: ไม่แปลกใจเลย คุณต้องขอให้เครื่อง regex นับเป็น 800,000+ สิ่งนี้จะช้ามาก (โดยเฉพาะเมื่อ "การนับ" เสร็จสิ้นผ่านเครื่องเสมือนของผู้ประเมินผลนิพจน์ปกติ)
nneonneo

6

RegEx ที่เข้ากันได้กับ JS - 2,447 ไบต์ [แตก]

ความพยายามครั้งสุดท้ายของฉัน

ฉันถือออกหวังว่าอันนี้เป็นเวลาอย่างน้อยสองสามชั่วโมงก่อนที่จะแตก หลังจากนั้นฉันก็ยอมแพ้ : P

[^a-f]|^(?:.{0,51}|.{53,}|.{11}.(?!d).{40}|.{12}.(?!a).{39}|.{13}.(?!a).{38}|.{14}.(?!f).{37}|.{15}.(?!d).{36}|.{16}.(?!a).{35}|.{17}.(?!d).{34}|.{18}.(?!c).{33}|.{19}.(?!f).{32}|.{20}.(?!d).{31}|.{21}.(?!d).{30}|.{22}.(?!d).{29}|.{23}.(?!f).{28}|.{24}.(?!d).{27}|.{25}.(?!b).{26}|.{26}.(?!f).{25}|.{27}.(?!f).{24}|.{28}.(?!e).{23}|.{29}.(?!c).{22}|.{30}.(?!c).{21}|.{31}.(?!b).{20}|.{32}.(?!d).{19}|.{33}.(?!e).{18}|.{34}.(?!c).{17}|.{35}.(?!a).{16}|.{36}.(?!a).{15}|.{37}.(?!e).{14}|.{38}.(?!b).{13}|.{39}.(?!f).{12}|.{40}.(?!d).{11}|.{41}.(?!f).{10}|.{42}.(?!c).{9}|.{43}.(?!f).{8}|.{44}.(?!e).{7}|.{45}.(?!c).{6}|.{46}.(?!b).{5}|.{47}.(?!b).{4}|.{48}.(?!f).{3}|.{49}.(?!a).{2}|.{50}.(?!d).{1}|....(.)(.)(.).....(?!\1|\2|\3).{40}|.(.).(.)..(.).....{1}.(?!\4|\5|\6).{39}|...(.)(.).....(.).{2}.(?!\7|\8|\9).{38}|......(.)(.).(.)..{3}.(?!\10|\11|\12).{37}|....(.)(.)(.).....{4}.(?!\13|\14|\15).{36}|..(.)(.)(.).......{5}.(?!\16|\17|\18).{35}|(.).(.)......(.)..{6}.(?!\19|\20|\21).{34}|..(.).....(.).(.).{7}.(?!\22|\23|\24).{33}|(.)..(.)(.).......{8}.(?!\25|\26|\27).{32}|...(.).....(.)(.).{9}.(?!\28|\29|\30).{31}|.(.)(.).....(.)...{10}.(?!\31|\32|\33).{30}|.(.)...(.)..(.)...{11}.(?!\34|\35|\36).{29}|(.)(.).....(.)....{12}.(?!\37|\38|\39).{28}|...(.).(.).(.)....{13}.(?!\40|\41|\42).{27}|..(.)(.)..(.).....{14}.(?!\43|\44|\45).{26}|(.).(.)....(.)....{15}.(?!\46|\47|\48).{25}|(.)..(.)...(.)....{16}.(?!\49|\50|\51).{24}|(.)(.)(.).........{17}.(?!\52|\53|\54).{23}|.(.)..(.)(.)......{18}.(?!\55|\56|\57).{22}|(.)...(.)..(.)....{19}.(?!\58|\59|\60).{21}|.......(.)(.)(.)..{20}.(?!\61|\62|\63).{20}|.(.).....(.).(.)..{21}.(?!\64|\65|\66).{19}|..(.)..(.)...(.)..{22}.(?!\67|\68|\69).{18}|..(.).(.).....(.).{23}.(?!\70|\71|\72).{17}|...(.).(.)..(.)...{24}.(?!\73|\74|\75).{16}|.(.)(.)(.)........{25}.(?!\76|\77|\78).{15}|(.).(.).....(.)...{26}.(?!\79|\80|\81).{14}|.....(.)..(.).(.).{27}.(?!\82|\83|\84).{13}|(.).(.).(.).......{28}.(?!\85|\86|\87).{12}|..(.)...(.)..(.)..{29}.(?!\88|\89|\90).{11}|(.)....(.)..(.)...{30}.(?!\91|\92|\93).{10}|....(.).(.).(.)...{31}.(?!\94|\95|\96).{9}|...(.)..(.)(.)....{32}.(?!\97|\98|\99).{8}|..(.)..(.)..(.)...{33}.(?!\100|\101|\102).{7}|..(.).(.)(.)......{34}.(?!\103|\104|\105).{6}|..(.)(.)..(.).....{35}.(?!\106|\107|\108).{5}|.(.).....(.)(.)...{36}.(?!\109|\110|\111).{4}|..(.)....(.)(.)...{37}.(?!\112|\113|\114).{3}|...(.)..(.)...(.).{38}.(?!\115|\116|\117).{2}|....(.)(.)....(.).{39}.(?!\118|\119|\120).{1})$

เช่นเดียวกับการส่งก่อนหน้านี้ทั้งหมดจะแก้ไขทันที ซึ่งแตกต่างจากการส่งก่อนหน้านี้มันยาวเกินไปสำหรับ RegExr

ขยาย:

[^a-f]|
^(?:
    .{0,51}|
    .{53,}|
    .{11}.(?!d).{40}|
    .{12}.(?!a).{39}|
    .{13}.(?!a).{38}|
    .{14}.(?!f).{37}|
    .{15}.(?!d).{36}|
    .{16}.(?!a).{35}|
    .{17}.(?!d).{34}|
    .{18}.(?!c).{33}|
    .{19}.(?!f).{32}|
    .{20}.(?!d).{31}|
    .{21}.(?!d).{30}|
    .{22}.(?!d).{29}|
    .{23}.(?!f).{28}|
    .{24}.(?!d).{27}|
    .{25}.(?!b).{26}|
    .{26}.(?!f).{25}|
    .{27}.(?!f).{24}|
    .{28}.(?!e).{23}|
    .{29}.(?!c).{22}|
    .{30}.(?!c).{21}|
    .{31}.(?!b).{20}|
    .{32}.(?!d).{19}|
    .{33}.(?!e).{18}|
    .{34}.(?!c).{17}|
    .{35}.(?!a).{16}|
    .{36}.(?!a).{15}|
    .{37}.(?!e).{14}|
    .{38}.(?!b).{13}|
    .{39}.(?!f).{12}|
    .{40}.(?!d).{11}|
    .{41}.(?!f).{10}|
    .{42}.(?!c).{9}|
    .{43}.(?!f).{8}|
    .{44}.(?!e).{7}|
    .{45}.(?!c).{6}|
    .{46}.(?!b).{5}|
    .{47}.(?!b).{4}|
    .{48}.(?!f).{3}|
    .{49}.(?!a).{2}|
    .{50}.(?!d).{1}|
    ....(.)(.)(.).....(?!\1|\2|\3).{40}|
    .(.).(.)..(.).....{1}.(?!\4|\5|\6).{39}|
    ...(.)(.).....(.).{2}.(?!\7|\8|\9).{38}|
    ......(.)(.).(.)..{3}.(?!\10|\11|\12).{37}|
    ....(.)(.)(.).....{4}.(?!\13|\14|\15).{36}|
    ..(.)(.)(.).......{5}.(?!\16|\17|\18).{35}|
    (.).(.)......(.)..{6}.(?!\19|\20|\21).{34}|
    ..(.).....(.).(.).{7}.(?!\22|\23|\24).{33}|
    (.)..(.)(.).......{8}.(?!\25|\26|\27).{32}|
    ...(.).....(.)(.).{9}.(?!\28|\29|\30).{31}|
    .(.)(.).....(.)...{10}.(?!\31|\32|\33).{30}|
    .(.)...(.)..(.)...{11}.(?!\34|\35|\36).{29}|
    (.)(.).....(.)....{12}.(?!\37|\38|\39).{28}|
    ...(.).(.).(.)....{13}.(?!\40|\41|\42).{27}|
    ..(.)(.)..(.).....{14}.(?!\43|\44|\45).{26}|
    (.).(.)....(.)....{15}.(?!\46|\47|\48).{25}|
    (.)..(.)...(.)....{16}.(?!\49|\50|\51).{24}|
    (.)(.)(.).........{17}.(?!\52|\53|\54).{23}|
    .(.)..(.)(.)......{18}.(?!\55|\56|\57).{22}|
    (.)...(.)..(.)....{19}.(?!\58|\59|\60).{21}|
    .......(.)(.)(.)..{20}.(?!\61|\62|\63).{20}|
    .(.).....(.).(.)..{21}.(?!\64|\65|\66).{19}|
    ..(.)..(.)...(.)..{22}.(?!\67|\68|\69).{18}|
    ..(.).(.).....(.).{23}.(?!\70|\71|\72).{17}|
    ...(.).(.)..(.)...{24}.(?!\73|\74|\75).{16}|
    .(.)(.)(.)........{25}.(?!\76|\77|\78).{15}|
    (.).(.).....(.)...{26}.(?!\79|\80|\81).{14}|
    .....(.)..(.).(.).{27}.(?!\82|\83|\84).{13}|
    (.).(.).(.).......{28}.(?!\85|\86|\87).{12}|
    ..(.)...(.)..(.)..{29}.(?!\88|\89|\90).{11}|
    (.)....(.)..(.)...{30}.(?!\91|\92|\93).{10}|
    ....(.).(.).(.)...{31}.(?!\94|\95|\96).{9}|
    ...(.)..(.)(.)....{32}.(?!\97|\98|\99).{8}|
    ..(.)..(.)..(.)...{33}.(?!\100|\101|\102).{7}|
    ..(.).(.)(.)......{34}.(?!\103|\104|\105).{6}|
    ..(.)(.)..(.).....{35}.(?!\106|\107|\108).{5}|
    .(.).....(.)(.)...{36}.(?!\109|\110|\111).{4}|
    ..(.)....(.)(.)...{37}.(?!\112|\113|\114).{3}|
    ...(.)..(.)...(.).{38}.(?!\115|\116|\117).{2}|
    ....(.)(.)....(.).{39}.(?!\118|\119|\120).{1}
)$

2
aaaabaaacaaadaaaการแข่งขัน: ไม่ตรง: fdeacdbfbdcadaafdadcfdddfdbffeccbdecaaebfdfcfecbbfad.
jimmy23013

แทนที่(.)ด้วยอักขระที่ตรงกันและเรียงลำดับตามอักขระนั้นและจะชัดเจน
jimmy23013

1
โปรดทราบว่านี่เป็นปัญหาที่ทำให้สมบูรณ์ แต่ไม่ได้เข้ารหัสปลอดภัย มีข้อ จำกัด มากเกินไปและมีตัวแปรน้อยเกินไปที่จะทำให้เป็นเรื่องยาก
jimmy23013

1
@ user23013: เล่นได้ดีครับ ;) และแน่นอนฉันเชื่อว่านี่เป็นเรื่องย่อของ SAT ซึ่งเป็นเจตนาของฉัน มีบิตไม่เพียงพอที่จะทำให้มันยากอย่างที่คุณพูด
COTO

5

Python รสชาติ (721 ไบต์) [แตก]

ได้เวลาสำหรับ "การแยกวิเคราะห์ปัญหา v2":

^(((?(8)S)(((?(9)I|\\)(?(3)\]|Z)((?(7)l|R)(((((((?(4)p)((?(7)x)(?(1)B|Z)(?(11)\()(?(9)X)(?(8)P|T)(?(6)a|E)((?(5)E)(((?(8)3|\[)((?(3)\(|1)((?(1)M|L)(?(3)v|b)(?(2)t|l)(?(1)q)(?(1)K|H)(?(2)\)|R)(?(3)O|K)(?(5)l|l)(((?(2)\[|3)((?(2)N)((?(2)\\)((?(1)E|\])(?(1)\[)([(?(1)Q)])(?(24)\[)(?(24)q))(?(24)g))(?(22)s|U)(?(22)H)(?(23)c|U))(?(24)Q)(?(24)Q)(?(24)H)(?(23)K|\[))(?(22)e|y))(?(24)\\)(?(21)P|4)(?(19)T)(?(24)\))))(?(24)M)(?(17)\()(?(24)2))(?(19)7)(?(21)t|X)(?(22)v))(?(24)\[)(?(19)A|L)(?(16)E|1))(?(19)1|c)(?(14)K|\\)(?(19)4|5)(?(24)\\)(?(20)r)))(?(24)B)(?(24)w)(?(24)5))(?(24)\())(?(24)\\))(?(24)T))(?(9)\[))(?(15)z|w))(?(24)K)\7F(?(24)m)(?(24)R))(?(24)\[))(?(24)h))(?(14)x|t)(?(3)R|M)(?(24)\])(?(24)w))(?(21)z|6)(?(16)r)()$

การทดสอบบนRegex101


regex นี้มีประสิทธิภาพ "ซ่อนต้นไม้ในป่า" กลุ่มของ regex ประกอบด้วย(?(id)yes-pattern|no-pattern)นิพจน์ซึ่งตรงกับรูปแบบที่เหมาะสมขึ้นอยู่กับว่ามีกลุ่มที่มี id ที่ระบุอยู่หรือไม่ นิพจน์เหล่านี้ส่วนใหญ่ไม่ได้มีส่วนสำคัญ แต่มีบางอย่างที่ทำ อย่างไรก็ตามสิ่งที่ซ่อนอยู่ใน regex นั้นไม่ค่อยมีความหมาย[(?(1):Q)]ซึ่งเป็นชุดอักขระจริง ๆและ\7คุณต้องการติดตามกลุ่มอย่างใด ทั้งสองสิ่งนี้จะปรากฏในเครื่องมือแก้ไขใด ๆ ที่มีการเน้น แต่ตั้งใจจะเดินทางไปหาใครก็ตามที่ไม่ได้ระมัดระวัง


ผู้ชายนี่จะต้องใช้งานบ้าง
stokastic

4
\ZRZTE[1LblHRKl3]?sHcKePT(7tvAE1K4r[zZTE[1LblHRKl3]?sHcKePT(7tvAE1K4rFxRzrไม้ขีด aไม่ตรงกัน
g.rocket

นอกจากนี้ชุดของการแข่งขันที่เป็นไปได้ทั้งหมดคือ (ความคิดเห็นก่อนหน้าของฉัน) ด้วยการ?แทนที่ทั้งสองด้วยอักขระใด ๆ ใน(?(1)Q)
g.rocket

(ใน Regex101 มันจะบอกคุณอย่างชัดเจนว่าพยายามจับคู่อย่างไรเมื่อการแข่งขันล้มเหลวทำให้การค้นหาสิ่งที่ตรงกันนั้นง่ายขึ้น (อย่างน้อยสำหรับการระบุความผิดพลาดในโซลูชันของฉัน))
g.rocket

ผมอยู่ใกล้ ๆ ผมก็แค่หายไป?'s
stokastic

5

Python รสชาติ (4842 ไบต์) [แตก]

ด้วยขอบคุณ @COTO สำหรับแนวคิดและคำแนะนำ

ฉันชอบความคิด 3-SAT ของ @ COTOมากจนฉันคิดว่าฉันพยายามทำให้ regex ของตัวเองเป็นพื้นฐาน แต่ฉันไม่คุ้นเคยกับทฤษฎีของ 3-SAT ดังนั้นฉันจะไปอธิษฐานต่อเทพเจ้า RNG และหวังว่าฉันจะมีข้อ จำกัด เพียงพอ

ฉันพยายามที่จะรักษา regex ให้ต่ำกว่า 5,000 ตัวอักษรอย่างยุติธรรม - Regexes ที่ยาวกว่านั้นคงเป็นไปไม่ได้ที่จะถอดรหัส แต่พวกเขาก็ไม่สนุกที่จะถอดรหัสเช่นกัน

[^01]|^(.{0,81}|.{83,}|....0.{10}1.{22}0.{43}|....0.{14}0.{35}0.{26}|....0.{16}0.{5}1.{54}|....0.{17}1.{34}0.{24}|....1.{11}0.{41}1.{23}|....1.{12}1.{27}1.{36}|....1.{22}1.{38}1.{15}|....1.{30}0.{35}1.{10}|....1.{46}0.1.{28}|....1.{6}1.{65}0....|...0....1.1.{71}|...0.{18}0.{23}0.{35}|...1.{11}1.{33}1.{32}|..0...0.{53}1.{21}|..0.{30}1.{17}0.{30}|..1.{41}0.{10}0.{26}|.0.{13}0.{39}1.{26}|.0.{18}0.{49}0.{11}|.0.{27}1.{36}0.{15}|.0.{31}11.{47}|.00.{37}1.{41}|.1.{32}0.{31}1.{15}|.1.{38}0.{25}0.{15}|.1.{7}0.{38}0.{33}|.{10}0.{14}0.{15}0.{40}|.{10}0.{15}1.{15}1.{39}|.{10}0.{27}1.{11}1.{31}|.{10}0.{39}0.{7}0.{23}|.{10}0.{42}10.{27}|.{10}0.{9}0.{38}0.{22}|.{10}1.{45}1.{16}0.{8}|.{10}1.{47}0.{15}0.{7}|.{10}1.{59}0.{5}1.{5}|.{11}0.{11}0.{54}0...|.{11}0.{29}1.{35}0....|.{11}1.{32}0.{25}1.{11}|.{11}1.{48}1.{6}1.{14}|.{11}11.{50}1.{18}|.{12}0.{27}1.{18}0.{22}|.{12}0.{45}1.{7}1.{15}|.{12}1.{15}0.{42}1.{10}|.{13}0.{40}1...0.{23}|.{13}1.{20}1.{5}1.{41}|.{13}1.{22}0.{31}0.{13}|.{13}1.{24}1.{39}1...|.{13}1.{58}0.{8}0|.{14}0.{22}0....1.{39}|.{14}0.{23}0.{23}1.{19}|.{14}0.{53}10.{12}|.{14}1.{19}1.{11}0.{35}|.{14}1.{19}1.{21}1.{25}|.{14}1.{23}0.{14}0.{28}|.{14}1.{24}1.{12}1.{29}|.{14}1.{35}0.{22}0.{8}|.{14}1.{48}0.{15}1..|.{14}1.{58}0....1...|.{14}1.{65}11|.{14}1.{6}1.0.{58}|.{15}0...01.{61}|.{15}0.{12}0.{30}0.{22}|.{15}0.{15}0.{34}0.{15}|.{15}0.{30}1.{25}0.{9}|.{15}0.{31}0.{32}1.|.{15}0.{36}0.{25}1...|.{15}1.{14}1.{21}1.{29}|.{15}1.{16}1.{16}1.{32}|.{15}1.{20}0.{32}1.{12}|.{16}0.{35}1.{24}0....|.{16}0.{36}1.{15}1.{12}|.{16}1.{13}1.{22}0.{28}|.{16}1.{16}1.{14}0.{33}|.{16}1.{48}1.0.{14}|.{17}1.{29}1.{31}0..|.{17}1.{47}1.{8}0.{7}|.{17}1.{9}0.{20}0.{33}|.{18}0..0.{59}1|.{18}0.{33}1.{6}0.{22}|.{18}0.{36}1.{24}1.|.{18}0.{39}0.{17}1.{5}|.{18}1..0.{35}0.{24}|.{18}1.{16}0.{7}1.{38}|.{19}0.{17}0.{8}1.{35}|.{19}1.{42}00.{18}|.{20}0.{25}1.{31}1...|.{20}0.{43}1.{12}0....|.{20}0.{8}1.{40}0.{11}|.{20}00.{56}1...|.{20}1.{38}0.{7}1.{14}|.{21}0.{39}1.{16}0...|.{22}1....0.{44}1.{9}|.{22}1..1.{20}1.{35}|.{23}0.{39}1.{8}0.{9}|.{23}0.{8}1.{41}1.{7}|.{23}1.{18}1.{25}0.{13}|.{23}1.{20}0.{6}0.{30}|.{24}0.{17}1.{16}0.{22}|.{24}0.{21}1.{13}0.{21}|.{24}1...1.{49}0...|.{24}1.{5}0.{37}0.{13}|.{24}1.{8}1.{37}0.{10}|.{25}0.{36}0....0.{14}|.{25}1....0.{29}0.{21}|.{25}1....1.{10}1.{40}|.{25}1.{13}1.{13}0.{28}|.{25}1.{40}0.{7}0.{7}|.{26}0.{13}1.{21}0.{19}|.{26}0.{13}1.{25}1.{15}|.{27}0.{20}1.{11}0.{21}|.{27}0.{36}0.{6}0.{10}|.{27}1....1.0.{47}|.{27}1...0.{13}1.{36}|.{27}1.{10}0.{26}0.{16}|.{27}1.{30}1.{15}0.{7}|.{28}0.{14}1.{37}0|.{28}0.{21}1.0.{29}|.{28}0.{26}0.{16}0.{9}|.{28}1.{18}1.{23}1.{10}|.{29}0.{17}0.0.{32}|.{29}1.{24}0.{19}1.{7}|.{29}1.{46}1....0|.{30}1.{18}1.{9}0.{22}|.{30}1.{28}0....1.{17}|.{32}0.{25}1.{6}1.{16}|.{33}0.{22}1.{12}0.{12}|.{33}0.{6}0.{11}0.{29}|.{33}1.{5}1.{31}0.{10}|.{34}0.{13}0.{8}0.{24}|.{34}1...1.{35}0.{7}|.{34}1..1.{29}1.{14}|.{34}1.{38}01.{7}|.{34}1.{5}0.{40}1|.{34}1.{6}1.{38}1.|.{34}1.{7}0.{31}0.{7}|.{34}11...1.{42}|.{35}0.{19}0..0.{23}|.{35}1.{12}1.{24}0.{8}|.{36}0.{6}1.{17}1.{20}|.{36}0.{7}1.{17}1.{19}|.{36}0.{8}0.{13}1.{22}|.{36}1.{14}0.{9}1.{20}|.{37}0.{26}1.{16}0|.{37}1.{27}0.{10}0.{5}|.{38}1.{21}1.{7}1.{13}|.{39}0..0.{20}0.{18}|.{39}0.{15}0.{19}1.{6}|.{40}0....0.{28}1.{7}|.{40}0.{15}1.0.{23}|.{40}0.{5}1.{16}0.{18}|.{40}0.{8}1.{29}1..|.{40}00.0.{38}|.{41}0.0.{20}0.{17}|.{41}00.{32}0.{6}|.{41}1.{16}1.{21}1.|.{41}1.{8}1.{18}0.{12}|.{42}1.{31}1.{6}1|.{42}11.{27}0.{10}|.{43}0.{34}10..|.{44}1.0.{10}1.{24}|.{45}0.{9}0.{5}0.{20}|.{45}1.{12}0.{22}1|.{45}1.{17}1....0.{13}|.{45}1.{9}0...0.{22}|.{46}0.{11}1.{19}1...|.{46}1.{24}0.{5}0....|.{47}11.{8}1.{24}|.{48}0.{12}1....0.{15}|.{48}0.{15}0.{13}1...|.{48}1...0.{13}0.{15}|.{48}1.{11}0..0.{18}|.{48}11.{21}0.{10}|.{49}1.{7}1.{14}0.{9}|.{51}1.{12}1.{5}1.{11}|.{54}0.{13}0.{6}1.{6}|.{54}1.{11}1.1.{13}|.{56}0.{16}0..1.{5}|.{56}1.{11}0.{6}0.{6}|.{58}1....1.{6}0.{11}|.{5}0.{17}0.{42}0.{15}|.{5}0.{23}1.{26}1.{25}|.{5}0.{34}1.{22}0.{18}|.{5}0.{6}1.{13}1.{55}|.{5}1.{12}0.{31}1.{31}|.{5}1.{16}0.{39}1.{19}|.{5}1.{16}1.1.{57}|.{5}1.{24}1.{15}1.{35}|.{5}1.{24}1.{47}1...|.{66}0.0.{5}1.{7}|.{6}0....1.{24}0.{45}|.{6}0.{19}0.{7}1.{47}|.{6}0.{23}0.{14}0.{36}|.{6}0.{25}1.{41}0.{7}|.{6}0.{46}1.{22}0.{5}|.{6}0.{52}11.{21}|.{6}1.{35}10.{38}|.{7}0.{20}0.{16}0.{36}|.{7}0.{34}1.{20}1.{18}|.{7}0.{6}0.{36}0.{30}|.{7}0.{7}0.{15}0.{50}|.{7}0.{8}1.{42}1.{22}|.{7}1.{5}1.{56}1.{11}|.{7}1.{67}0..1...|.{8}0.{10}0.{38}0.{23}|.{8}0.{41}11.{30}|.{8}0.{9}1.{37}1.{25}|.{8}1.{50}1.{14}1.{7}|.{9}0..1.{55}0.{13}|.{9}0.{21}1.{42}0.{7}|.{9}0.{59}00.{11}|.{9}0.{9}0....1.{57}|.{9}00.{41}1.{29}|.{9}1....0.{20}0.{46}|.{9}1...0.{41}1.{26}|.{9}1.{30}0.{16}1.{24}|.{9}1.{30}0.{37}1...|.{9}1.{30}1.{14}1.{26}|.{9}1.{40}01.{30}|0.{17}1.{34}0.{28}|0.{23}1.{43}1.{13}|0.{30}1.{26}1.{23}|1.{13}00.{66}|1.{28}0.{42}1.{9}|1.{36}0.{35}1.{8}|1.{42}1.{32}1.{5}|1.{49}0.{16}0.{14}|1.{52}0.{7}0.{20}|)$

และที่นี่มันอยู่ในรูปแบบที่อ่านง่ายขึ้น:

[^01]|
^(
  .{0,81}|
  .{83,}|
  ....0.{10}1.{22}0.{43}|
  ....0.{14}0.{35}0.{26}|
  ....0.{16}0.{5}1.{54}|
  ....0.{17}1.{34}0.{24}|
  ....1.{11}0.{41}1.{23}|
  ....1.{12}1.{27}1.{36}|
  ....1.{22}1.{38}1.{15}|
  ....1.{30}0.{35}1.{10}|
  ....1.{46}0.1.{28}|
  ....1.{6}1.{65}0....|
  ...0....1.1.{71}|
  ...0.{18}0.{23}0.{35}|
  ...1.{11}1.{33}1.{32}|
  ..0...0.{53}1.{21}|
  ..0.{30}1.{17}0.{30}|
  ..1.{41}0.{10}0.{26}|
  .0.{13}0.{39}1.{26}|
  .0.{18}0.{49}0.{11}|
  .0.{27}1.{36}0.{15}|
  .0.{31}11.{47}|
  .00.{37}1.{41}|
  .1.{32}0.{31}1.{15}|
  .1.{38}0.{25}0.{15}|
  .1.{7}0.{38}0.{33}|
  .{10}0.{14}0.{15}0.{40}|
  .{10}0.{15}1.{15}1.{39}|
  .{10}0.{27}1.{11}1.{31}|
  .{10}0.{39}0.{7}0.{23}|
  .{10}0.{42}10.{27}|
  .{10}0.{9}0.{38}0.{22}|
  .{10}1.{45}1.{16}0.{8}|
  .{10}1.{47}0.{15}0.{7}|
  .{10}1.{59}0.{5}1.{5}|
  .{11}0.{11}0.{54}0...|
  .{11}0.{29}1.{35}0....|
  .{11}1.{32}0.{25}1.{11}|
  .{11}1.{48}1.{6}1.{14}|
  .{11}11.{50}1.{18}|
  .{12}0.{27}1.{18}0.{22}|
  .{12}0.{45}1.{7}1.{15}|
  .{12}1.{15}0.{42}1.{10}|
  .{13}0.{40}1...0.{23}|
  .{13}1.{20}1.{5}1.{41}|
  .{13}1.{22}0.{31}0.{13}|
  .{13}1.{24}1.{39}1...|
  .{13}1.{58}0.{8}0|
  .{14}0.{22}0....1.{39}|
  .{14}0.{23}0.{23}1.{19}|
  .{14}0.{53}10.{12}|
  .{14}1.{19}1.{11}0.{35}|
  .{14}1.{19}1.{21}1.{25}|
  .{14}1.{23}0.{14}0.{28}|
  .{14}1.{24}1.{12}1.{29}|
  .{14}1.{35}0.{22}0.{8}|
  .{14}1.{48}0.{15}1..|
  .{14}1.{58}0....1...|
  .{14}1.{65}11|
  .{14}1.{6}1.0.{58}|
  .{15}0...01.{61}|
  .{15}0.{12}0.{30}0.{22}|
  .{15}0.{15}0.{34}0.{15}|
  .{15}0.{30}1.{25}0.{9}|
  .{15}0.{31}0.{32}1.|
  .{15}0.{36}0.{25}1...|
  .{15}1.{14}1.{21}1.{29}|
  .{15}1.{16}1.{16}1.{32}|
  .{15}1.{20}0.{32}1.{12}|
  .{16}0.{35}1.{24}0....|
  .{16}0.{36}1.{15}1.{12}|
  .{16}1.{13}1.{22}0.{28}|
  .{16}1.{16}1.{14}0.{33}|
  .{16}1.{48}1.0.{14}|
  .{17}1.{29}1.{31}0..|
  .{17}1.{47}1.{8}0.{7}|
  .{17}1.{9}0.{20}0.{33}|
  .{18}0..0.{59}1|
  .{18}0.{33}1.{6}0.{22}|
  .{18}0.{36}1.{24}1.|
  .{18}0.{39}0.{17}1.{5}|
  .{18}1..0.{35}0.{24}|
  .{18}1.{16}0.{7}1.{38}|
  .{19}0.{17}0.{8}1.{35}|
  .{19}1.{42}00.{18}|
  .{20}0.{25}1.{31}1...|
  .{20}0.{43}1.{12}0....|
  .{20}0.{8}1.{40}0.{11}|
  .{20}00.{56}1...|
  .{20}1.{38}0.{7}1.{14}|
  .{21}0.{39}1.{16}0...|
  .{22}1....0.{44}1.{9}|
  .{22}1..1.{20}1.{35}|
  .{23}0.{39}1.{8}0.{9}|
  .{23}0.{8}1.{41}1.{7}|
  .{23}1.{18}1.{25}0.{13}|
  .{23}1.{20}0.{6}0.{30}|
  .{24}0.{17}1.{16}0.{22}|
  .{24}0.{21}1.{13}0.{21}|
  .{24}1...1.{49}0...|
  .{24}1.{5}0.{37}0.{13}|
  .{24}1.{8}1.{37}0.{10}|
  .{25}0.{36}0....0.{14}|
  .{25}1....0.{29}0.{21}|
  .{25}1....1.{10}1.{40}|
  .{25}1.{13}1.{13}0.{28}|
  .{25}1.{40}0.{7}0.{7}|
  .{26}0.{13}1.{21}0.{19}|
  .{26}0.{13}1.{25}1.{15}|
  .{27}0.{20}1.{11}0.{21}|
  .{27}0.{36}0.{6}0.{10}|
  .{27}1....1.0.{47}|
  .{27}1...0.{13}1.{36}|
  .{27}1.{10}0.{26}0.{16}|
  .{27}1.{30}1.{15}0.{7}|
  .{28}0.{14}1.{37}0|
  .{28}0.{21}1.0.{29}|
  .{28}0.{26}0.{16}0.{9}|
  .{28}1.{18}1.{23}1.{10}|
  .{29}0.{17}0.0.{32}|
  .{29}1.{24}0.{19}1.{7}|
  .{29}1.{46}1....0|
  .{30}1.{18}1.{9}0.{22}|
  .{30}1.{28}0....1.{17}|
  .{32}0.{25}1.{6}1.{16}|
  .{33}0.{22}1.{12}0.{12}|
  .{33}0.{6}0.{11}0.{29}|
  .{33}1.{5}1.{31}0.{10}|
  .{34}0.{13}0.{8}0.{24}|
  .{34}1...1.{35}0.{7}|
  .{34}1..1.{29}1.{14}|
  .{34}1.{38}01.{7}|
  .{34}1.{5}0.{40}1|
  .{34}1.{6}1.{38}1.|
  .{34}1.{7}0.{31}0.{7}|
  .{34}11...1.{42}|
  .{35}0.{19}0..0.{23}|
  .{35}1.{12}1.{24}0.{8}|
  .{36}0.{6}1.{17}1.{20}|
  .{36}0.{7}1.{17}1.{19}|
  .{36}0.{8}0.{13}1.{22}|
  .{36}1.{14}0.{9}1.{20}|
  .{37}0.{26}1.{16}0|
  .{37}1.{27}0.{10}0.{5}|
  .{38}1.{21}1.{7}1.{13}|
  .{39}0..0.{20}0.{18}|
  .{39}0.{15}0.{19}1.{6}|
  .{40}0....0.{28}1.{7}|
  .{40}0.{15}1.0.{23}|
  .{40}0.{5}1.{16}0.{18}|
  .{40}0.{8}1.{29}1..|
  .{40}00.0.{38}|
  .{41}0.0.{20}0.{17}|
  .{41}00.{32}0.{6}|
  .{41}1.{16}1.{21}1.|
  .{41}1.{8}1.{18}0.{12}|
  .{42}1.{31}1.{6}1|
  .{42}11.{27}0.{10}|
  .{43}0.{34}10..|
  .{44}1.0.{10}1.{24}|
  .{45}0.{9}0.{5}0.{20}|
  .{45}1.{12}0.{22}1|
  .{45}1.{17}1....0.{13}|
  .{45}1.{9}0...0.{22}|
  .{46}0.{11}1.{19}1...|
  .{46}1.{24}0.{5}0....|
  .{47}11.{8}1.{24}|
  .{48}0.{12}1....0.{15}|
  .{48}0.{15}0.{13}1...|
  .{48}1...0.{13}0.{15}|
  .{48}1.{11}0..0.{18}|
  .{48}11.{21}0.{10}|
  .{49}1.{7}1.{14}0.{9}|
  .{51}1.{12}1.{5}1.{11}|
  .{54}0.{13}0.{6}1.{6}|
  .{54}1.{11}1.1.{13}|
  .{56}0.{16}0..1.{5}|
  .{56}1.{11}0.{6}0.{6}|
  .{58}1....1.{6}0.{11}|
  .{5}0.{17}0.{42}0.{15}|
  .{5}0.{23}1.{26}1.{25}|
  .{5}0.{34}1.{22}0.{18}|
  .{5}0.{6}1.{13}1.{55}|
  .{5}1.{12}0.{31}1.{31}|
  .{5}1.{16}0.{39}1.{19}|
  .{5}1.{16}1.1.{57}|
  .{5}1.{24}1.{15}1.{35}|
  .{5}1.{24}1.{47}1...|
  .{66}0.0.{5}1.{7}|
  .{6}0....1.{24}0.{45}|
  .{6}0.{19}0.{7}1.{47}|
  .{6}0.{23}0.{14}0.{36}|
  .{6}0.{25}1.{41}0.{7}|
  .{6}0.{46}1.{22}0.{5}|
  .{6}0.{52}11.{21}|
  .{6}1.{35}10.{38}|
  .{7}0.{20}0.{16}0.{36}|
  .{7}0.{34}1.{20}1.{18}|
  .{7}0.{6}0.{36}0.{30}|
  .{7}0.{7}0.{15}0.{50}|
  .{7}0.{8}1.{42}1.{22}|
  .{7}1.{5}1.{56}1.{11}|
  .{7}1.{67}0..1...|
  .{8}0.{10}0.{38}0.{23}|
  .{8}0.{41}11.{30}|
  .{8}0.{9}1.{37}1.{25}|
  .{8}1.{50}1.{14}1.{7}|
  .{9}0..1.{55}0.{13}|
  .{9}0.{21}1.{42}0.{7}|
  .{9}0.{59}00.{11}|
  .{9}0.{9}0....1.{57}|
  .{9}00.{41}1.{29}|
  .{9}1....0.{20}0.{46}|
  .{9}1...0.{41}1.{26}|
  .{9}1.{30}0.{16}1.{24}|
  .{9}1.{30}0.{37}1...|
  .{9}1.{30}1.{14}1.{26}|
  .{9}1.{40}01.{30}|
  0.{17}1.{34}0.{28}|
  0.{23}1.{43}1.{13}|
  0.{30}1.{26}1.{23}|
  1.{13}00.{66}|
  1.{28}0.{42}1.{9}|
  1.{36}0.{35}1.{8}|
  1.{42}1.{32}1.{5}|
  1.{49}0.{16}0.{14}|
  1.{52}0.{7}0.{20}|
)$

การทดสอบบนRegex101


regex กำลังค้นหาสตริง 82 ตัวอักษรเป็นS0s และ 1s จะดำเนินการตรวจสอบจำนวนมากของแบบฟอร์ม (หลังจากใช้เดมอร์แกน) S[index1] != digit1หรือS[index2] != digit2OR S[index3] != digit3ซึ่งประกอบขึ้นเป็นส่วนคำสั่ง 3-SAT ขนาด regex เป็นเส้นตรงในจำนวนของปมและลอการิทึมในจำนวนของตัวละครในคีย์ (เนื่องจาก.{n}สัญกรณ์) น่าเสียดายที่การรักษาความปลอดภัยจำนวนเบาะแสต้องขึ้นอยู่กับขนาดของคีย์และในขณะที่เป็นไปได้ที่จะสร้างรหัสที่ไม่สามารถถอดแยกได้ด้วยวิธีนี้


1
xการแข่งขัน: ไม่ตรงกับ:0011001101000000000111010001101101011000010011011010000000010001011111000100010000
nneonneo

aaaabaaacaaadaaaการแข่งขัน: ที่ไม่ใช่การแข่งขัน: +011100110010001010111101001010010011110010011010110101010001101100101111111111 0000เพียงไม่กี่วินาทีช้าลง ...
jimmy23013

ว้าวเร็วมาก - พวกคุณดุร้ายเหรอ?
Sp3000

1
@ Sp3000 ฉันทำด้วยตนเองเกือบจะ ... วิธีการทางสถิติทำงานได้อย่างน่าประหลาดใจ
jimmy23013

2
@ Sp3000: ฉันจะ bruteforced มัน แต่นั่นก็ไม่สนุก แต่ฉันแปลงลำดับของคุณเป็น 3SAT และถอดรหัสด้วย minisat ใช้เวลา 0.3 วินาที (ใช้เวลาในการแปลงประมาณ 10 นาที)
nneonneo

5

รส Perl, 133 [แตก]

โอเคสิ่งนี้ควรยากกว่าที่จะดุร้าย:

^([^,]{2,}),([^,]{2,}),([^,]{2,}),(?=.\2+,)(?=.\3+,)\1+,(?=.\1+,)(?=.\3+,)\2+,(?=.\1+,)(?=.\2+,)\3+,(?=.{16,20}$)(\1{3}|\2{3}|\3{3})$

และเวอร์ชันที่ยาวกว่าไม่ใช่ส่วนหนึ่งของความท้าทาย:

^([^,]{3,}),([^,]{3,}),([^,]{3,}),([^,]{3,}),([^,]{3,}),([^,]{3,}),(?=.\2+,)(?=.\3+,)(?=.\4+,)(?=.\5+,)(?=.\6+,)\1+,(?=.\1+,)(?=.\3+,)(?=.\4+,)(?=.\5+,)(?=.\6+,)\2+,(?=.\1+,)(?=.\2+,)(?=.\4+,)(?=.\5+,)(?=.\6+,)\3+,(?=.\1+,)(?=.\2+,)(?=.\3+,)(?=.\5+,)(?=.\6+,)\4+,(?=.\1+,)(?=.\2+,)(?=.\3+,)(?=.\4+,)(?=.\6+,)\5+,(?=.\1+$)(?=.\2+$)(?=.\3+$)(?=.\4+$)(?=.\5+$)\6+$

สามารถทดสอบบนRegex101 (รสpcre )


แนวคิดเบื้องหลังรูปแบบนี้คือเราสามารถเข้ารหัสระบบสมการความสอดคล้องง่าย ๆ ใน regex โดยใช้ lookaheads ยกตัวอย่างเช่น regex ไม่^(?=(..)*$)(...)*$ตรงกับสายใด ๆ ที่มีความยาวเป็นหลาย ๆ ร่วมกันของ2และ3ที่เป็นหลายของ6 นี้สามารถมองเห็นเป็นสมการ2x ≡ 0 mod 3 เราสามารถกำหนดพารามิเตอร์ของสมการโดยใช้กลุ่มการจับภาพ: regex ^(.*),(.*),(?=\1*$)\2*$จับคู่สตริงที่จำนวนอักขระหลังจากเครื่องหมายจุลภาคสุดท้ายเป็นผลคูณของความยาวของการส่งครั้งแรกและครั้งที่สอง สิ่งนี้สามารถมองเห็นได้เป็นaxeสมการแปรผัน≡ 0 mod bโดยที่aและb คือความยาวของสอง submatches

Regex ด้านบนเริ่มต้นด้วยการ "สามพารามิเตอร์" ของความยาวอย่างน้อยสองและตามด้วย "ระบบของสมการ" สามแห่งจาก(?=.\1+,)(?=.\2+,)\3+,ที่ตรงกับ{ax + 1 ≡ 0 mod c โดย + 1 ≡ 0 mod c, ax = by} โดยที่ a , bและcคือความยาวของการส่งที่สอดคล้องกัน ระบบสมการนี้มีวิธีการแก้ปัญหาและถ้าหากและBจะ coprime เพื่อค เนื่องจากเรามีสามระบบดังกล่าวแต่ละอันสำหรับแต่ละการส่งความยาวของการส่งจะต้องเป็นแบบคู่ตามลำดับ ส่วนสุดท้ายของ regex จะมีการตรวจสอบให้แน่ใจว่าหนึ่งใน submatches คือความยาว6 นี่เป็นการบังคับให้อีกสองคนยอมแพ้

ความยาว 5และ7ตัวอักษรเนื่องจากค่าที่น้อยกว่าจะไม่เป็น coprime และค่าที่มากกว่าจะทำให้คีย์ยาวกว่า 256 ตัว การแก้ปัญหาที่เล็กที่สุดสำหรับสมการนั้นจะให้สตริงของความยาว85 , 36และ91ซึ่งส่งผลให้สตริงมีความยาว 254 --- ประมาณเท่าที่เราจะได้

regex ที่ยาวกว่าใช้หลักการเดียวกันเท่านั้นที่มีความยาว 6 พารามิเตอร์อย่างน้อยสามข้อและไม่มีข้อ จำกัด เพิ่มเติม ชุด coprime คู่ที่เล็กที่สุดของจำนวนเต็มหกจำนวนที่มากกว่า2คือ{3, 4, 5, 7, 11, 13}ซึ่งให้ substrings ที่มีความยาวน้อยที่สุด40041, 15016, 24025, 34321, 43681 และ 23101. ดังนั้นสตริงที่สั้นที่สุดที่ตรงกับ regex ที่ยาวกว่าคือ a{3},a{4},a{5},a{7},a{11},a{13},a{40041},a{15016},a{24025},a{34321},a{43681},a{23101} (ตามลำดับพารามิเตอร์) นั่นคือ 180,239 ตัวอักษร!


{16,20}ที่
Sp3000

2
การแข่งขัน: aaaaa,aaaaaa,aaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaa, ไม่ตรงกัน:aaaaaaaaaaaaaaaa
Sp3000

ฉันคิดว่า SE ยังคงเพิ่มรายการพิเศษaด้วยเหตุผลบางอย่าง - ควรมี 5,6,7,85,36,91,18 as ระหว่างเครื่องหมายจุลภาค: /
Sp3000

@ Sp3000 เลือกบัตรใด ๆ ;) ใช่คุณแตกมัน ดูเหมือนว่า 'a's ในความคิดเห็นของคุณบางส่วนไม่ใช่ ASCII แต่ตัวเลขนั้นถูกต้อง
Ell

@Ell as เป็น ASCII ทั้งหมด แต่มีอักขระ Unicode ที่ไม่สามารถพิมพ์ได้สองตัวสำหรับการแบ่งบรรทัดด้วยตนเอง SE แต่ละตัว
Martin Ender

5

. NET รส 141 ไบต์ [แตก]

(?=(?<![][])(?(c)(?!))((?<c>[[])|(?<-c>[]])){15,}(?(c)(?!))(?![][]))^.*$(?<=(?<![][])(?(c)(?!))((?<c>[[])|(?<-c>[]])){15,}(?(c)(?!))(?![][]))

อีกอันสำหรับโจร! ฉันแน่ใจว่าสิ่งนี้จะถูกแตกร้าว แต่ฉันหวังว่าบุคคลที่ถอดรหัสจะได้เรียนรู้สิ่งที่น่าสนใจเกี่ยวกับรสชาติของ. NET ในกระบวนการ

การทดสอบบนRegexStormและRegexHero

ฉันคิดว่าอันนี้น่าสนใจเพราะมันอาศัยการทำงานร่วมกันของคุณสมบัติหลักทั้งสามที่คุณสามารถพบได้ใน. NET: lookbehinds ความยาวผันแปร, กลุ่มสมดุลและการจับคู่จากขวาไปซ้าย

ก่อนที่เราจะเริ่มต้นใน. NET-specific เรามาทำความเข้าใจเกี่ยวกับคลาสของตัวละครกันก่อน คลาสของตัวอักษรต้องไม่ว่างเปล่าดังนั้นหากเริ่มต้นด้วย a ]นั่นเป็นส่วนหนึ่งของชั้นเรียนจริง ๆ โดยไม่ต้องหลบหนี เช่นเดียวกัน[ในคลาสของตัวละครสามารถได้รับการปฏิบัติอย่างไม่น่าเชื่อในฐานะสมาชิกของคลาสโดยไม่ต้องหลบหนี ดังนั้น[]]การจับคู่ที่เหมือนกันเพียงครั้งเดียว\]และ[[]เหมือนกัน\[และที่สำคัญกว่า[][]นั้นคือคลาสตัวละครที่บรรจุทั้งสองวงเล็บ

ตอนนี้เรามาดูโครงสร้างของ regex:(?=somePattern)^.*$(?<=somePattern). ดังนั้นการแข่งขันที่เกิดขึ้นจริงคืออะไรจริงๆ ( ^.*$) แต่เราใช้หนึ่งรูปแบบสองครั้งยึดกับเริ่มต้นหนึ่งครั้งและสิ้นสุดครั้งเดียว

ลองดูที่รูปแบบนั้น: (?<![][])ตรวจสอบให้แน่ใจว่าไม่มีวงเล็บเหลี่ยมอยู่ก่อนรูปแบบ (?![][])(ในตอนท้าย) ตรวจสอบให้แน่ใจว่าไม่มีเครื่องหมายวงเล็บหลังรูปแบบ นี่คือการเติมเต็มที่ปลายของสตริงหรือติดกับตัวละครอื่น ๆ
สิ่งนี้(?(c)(?!))ในตอนแรกตอนนี้ซ้ำซ้อนจริง ๆ แล้วเพราะมันทำให้แน่ใจว่ากลุ่มจับชื่อที่มีชื่อcไม่ตรงกับสิ่งใด เราไม่จำเป็นต้องมีที่สิ้นสุดดังนั้นอย่างน้อยมันเป็นเรื่องดีและสมมาตร ((?<c>[[])|(?<-c>[]])){15,}(?(c)(?!))ตอนนี้ส่วนหลักของรูปแบบนี้คือ: กลุ่มเหล่านี้เรียกว่ากลุ่มการทรงตัวและสิ่งที่พวกเขาทำที่นี่ตรงกับสตริงอย่างน้อย 15 ตัววงเล็บเหลี่ยมที่สมดุล มีหลายเรื่องที่ต้องพูดถึงเกี่ยวกับการสร้างความสมดุลให้กับกลุ่ม - มากเกินไปสำหรับโพสต์นี้ แต่ฉันสามารถอ้างถึงคุณถึงการอภิปรายที่ค่อนข้างครอบคลุมซึ่งฉันโพสต์ไว้ใน StackOverflowนานมาแล้ว

โอเคสิ่งที่ลุคเฮดทำคือทำให้แน่ใจว่าลวดลายเริ่มต้นด้วยวงเล็บเหลี่ยมที่สมดุลเหล่านั้น - และไม่มีวงเล็บเหลี่ยมถัดจากนั้น

ตอนนี้ lookbehind ที่ส่วนท้ายมีรูปแบบเหมือนกันทุกประการ ดังนั้นนี่ไม่ควรซ้ำซ้อนหรือ ไม่ควรทำสิ่งที่ชอบ[][][][][][][][]เติมเต็มทั้ง lookarounds และทำให้รูปแบบการจับคู่?

ไม่เพราะนี่คือที่ที่มันยาก แม้ว่าจะไม่มีเอกสารก็ตาม แต่ .NET lookbehinds จะถูกจับคู่จากขวาไปซ้าย. นี่คือสาเหตุที่. NET เป็นเพียงรสชาติเดียวที่รองรับการค้นหาความยาวผันแปร โดยปกติคุณจะไม่สังเกตเห็นสิ่งนี้เนื่องจากลำดับการจับคู่นั้นไม่เกี่ยวข้อง แต่ในกรณีพิเศษนี้หมายความว่าตอนนี้วงเล็บเหลี่ยมเปิดต้องมาทางด้านขวาของวงเล็บเหลี่ยมปิด ดังนั้น lookbehind จริงตรวจสอบวงเล็บป้องกันการจับคู่ในขณะที่หรือ][][][ ]]][[[นั่นเป็นเหตุผลที่ฉันยังต้องการการตรวจสอบ(?(c)(?!))ที่จุดเริ่มต้นของรูปแบบเพราะตอนนี้เป็นจุดสิ้นสุดของการจับคู่

ดังนั้นเราต้องการวงเล็บปีกกาที่ตรงกัน 15 (หรือ 16) ที่จุดเริ่มต้นของสตริงและ 15 (หรือ 16) วงเล็บต่อต้านการจับคู่ที่ส่วนท้ายของสตริง แต่ทั้งสองไม่สามารถเชื่อมต่อได้เนื่องจาก(?![][])lookarounds ดังนั้นสิ่งที่เราจะทำ? [][][][][[[[]]]]!][][][][]]]][[[[เราจะใช้การจับคู่สายและสตริงต่อต้านการจับคู่และร่วมกับพวกเขาด้วยตัวโดยพลการให้ตัวอย่างเช่น

ฉันเดาว่าเป็นคำถามเดียว ... ฉันคิดได้อย่างไรว่าบนโลกใบนี้ตรงกับจากซ้ายไปขวา? ฉันลองใช้เวทย์มนตร์ regane บางครั้งแล้วคิดออกไม่ได้ว่าทำไมถึงไม่ได้ผล ดังนั้นผมจึงถามที่เป็นมิตร Q & ไซต์ประตูถัดไป ตอนนี้ฉันมีความสุขมากเกี่ยวกับคุณลักษณะนี้เพราะจะทำให้กลุ่มที่มีความสมดุลมีประสิทธิภาพยิ่งขึ้นหากคุณรู้วิธีใช้งานได้อย่างถูกต้อง :)


1
[][][][][][][][]a][][][][][][][][การแข่งขัน: ไม่ตรง:That's interesting...
jimmy23013

@ user23013 ใช่แล้ว! นั่นเป็นเรื่องด่วน คุณคุ้นเคยกับนิสัยใจคอของ. NET หรือไม่? :)
Martin Ender

หวังว่าฉันจะได้เห็น
ลุ

ไม่ได้ แต่ฉันรู้แล้วว่าตัวปริมาณไม่ได้รับอนุญาตให้ใช้กับ lookrehind ใน PCRE ฉันคิดว่าการมองย้อนกลับไปนั้นดีกว่านั้นมาก
jimmy23013

@ MartinBüttnerดังนั้นเพื่อยืนยันว่า lookbehinds จริง ๆ แล้วจับคู่จากด้านหลังไปข้างหน้า?
TwiNight

5

Python รสชาติ (200127 ไบต์) [แตก]

เพียงเพื่อเรา (หวังว่า) จะได้เห็นบางสิ่งบางอย่างในแต่ละวันมันเป็นเวลาที่จะนำปืนใหญ่ออกมา :)

ปัญหาเกี่ยวกับเส้นทาง 3-SAT และ Hamiltonian ก็คือความซับซ้อนนั้นมีขนาดที่สำคัญ เวลานี้ฉันได้เลือกบางสิ่งที่ขึ้นอยู่กับ regex ไม่ใช่กุญแจ

นี่มันคือregex คุณอาจพบว่าไฟล์นี้มีประโยชน์ (ไม่ต้องกังวลฉันไม่ได้ซ่อนอะไรแปลก ๆ ในครั้งนี้))

ฉันใช้RegexPlanetเพื่อทดสอบอันนี้ - มันยากที่จะหาบางสิ่งที่จะไม่หมดเวลา: / หากต้องการตรวจสอบว่ามีการจับคู่หรือไม่ให้ดูว่าสตริงของคุณปรากฏfindall()หรือไม่

โชคดี!


regex เป็นเพียง "ค้นหาสตริงที่มีความยาว 64 ซึ่งปรากฏเป็นชุดประกอบทั่วไปในชุดของสตริง 20 สตริงที่มีความยาว 5000" มีวิธีแก้ปัญหามากเกินไป แต่อาจ


5
d,mE~JZ0,_:3kBdLdgBSzJ!@MLrrAgKsf@Pl35N9bxsIf@ReVU>:YDg`d1MjL@_-การแข่งขัน: ไม่ตรง:{ line|fold -w1 >filea; while line >filec; do fold -w1 <filec >fileb; diff -d --old-line-format= --new-line-format= --unchanged-line-format=%L filea fileb >filec;mv filec filea;done;cat filea;} <file1|tr -d $'\n'|head -c64;echo
jimmy23013

Ahaha ฉันชนะ - ฉันเดาว่าลำดับนั้นยาวเกินไปและมีวิธีแก้ปัญหามากเกินไป
Sp3000

@ user23013 มันฟังดูเยอะ แต่ที่จริงแล้วมันก็ไม่ได้แย่เกินไปเพราะเห็นว่ามี 5437589409196755010929519821645784067024808068067587576269057589890990890990890898909908909908809908909908909908808 @ มีผู้ใช้จำนวนมาก
Martin Ender

ฉันผิด มีไม่เพียง 718406958841 โซลูชั่น และสคริปต์ของฉันมีข้อผิดพลาดดังนั้นมันจึงไม่สนใจรูปแบบสุดท้าย แต่รูปแบบทั่วไปของ 19 รูปแบบที่เกิดขึ้นนั้นก็เป็นองค์ประกอบของรูปแบบสุดท้ายด้วย
jimmy23013

@ MartinBüttnerฉันหมายถึงฉันไม่ทราบแน่ชัดว่ามีวิธีแก้ปัญหากี่ข้อและตัวเลขนั้นผิด การเรียงลำดับทั่วไปที่ยาวที่สุดของพวกเขามี 718406958841 (ค่าที่ถูกต้อง: 97082021465) ความยาว 64 แต่มี CS อื่นที่ไม่ใช่ส่วนประกอบของ LCS
jimmy23013

5

Python 145475 ไบต์ [แตก]

ขอบคุณ Wumpus ที่สอนฉันถึงความสำคัญของการตรวจสอบดัชนีของเรา :)

ดีลเดียวกับทางออกสุดท้ายหวังว่าจะไม่พังในครั้งนี้ Raw regex: http://pastebin.com/MReS2R1k

แก้ไข: มันไม่ได้หัก แต่เห็นได้ชัดว่ามันยังง่ายเกินไป อย่างน้อยก็ไม่ได้รับการแก้ไข "ทันที";)


4
ไม่ใช่การแข่งขัน: การ1040060321170122554027333022674205250442151362365165773421664173556667110413375720720711725045122733213710556062114131057357354554245723416516004761215632214223735570625116160162051407026445600345370604702671021412723536217011007021752560474402200436670402แข่งขัน:minisat2hoursCPU

Ayup คุณมีฉัน. มันค่อนข้างเร็ว บางทีฉันอาจจะต้องหน้าอกออก regex 1GB ของฉันหลังจากที่ทั้งหมด ...
nneonneo

5

การใช้งานรูปแบบ Java / Oracle (75 chars / 150 bytes UTF-16) [แตก]

(ชื่อรหัส: Bad Coffee 101)

นี่คือPatternวัตถุที่มีCANON_EQธงที่จะใช้กับmatches()(โดยนัยสมอ):

Pattern.compile("(\\Q\u1EBF\\\\E)?+[\\w&&[\\p{L1}]\\p{Z}]+|\\1[\uD835\uDC00-\uD835\uDC33]{1927027271663633,2254527117918231}", Pattern.CANON_EQ)

ทดสอบคีย์ของคุณที่นี่บน ideone

มีการรับประกันว่าจะมีกุญแจ อ่านสปอยเลอร์หากคุณต้องการการยืนยัน

อย่างที่คุณเห็นมันไม่ใช่ regex ปกติ อย่างไรก็ตามมันทำงานได้โดยไม่ต้องExceptionใช้ Java เวอร์ชัน 1.6.0u37 และ Java เวอร์ชัน 1.7.0u11 ของ Oracle และควรรันเป็นเวอร์ชั่นล่าสุดในขณะที่เขียน

สิ่งนี้ใช้ประโยชน์จากข้อบกพร่อง 4 ข้อ: CANON_EQการเก็บรักษาข้อความที่ถูกจับในความพยายามที่ล้มเหลวคลาสอักขระที่สูญหาย


4
จับคู่ : "(?:e\u0302\u0301\\|\u00ea\u0301\\|\u1ebf\\|\u00ea\\\u0301|e\u0302\\\u0301|\u00ea\\\u0301|\u00ea\u0301\\|\u1ebf\\|e\\\u0302\u0301)\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00\uD835\uDC00"(แบบฟอร์มที่ยกมา) ไม่ตรง : JavaRegexSoBuggy. ideone สำหรับการแข่งขัน: ideone.com/DEesdk
nneonneo

ข้อบกพร่องที่พบ: (1) CANON_EQขยายตัวอักษร precomposed เข้า alternations ภายในซึ่งแบ่งสนุกสนานภายใน\Q\E; (2) ความยาวการทำซ้ำจะถูกตัดเป็น 32 บิต (3) มีบางสิ่งแปลก ๆ เกิดขึ้นกับ matcher คลาสตัวละครที่ทำให้มันข้ามการเปลี่ยนแปลง (ไม่ได้ค่อนข้างเข้าใจว่าแมลงเป็นอย่างไร)
nneonneo

@nneonneo: คำอธิบายของคุณถูกต้อง แต่คุณลืม\1ข้อผิดพลาดbackref และใช่มีข้อบกพร่องในคลาสตัวละคร คุณคิดออกทั้งหมดภายในเวลาไม่ถึง 2 ชั่วโมงได้อย่างไร
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

ฉันเริ่มทำงานกับมันเมื่อ 20 นาทีก่อน คุณทำให้มันเห็นได้ชัดว่าส่วนใดของปัญหาที่เน้นว่าข้อบกพร่อง (เพราะข้อผิดพลาดแต่ละอย่างนั้นอยู่ในกลุ่มของตัวเอง) ดังนั้นฉันจึงหาวิธีที่จะทำให้แต่ละส่วนเป็นอิสระจากนั้นจึงรวมเข้าด้วยกัน ฉันโชคดีที่ฉันไม่จำเป็นต้องคิดออกว่าคลาสตัวละครทำอะไร (ฉันยังมีโชคดีมากที่ Java ถ่มน้ำลายออก "ขยาย" รูปแบบภายในเมื่อคุณมีข้อผิดพลาดทางไวยากรณ์ :)
nneonneo

นอกจากนี้ยัง! ฉันไม่เชื่อว่าการเก็บข้อความที่บันทึกไว้นั้นเป็นข้อผิดพลาด นั่นดูเหมือนจะเป็นวิธีการทำงานของปริมาณที่เป็นเจ้าของ (มันเป็นคุณสมบัติที่ค่อนข้างมีประโยชน์สำหรับบางอย่าง regex แฮ็ ... hm ... )
nneonneo

5

. NET รส 17,372 ไบต์ [แตก]

นี่ยังเป็นเวอร์ชั่นง่าย มันต้องการการปรับให้เหมาะสมมากขึ้นเพื่อทำงานกับสตริงที่ยาวขึ้น

regex อยู่ที่นี่: http://pastebin.com/YPE4zyBB

Ungolfed: http://pastebin.com/PLJp0KhF

ทดสอบบนRegexStormและบล็อกนี้และRegExLib (โดยไม่เลือกตัวเลือกทั้งหมด)

วิธีแก้ปัญหาสำหรับ regex นี้คือการแยกตัวประกอบของ 5122188685368916735780446744735847888756487271329 = 2147852126374329492975359 * 2384795779221263457172831 ด้วยการเข้ารหัสผลลัพธ์ในฐาน 289 ซึ่งน้อยที่สุดที่มีความสำคัญอันดับแรก

แต่ละหลักแรกจะถูกแบ่งออกเป็นสองฐาน 17 หมายเลขเพื่อให้การคำนวณเร็วขึ้น นี่คือวิธีการเข้ารหัสผลิตภัณฑ์ใน regex

คู่ของตัวเลขในตัวเลขสองแต่ละคูณเข้าไปในกลุ่มจับไปa0 a38แต่ละคนเป็นตัวเลขของผลิตภัณฑ์ ตำแหน่งปัจจุบันจะถูกเก็บไว้โดยการติดตามและp qและดำเนินการดำเนินการหลังจากการคูณในขณะที่เปรียบเทียบผลิตภัณฑ์

มันอยู่ในฐาน 289 เพราะมันถูกออกแบบมาเพื่อรับตัวเลข 1024 บิตสองตัวซึ่งมี 128 ฐาน 256 หลักแต่ละตัวและฉันไม่คิดว่าจะลบเครื่องหมายจุลภาคดังนั้นสตริงทั้งหมดที่มีฐาน 256 จะเป็นอักขระ 257 ตัว

รุ่น 1536 บิตอยู่ที่นี่ ยอมรับตัวเลข 768 บิตสองหมายเลข ตัวเลขในเวอร์ชั่นง่าย ๆ แต่ละตัวมีเพียง 81 บิต


2
Match : Ľê¯6Aĝ4aþĀ,lŃŝĿBİŢŞĩï(หนี: \u013d\xea\xaf6A\u011d4a\xfe\u0100,l\u0143\u015d\u013fB\u0130\u0162\u015e\u0129\xef) ไม่ตรงกับ :VeryNiceMultiplier
nneonneo

4

ECMAScript รส 30 ไบต์ [แตก]

^((?![\t- ]|[^\s])(.)(?!\2))+$

นี่เป็นเรื่องง่ายสำหรับโจรที่จะร้าว มันเป็นแนวคิดที่ไม่ยากเกินไป แต่อาจต้องมีการวิจัยเล็กน้อย (หรือการเขียนสคริปต์) ฉันไม่ได้ตั้งใจที่จะแสดงรายการตัวเองในลีดเดอร์บอร์ด แต่ถ้ามีใครแตกภายใน 72 ชั่วโมงสิ่งนี้จะนับรวมคะแนนของผู้ปล้น

ทดสอบกับRegex101และRegExrโดยใช้ Chrome

นั่นมันเร็วมาก!

regex ควรตรงกับสตริงใด ๆ ที่ประกอบด้วยอักขระช่องว่างไม่ใช่ ASCII ที่แตกต่างกัน อย่างไรก็ตามฉันลืม.*ก่อนหน้า\2นี้ดังนั้นจึงจับคู่สตริงของช่องว่างที่ไม่ใช่ ASCII จริง ๆ ซึ่งไม่มีอักขระเหมือนกันสองตัวติดต่อกัน มี 18 ตัวอักษรดังกล่าวใน Unicode 0xFFFFมีช่วงถึงจุดรหัส การแข่งขันที่โพสต์โดยผู้ใช้ 23013 เป็นหนึ่งในสตริงดังกล่าวซึ่งประกอบด้วย 16 ตัวอักษร


1
Match (base64) wqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBn8Kg4oGfwqDigZ/CoOKBnw==aaaabaaacaaadaaa
:,

มันไม่แตกต่างกัน แต่สลับกันโดยมีเพียงอักขระสองตัวเท่านั้น
jimmy23013

@ user23013 ประณามฉันลืม.*ใน lookahead จับดี. ควรทดสอบให้ละเอียดยิ่งขึ้น
Martin Ender

4

รสทับทิม 24 ไบต์ [แตก]

^(?!.*(.+)\1)([\[\\\]]){256}$

โปรดรวมลิงก์ไปยังผู้ทดสอบที่คีย์ที่คุณต้องการทำงาน (เช่นrubular.com ) (นอกจากนี้เคล็ดลับที่ทำให้งอแง / การเล่นกอล์ฟ: ถ้าคุณใช้ PCRE แทนคลาสของตัวละครสามารถเขียนเป็น[]\\[];))
Martin Ender

เพิ่มลิงก์แล้ว ฉันสงสัยว่า Wumpus ได้แตกมันสามารถพิสูจน์ได้ว่ามันมีความคิดเห็นที่จะ rubular.com
histocrat

2
ไม่ตรง: soylentgreenispeople. จับคู่ที่rubular.com/r/TCqjcaGsU1 ที่ไม่ได้โพสต์ที่นี่เพราะระบบความคิดเห็นจัดการกับคำพูดยาว ๆ ได้อย่างไร

@ WumpusQ.Wumbley Great! หากคุณรวมการจับคู่ที่ไม่ตรงกันไว้ในความคิดเห็นเดียวกันเราสามารถล้างข้อมูลทั้งหมดที่อยู่ด้านบนนี้
Martin Ender

4

PHP, 168 ไบต์ [แตกโดยnneonneo ]

^((?![!?$]*[^!?$]))?(?:[^!]\2?+(?=(!*)(\\\3?+.(?!\3)))){4}(?(1)|Ha! No one will ever get this one...)|(?!(?1))\Q\1?!($!?)?\E\1?!($!?)?(?<!.{12})\Q(?=(?1))\E(?=(?1))!\?$

นี่คือการสาธิต regex

PS เกมนี้ยาก


2
การแข่งขัน\1?!($!?)?!(?=(?1))!? : ไม่ตรงกับ :IncrementalRegexTestingWorks
nneonneo

@nneonneo Ah คุณดีเกินไป;)
Unihedron

4

PCRE (1043 ไบต์) [แตก]

หลังจาก regexes ที่สร้างแบบสุ่มล้มเหลวฉัน (ความคิดนั้นดี แต่ฉันไม่สามารถสร้างอินสแตนซ์ปัญหาที่เพียงพอ) ได้ฉันจึงตัดสินใจสร้างมันขึ้นมาใหม่ ฉันพากย์ว่า "มีกฎมากมายที่จะสนอง"

^(?=^([^)(]*\(((?>[^)(]+)|(?1))*\)[^)(]*)*$)(?=^([^][]*\[((?>[^][]+)|(?3))*\][^][]*)*$)(?=^([^}{]*\{((?>[^}{]+)|(?5))*\}[^}{]*)*$)(?!^\(.*)(?!.*\(.{250}\).*)(?=.*\[.{250}\].*)(?=.*\{.{250}\}.*)(?=.*\[.\(\).\{\}.\].*)(?=.*\}...\[...\[...\]...\]...\{.*)(?=.*\(\(..\(\(.{68}\(\(\)\).{43}\)\)\)\).*)(?=.*\{..\{..\{.{65}\{\}\{\}.{33}\{\}.{107}\}\}.\}.*)(?=.*\[\{\{\[\(\{.*)(?=.*\[\[..\[.{6}\[.{6}\]\]...\]\].{6}\[..\]..\[\].*)(?=.*\]\]\}\}\}.\)\)\)\).{96}\]\}\}\]\]\]\}\]\]\].\)\]\].*)(?=.*\]..\).{6}\(.{7}\{.{5}\[...\[.{5}\{\[.*)(?=.*\[.{87}\{.{45}}{.{38}}.{27}\].*)(?=.*\(\{.{32}\(.{20}\{.{47}\].{43}\{\{.{25}\}\}.{18}\].{5}\}....\}.{5}\).*)(?=.*\{.{12}\(.{5}\(...\(...\{\[.\{\[\[.*)(?=.*\{\(.{21}\).{8}\}.{14}\[.{7}\]..\{.{5}\{\}....\}.*)(?=.*\(.\{.{49}\{.{16}\}.{25}\}.{66}\).*)(?!.*\(\{\(\(.*)(?!.*\(\)\[\].*)(?=(.*?\].*?\)){15,}.*)(?=(.*\[.*\(.*\{){5,9}.*)(?=.*\({3}.{105}\[{3}.{105}[^}{].*)(?=.*\(..\).{5}\(\)....\}\}\].\{\{\[.{22}\[.{35}\}\}\].*)(?!.*\(\(.{178}\])(?=(.*\[..\]){8,10}.*)(?!(.*\([^\(\)]{5}\(){4,}.*).{63}(.{6}).{130}\11.{51}$

และขยาย:

^
(?=^([^)(]*\(((?>[^)(]+)|(?1))*\)[^)(]*)*$)
(?=^([^][]*\[((?>[^][]+)|(?3))*\][^][]*)*$)
(?=^([^}{]*\{((?>[^}{]+)|(?5))*\}[^}{]*)*$)
(?!^\(.*)
(?!.*\(.{250}\).*)
(?=.*\[.{250}\].*)
(?=.*\{.{250}\}.*)
(?=.*\[.\(\).\{\}.\].*)
(?=.*\}...\[...\[...\]...\]...\{.*)
(?=.*\(\(..\(\(.{68}\(\(\)\).{43}\)\)\)\).*)
(?=.*\{..\{..\{.{65}\{\}\{\}.{33}\{\}.{107}\}\}.\}.*)
(?=.*\[\{\{\[\(\{.*)
(?=.*\[\[..\[.{6}\[.{6}\]\]...\]\].{6}\[..\]..\[\].*)
(?=.*\]\]\}\}\}.\)\)\)\).{96}\]\}\}\]\]\]\}\]\]\].\)\]\].*)
(?=.*\]..\).{6}\(.{7}\{.{5}\[...\[.{5}\{\[.*)
(?=.*\[.{87}\{.{45}}{.{38}}.{27}\].*)
(?=.*\(\{.{32}\(.{20}\{.{47}\].{43}\{\{.{25}\}\}.{18}\].{5}\}....\}.{5}\).*)
(?=.*\{.{12}\(.{5}\(...\(...\{\[.\{\[\[.*)
(?=.*\{\(.{21}\).{8}\}.{14}\[.{7}\]..\{.{5}\{\}....\}.*)
(?=.*\(.\{.{49}\{.{16}\}.{25}\}.{66}\).*)
(?!.*\(\{\(\(.*)
(?!.*\(\)\[\].*)
(?=(.*?\].*?\)){15,}.*)
(?=(.*\[.*\(.*\{){5,9}.*)
(?=.*\({3}.{105}\[{3}.{105}[^}{].*)
(?=.*\(..\).{5}\(\)....\}\}\].\{\{\[.{22}\[.{35}\}\}\].*)
(?!.*\(\(.{178}\])
(?=(.*\[..\]){8,10}.*)
(?!(.*\([^\(\)]{5}\(){4,}.*)
.{63}(.{6}).{130}\11.{51}
$

ทดสอบกับRegex101 - ขึ้นอยู่กับคอมพิวเตอร์ของคุณคุณอาจต้องใช้เวลาในการประมวลผลสูงสุด


regex นี้เข้ารหัสกลุ่มของกฎทั้งหมดที่เพียงแค่ต้องพอใจ วิธีการแก้ปัญหาใด ๆ ที่จะทำมันก็แค่หามัน

  • กฎหลักสามข้อแรกนั้นต้องการแยกจากกันทั้งหมด ([{ต้องการวงเล็บที่ต้องสมดุลกันภายในคีย์
  • นิพจน์ส่วนใหญ่ต้องการให้ "รูปร่าง" บางอย่างต้องอยู่ในหรือไม่อยู่ในคีย์ ตัวอย่างเช่นแถวที่ 8 ต้องการบางสิ่งบางอย่างของแบบฟอร์ม[.(.).]ต้องมีบางสิ่งบางอย่างของแบบฟอร์ม
  • (?=(.*\[.*\(.*\{){5,9}.*)ยกตัวอย่างเช่นกฎที่ต้องการนั้น[({สลับที่เกิดขึ้นอย่างน้อย 5 ครั้ง โปรดทราบว่าบรรทัดนี้โดยเฉพาะจะมีการบั๊กในหลาย ๆ ระดับโดยไม่ได้ตั้งใจ
  • การอ้างอิงกลับ\11ต้องการสตริงย่อยหกอักขระหนึ่งตัวเพื่อให้ปรากฏสองครั้งในตำแหน่งที่ต้องการ


2
การแข่งขัน[((({.[.[](){{}{].{.(({){(.[]()....}}].{{[[....).[..]()(}..[..]([....(([{((({).](){.{}{}{}....}[[()[}}][{{[({[[[.]]}()]].{}.]{[..]{.[]]}}}())))(())[(.].{[.{[[..[()].()}{{.[...[}{.]..)]...{.])))).}}..([......{.....[.]}[...}.{[.}...}})}.))).]}}]]]}]]].)]]..} : ไม่ตรง: WhatANastySetOfRulesYouHave.
nneonneo

ฉันเพิ่มเวลาดำเนินการเป็น 50 วินาที อย่างไรก็ตามถ้าคุณใช้ปริมาณที่ไม่โลภมาก(?=(.*\[.*\(.*\{){5,9}.*)คุณก็ไม่จำเป็นต้องเพิ่มเวลาดำเนินการสูงสุด (ผลลัพธ์เดียวกัน) - การแข่งขันจะดำเนินการทันที
nneonneo

@nneonneo Ahaha ใช่ฉันรู้ว่าหลังจากที่ฉันโพสต์ คุณสามารถโพสต์พูดลิงก์ pastebin สำหรับคีย์ของคุณได้ไหม? ดูเหมือนว่าความคิดเห็นของ SE จะเริ่มต้นขึ้นอีกครั้ง
Sp3000

@nneonneo ถ้าคุณมีจุดจำนวนมากในการแก้ปัญหาของคุณชัดเจนว่าฉันมีกฎไม่เพียงพอ : P
Sp3000

2
นี่คือลิงค์ regex101 พร้อมโซลูชันของฉันที่มองเห็นได้: regex101.com/r/gP2aX7/1
nneonneo

4

. NET รส (7563 ไบต์) [แตก]

แรงบันดาลใจจากแนวคิดของ @ user23013

^(?:(?=1(?<1>){5632})|(?=0)).(?:(?=1(?<1>){79361})|(?=0)).(?:(?=1(?<1>){188421})|(?=0)).(?:(?=1(?<1>){164870})|(?=0)).(?:(?=1(?<1>){63496})|(?=0)).(?:(?=1(?<1>){116233})|(?=0)).(?:(?=1(?<1>){112138})|(?=0)).(?:(?=1(?<1>){47447})|(?=0)).(?:(?=1(?<1>){85005})|(?=0)).(?:(?=1(?<1>){17936})|(?=0)).(?:(?=1(?<1>){108053})|(?=0)).(?:(?=1(?<1>){88599})|(?=0)).(?:(?=1(?<1>){91672})|(?=0)).(?:(?=1(?<1>){178716})|(?=0)).(?:(?=1(?<1>){199710})|(?=0)).(?:(?=1(?<1>){166661})|(?=0)).(?:(?=1(?<1>){190496})|(?=0)).(?:(?=1(?<1>){184494})|(?=0)).(?:(?=1(?<1>){199203})|(?=0)).(?:(?=1(?<1>){116778})|(?=0)).(?:(?=1(?<1>){78891})|(?=0)).(?:(?=1(?<1>){192556})|(?=0)).(?:(?=1(?<1>){24995})|(?=0)).(?:(?=1(?<1>){1071})|(?=0)).(?:(?=1(?<1>){192561})|(?=0)).(?:(?=1(?<1>){108082})|(?=0)).(?:(?=1(?<1>){1593})|(?=0)).(?:(?=1(?<1>){26967})|(?=0)).(?:(?=1(?<1>){197983})|(?=0)).(?:(?=1(?<1>){97034})|(?=0)).(?:(?=1(?<1>){86965})|(?=0)).(?:(?=1(?<1>){60480})|(?=0)).(?:(?=1(?<1>){149571})|(?=0)).(?:(?=1(?<1>){100932})|(?=0)).(?:(?=1(?<1>){40519})|(?=0)).(?:(?=1(?<1>){173492})|(?=0)).(?:(?=1(?<1>){80972})|(?=0)).(?:(?=1(?<1>){115790})|(?=0)).(?:(?=1(?<1>){29265})|(?=0)).(?:(?=1(?<1>){91730})|(?=0)).(?:(?=1(?<1>){173140})|(?=0)).(?:(?=1(?<1>){52821})|(?=0)).(?:(?=1(?<1>){176726})|(?=0)).(?:(?=1(?<1>){170211})|(?=0)).(?:(?=1(?<1>){150105})|(?=0)).(?:(?=1(?<1>){23131})|(?=0)).(?:(?=1(?<1>){81503})|(?=0)).(?:(?=1(?<1>){77412})|(?=0)).(?:(?=1(?<1>){106086})|(?=0)).(?:(?=1(?<1>){4284})|(?=0)).(?:(?=1(?<1>){142610})|(?=0)).(?:(?=1(?<1>){167534})|(?=0)).(?:(?=1(?<1>){190577})|(?=0)).(?:(?=1(?<1>){147731})|(?=0)).(?:(?=1(?<1>){133748})|(?=0)).(?:(?=1(?<1>){194750})|(?=0)).(?:(?=1(?<1>){49257})|(?=0)).(?:(?=1(?<1>){49274})|(?=0)).(?:(?=1(?<1>){120767})|(?=0)).(?:(?=1(?<1>){172668})|(?=0)).(?:(?=1(?<1>){24703})|(?=0)).(?:(?=1(?<1>){108160})|(?=0)).(?:(?=1(?<1>){60546})|(?=0)).(?:(?=1(?<1>){56963})|(?=0)).(?:(?=1(?<1>){30340})|(?=0)).(?:(?=1(?<1>){95368})|(?=0)).(?:(?=1(?<1>){59530})|(?=0)).(?:(?=1(?<1>){53388})|(?=0)).(?:(?=1(?<1>){14477})|(?=0)).(?:(?=1(?<1>){28302})|(?=0)).(?:(?=1(?<1>){182927})|(?=0)).(?:(?=1(?<1>){59024})|(?=0)).(?:(?=1(?<1>){146200})|(?=0)).(?:(?=1(?<1>){153746})|(?=0)).(?:(?=1(?<1>){39571})|(?=0)).(?:(?=1(?<1>){134293})|(?=0)).(?:(?=1(?<1>){158362})|(?=0)).(?:(?=1(?<1>){170139})|(?=0)).(?:(?=1(?<1>){182940})|(?=0)).(?:(?=1(?<1>){7327})|(?=0)).(?:(?=1(?<1>){143525})|(?=0)).(?:(?=1(?<1>){119464})|(?=0)).(?:(?=1(?<1>){82090})|(?=0)).(?:(?=1(?<1>){170667})|(?=0)).(?:(?=1(?<1>){49522})|(?=0)).(?:(?=1(?<1>){69806})|(?=0)).(?:(?=1(?<1>){15535})|(?=0)).(?:(?=1(?<1>){16049})|(?=0)).(?:(?=1(?<1>){163358})|(?=0)).(?:(?=1(?<1>){181876})|(?=0)).(?:(?=1(?<1>){58044})|(?=0)).(?:(?=1(?<1>){16062})|(?=0)).(?:(?=1(?<1>){39616})|(?=0)).(?:(?=1(?<1>){31425})|(?=0)).(?:(?=1(?<1>){94404})|(?=0)).(?:(?=1(?<1>){86848})|(?=0)).(?:(?=1(?<1>){16589})|(?=0)).(?:(?=1(?<1>){195280})|(?=0)).(?:(?=1(?<1>){199377})|(?=0)).(?:(?=1(?<1>){43731})|(?=0)).(?:(?=1(?<1>){67534})|(?=0)).(?:(?=1(?<1>){106198})|(?=0)).(?:(?=1(?<1>){54999})|(?=0)).(?:(?=1(?<1>){52952})|(?=0)).(?:(?=1(?<1>){125828})|(?=0)).(?:(?=1(?<1>){169691})|(?=0)).(?:(?=1(?<1>){184542})|(?=0)).(?:(?=1(?<1>){177888})|(?=0)).(?:(?=1(?<1>){43233})|(?=0)).(?:(?=1(?<1>){127203})|(?=0)).(?:(?=1(?<1>){116518})|(?=0)).(?:(?=1(?<1>){117990})|(?=0)).(?:(?=1(?<1>){67815})|(?=0)).(?:(?=1(?<1>){62202})|(?=0)).(?:(?=1(?<1>){165611})|(?=0)).(?:(?=1(?<1>){197356})|(?=0)).(?:(?=1(?<1>){29933})|(?=0)).(?:(?=1(?<1>){90862})|(?=0)).(?:(?=1(?<1>){90863})|(?=0)).(?:(?=1(?<1>){149232})|(?=0)).(?:(?=1(?<1>){61681})|(?=0)).(?:(?=1(?<1>){137970})|(?=0)).(?:(?=1(?<1>){90357})|(?=0)).(?:(?=1(?<1>){47351})|(?=0)).(?:(?=1(?<1>){172509})|(?=0)).(?:(?=1(?<1>){78293})|(?=0)).(?:(?=1(?<1>){66303})|(?=0)).(?:(?=1(?<1>){66262})|(?=0)).(?:(?=1(?<1>){158471})|(?=0)).(?:(?=1(?<1>){5676})|(?=0)).(?:(?=1(?<1>){127242})|(?=0)).(?:(?=1(?<1>){51979})|(?=0)).(?:(?=1(?<1>){162060})|(?=0)).(?:(?=1(?<1>){27405})|(?=0)).(?:(?=1(?<1>){153874})|(?=0)).(?:(?=1(?<1>){150291})|(?=0)).(?:(?=1(?<1>){1814})|(?=0)).(?:(?=1(?<1>){193815})|(?=0)).(?:(?=1(?<1>){82200})|(?=0)).(?:(?=1(?<1>){59161})|(?=0)).(?:(?=1(?<1>){78620})|(?=0)).(?:(?=1(?<1>){123678})|(?=0)).(?:(?=1(?<1>){147232})|(?=0)).(?:(?=1(?<1>){71457})|(?=0)).(?:(?=1(?<1>){118562})|(?=0)).(?:(?=1(?<1>){129830})|(?=0)).(?:(?=1(?<1>){161841})|(?=0)).(?:(?=1(?<1>){60295})|(?=0)).(?:(?=1(?<1>){165426})|(?=0)).(?:(?=1(?<1>){107485})|(?=0)).(?:(?=1(?<1>){171828})|(?=0)).(?:(?=1(?<1>){166200})|(?=0)).(?:(?=1(?<1>){35124})|(?=0)).(?:(?=1(?<1>){160573})|(?=0)).(?:(?=1(?<1>){7486})|(?=0)).(?:(?=1(?<1>){169279})|(?=0)).(?:(?=1(?<1>){151360})|(?=0)).(?:(?=1(?<1>){6978})|(?=0)).(?:(?=1(?<1>){136003})|(?=0)).(?:(?=1(?<1>){56133})|(?=0)).(?:(?=1(?<1>){8520})|(?=0)).(?:(?=1(?<1>){87436})|(?=0)).(?:(?=1(?<1>){57162})|(?=0)).(?:(?=1(?<1>){197965})|(?=0)).(?:(?=1(?<1>){145230})|(?=0)).(?:(?=1(?<1>){95459})|(?=0)).(?:(?=1(?<1>){180564})|(?=0)).(?:(?=1(?<1>){157850})|(?=0)).(?:(?=1(?<1>){109399})|(?=0)).(?:(?=1(?<1>){191832})|(?=0)).(?:(?=1(?<1>){110223})|(?=0)).(?:(?=1(?<1>){75102})|(?=0)).(?:(?=1(?<1>){140639})|(?=0)).(?:(?=1(?<1>){49504})|(?=0)).(?:(?=1(?<1>){197987})|(?=0)).(?:(?=1(?<1>){52744})|(?=0)).(?:(?=1(?<1>){96615})|(?=0)).(?:(?=1(?<1>){13672})|(?=0)).(?:(?=1(?<1>){73068})|(?=0)).(?:(?=1(?<1>){104814})|(?=0)).(?:(?=1(?<1>){66929})|(?=0)).(?:(?=1(?<1>){23410})|(?=0)).(?:(?=1(?<1>){122686})|(?=0)).(?:(?=1(?<1>){44918})|(?=0)).(?:(?=1(?<1>){101752})|(?=0)).(?:(?=1(?<1>){3961})|(?=0)).(?:(?=1(?<1>){31807})|(?=0)).(?:(?=1(?<1>){54933})|(?=0)).(?:(?=1(?<1>){140096})|(?=0)).(?:(?=1(?<1>){49026})|(?=0)).(?:(?=1(?<1>){5507})|(?=0)).(?:(?=1(?<1>){96132})|(?=0)).(?:(?=1(?<1>){167303})|(?=0)).(?:(?=1(?<1>){57877})|(?=0)).(?:(?=1(?<1>){88461})|(?=0)).(?:(?=1(?<1>){111853})|(?=0)).(?:(?=1(?<1>){126531})|(?=0)).(?:(?=1(?<1>){110998})|(?=0)).(?:(?=1(?<1>){7575})|(?=0)).(?:(?=1(?<1>){7064})|(?=0)).(?:(?=1(?<1>){59289})|(?=0)).(?:(?=1(?<1>){122203})|(?=0)).(?:(?=1(?<1>){175005})|(?=0)).(?:(?=1(?<1>){28025})|(?=0)).(?:(?=1(?<1>){49057})|(?=0)).(?:(?=1(?<1>){6373})|(?=0)).(?:(?=1(?<1>){50084})|(?=0)).(?:(?=1(?<1>){70565})|(?=0)).(?:(?=1(?<1>){75178})|(?=0)).(?:(?=1(?<1>){142763})|(?=0)).(?:(?=1(?<1>){56237})|(?=0)).(?:(?=1(?<1>){32176})|(?=0)).(?:(?=1(?<1>){113073})|(?=0)).(?:(?=1(?<1>){149939})|(?=0)).(?:(?=1(?<1>){16308})|(?=0)).(?:(?=1(?<1>){12725})|(?=0)).(?:(?=1(?<1>){75190})|(?=0)).(?:(?=1(?<1>){54711})|(?=0)).(?:(?=1(?<1>){180664})|(?=0)).(?:(?=1(?<1>){68540})|(?=0)).(?:(?=1(?<1>){93117})|(?=0)).(?:(?=1(?<1>){161781})|(?=0)).(?:(?=1(?<1>){15808})|(?=0)).(?:(?=1(?<1>){130814})|(?=0)).(?:(?=1(?<1>){162379})|(?=0)).(?:(?=1(?<1>){80836})|(?=0)).(?:(?=1(?<1>){149943})|(?=0)).(?:(?=1(?<1>){16841})|(?=0)).(?:(?=1(?<1>){149452})|(?=0)).(?:(?=1(?<1>){182733})|(?=0)).(?:(?=1(?<1>){56270})|(?=0)).(?:(?=1(?<1>){163792})|(?=0)).(?:(?=1(?<1>){34770})|(?=0)).(?:(?=1(?<1>){101843})|(?=0)).(?:(?=1(?<1>){199124})|(?=0)).(?:(?=1(?<1>){129493})|(?=0)).(?:(?=1(?<1>){43990})|(?=0)).(?:(?=1(?<1>){113112})|(?=0)).(?:(?=1(?<1>){71129})|(?=0)).(?:(?=1(?<1>){61402})|(?=0)).(?:(?=1(?<1>){145852})|(?=0)).(?:(?=1(?<1>){98781})|(?=0)).(?:(?=1(?<1>){141790})|(?=0)).(?:(?=1(?<1>){163235})|(?=0)).(?:(?=1(?<1>){110566})|(?=0)).(?:(?=1(?<1>){117737})|(?=0)).(?:(?=1(?<1>){67050})|(?=0)).(?:(?=1(?<1>){68075})|(?=0)).(?:(?=1(?<1>){124047})|(?=0)).(?:(?=1(?<1>){181587})|(?=0)).(?:(?=1(?<1>){125429})|(?=0)).(?:(?=1(?<1>){112118})|(?=0)).(?:(?=1(?<1>){196088})|(?=0)).(?:(?=1(?<1>){25082})|(?=0)).(?:(?=1(?<1>){178684})|(?=0)).(?:(?=1(?<1>){13822})|(?=0)).(?<-1>){10094986}(?(1)(?!))$

เรามีปัญหาที่ไม่สมบูรณ์พอเพียง! นี่คือรุ่นขยาย:

^
(?:(?=1(?<1>){5632})|(?=0)).
(?:(?=1(?<1>){79361})|(?=0)).
(?:(?=1(?<1>){188421})|(?=0)).
(?:(?=1(?<1>){164870})|(?=0)).
(?:(?=1(?<1>){63496})|(?=0)).
(?:(?=1(?<1>){116233})|(?=0)).
(?:(?=1(?<1>){112138})|(?=0)).
(?:(?=1(?<1>){47447})|(?=0)).
(?:(?=1(?<1>){85005})|(?=0)).
(?:(?=1(?<1>){17936})|(?=0)).
(?:(?=1(?<1>){108053})|(?=0)).
(?:(?=1(?<1>){88599})|(?=0)).
(?:(?=1(?<1>){91672})|(?=0)).
(?:(?=1(?<1>){178716})|(?=0)).
(?:(?=1(?<1>){199710})|(?=0)).
(?:(?=1(?<1>){166661})|(?=0)).
(?:(?=1(?<1>){190496})|(?=0)).
(?:(?=1(?<1>){184494})|(?=0)).
(?:(?=1(?<1>){199203})|(?=0)).
(?:(?=1(?<1>){116778})|(?=0)).
(?:(?=1(?<1>){78891})|(?=0)).
(?:(?=1(?<1>){192556})|(?=0)).
(?:(?=1(?<1>){24995})|(?=0)).
(?:(?=1(?<1>){1071})|(?=0)).
(?:(?=1(?<1>){192561})|(?=0)).
(?:(?=1(?<1>){108082})|(?=0)).
(?:(?=1(?<1>){1593})|(?=0)).
(?:(?=1(?<1>){26967})|(?=0)).
(?:(?=1(?<1>){197983})|(?=0)).
(?:(?=1(?<1>){97034})|(?=0)).
(?:(?=1(?<1>){86965})|(?=0)).
(?:(?=1(?<1>){60480})|(?=0)).
(?:(?=1(?<1>){149571})|(?=0)).
(?:(?=1(?<1>){100932})|(?=0)).
(?:(?=1(?<1>){40519})|(?=0)).
(?:(?=1(?<1>){173492})|(?=0)).
(?:(?=1(?<1>){80972})|(?=0)).
(?:(?=1(?<1>){115790})|(?=0)).
(?:(?=1(?<1>){29265})|(?=0)).
(?:(?=1(?<1>){91730})|(?=0)).
(?:(?=1(?<1>){173140})|(?=0)).
(?:(?=1(?<1>){52821})|(?=0)).
(?:(?=1(?<1>){176726})|(?=0)).
(?:(?=1(?<1>){170211})|(?=0)).
(?:(?=1(?<1>){150105})|(?=0)).
(?:(?=1(?<1>){23131})|(?=0)).
(?:(?=1(?<1>){81503})|(?=0)).
(?:(?=1(?<1>){77412})|(?=0)).
(?:(?=1(?<1>){106086})|(?=0)).
(?:(?=1(?<1>){4284})|(?=0)).
(?:(?=1(?<1>){142610})|(?=0)).
(?:(?=1(?<1>){167534})|(?=0)).
(?:(?=1(?<1>){190577})|(?=0)).
(?:(?=1(?<1>){147731})|(?=0)).
(?:(?=1(?<1>){133748})|(?=0)).
(?:(?=1(?<1>){194750})|(?=0)).
(?:(?=1(?<1>){49257})|(?=0)).
(?:(?=1(?<1>){49274})|(?=0)).
(?:(?=1(?<1>){120767})|(?=0)).
(?:(?=1(?<1>){172668})|(?=0)).
(?:(?=1(?<1>){24703})|(?=0)).
(?:(?=1(?<1>){108160})|(?=0)).
(?:(?=1(?<1>){60546})|(?=0)).
(?:(?=1(?<1>){56963})|(?=0)).
(?:(?=1(?<1>){30340})|(?=0)).
(?:(?=1(?<1>){95368})|(?=0)).
(?:(?=1(?<1>){59530})|(?=0)).
(?:(?=1(?<1>){53388})|(?=0)).
(?:(?=1(?<1>){14477})|(?=0)).
(?:(?=1(?<1>){28302})|(?=0)).
(?:(?=1(?<1>){182927})|(?=0)).
(?:(?=1(?<1>){59024})|(?=0)).
(?:(?=1(?<1>){146200})|(?=0)).
(?:(?=1(?<1>){153746})|(?=0)).
(?:(?=1(?<1>){39571})|(?=0)).
(?:(?=1(?<1>){134293})|(?=0)).
(?:(?=1(?<1>){158362})|(?=0)).
(?:(?=1(?<1>){170139})|(?=0)).
(?:(?=1(?<1>){182940})|(?=0)).
(?:(?=1(?<1>){7327})|(?=0)).
(?:(?=1(?<1>){143525})|(?=0)).
(?:(?=1(?<1>){119464})|(?=0)).
(?:(?=1(?<1>){82090})|(?=0)).
(?:(?=1(?<1>){170667})|(?=0)).
(?:(?=1(?<1>){49522})|(?=0)).
(?:(?=1(?<1>){69806})|(?=0)).
(?:(?=1(?<1>){15535})|(?=0)).
(?:(?=1(?<1>){16049})|(?=0)).
(?:(?=1(?<1>){163358})|(?=0)).
(?:(?=1(?<1>){181876})|(?=0)).
(?:(?=1(?<1>){58044})|(?=0)).
(?:(?=1(?<1>){16062})|(?=0)).
(?:(?=1(?<1>){39616})|(?=0)).
(?:(?=1(?<1>){31425})|(?=0)).
(?:(?=1(?<1>){94404})|(?=0)).
(?:(?=1(?<1>){86848})|(?=0)).
(?:(?=1(?<1>){16589})|(?=0)).
(?:(?=1(?<1>){195280})|(?=0)).
(?:(?=1(?<1>){199377})|(?=0)).
(?:(?=1(?<1>){43731})|(?=0)).
(?:(?=1(?<1>){67534})|(?=0)).
(?:(?=1(?<1>){106198})|(?=0)).
(?:(?=1(?<1>){54999})|(?=0)).
(?:(?=1(?<1>){52952})|(?=0)).
(?:(?=1(?<1>){125828})|(?=0)).
(?:(?=1(?<1>){169691})|(?=0)).
(?:(?=1(?<1>){184542})|(?=0)).
(?:(?=1(?<1>){177888})|(?=0)).
(?:(?=1(?<1>){43233})|(?=0)).
(?:(?=1(?<1>){127203})|(?=0)).
(?:(?=1(?<1>){116518})|(?=0)).
(?:(?=1(?<1>){117990})|(?=0)).
(?:(?=1(?<1>){67815})|(?=0)).
(?:(?=1(?<1>){62202})|(?=0)).
(?:(?=1(?<1>){165611})|(?=0)).
(?:(?=1(?<1>){197356})|(?=0)).
(?:(?=1(?<1>){29933})|(?=0)).
(?:(?=1(?<1>){90862})|(?=0)).
(?:(?=1(?<1>){90863})|(?=0)).
(?:(?=1(?<1>){149232})|(?=0)).
(?:(?=1(?<1>){61681})|(?=0)).
(?:(?=1(?<1>){137970})|(?=0)).
(?:(?=1(?<1>){90357})|(?=0)).
(?:(?=1(?<1>){47351})|(?=0)).
(?:(?=1(?<1>){172509})|(?=0)).
(?:(?=1(?<1>){78293})|(?=0)).
(?:(?=1(?<1>){66303})|(?=0)).
(?:(?=1(?<1>){66262})|(?=0)).
(?:(?=1(?<1>){158471})|(?=0)).
(?:(?=1(?<1>){5676})|(?=0)).
(?:(?=1(?<1>){127242})|(?=0)).
(?:(?=1(?<1>){51979})|(?=0)).
(?:(?=1(?<1>){162060})|(?=0)).
(?:(?=1(?<1>){27405})|(?=0)).
(?:(?=1(?<1>){153874})|(?=0)).
(?:(?=1(?<1>){150291})|(?=0)).
(?:(?=1(?<1>){1814})|(?=0)).
(?:(?=1(?<1>){193815})|(?=0)).
(?:(?=1(?<1>){82200})|(?=0)).
(?:(?=1(?<1>){59161})|(?=0)).
(?:(?=1(?<1>){78620})|(?=0)).
(?:(?=1(?<1>){123678})|(?=0)).
(?:(?=1(?<1>){147232})|(?=0)).
(?:(?=1(?<1>){71457})|(?=0)).
(?:(?=1(?<1>){118562})|(?=0)).
(?:(?=1(?<1>){129830})|(?=0)).
(?:(?=1(?<1>){161841})|(?=0)).
(?:(?=1(?<1>){60295})|(?=0)).
(?:(?=1(?<1>){165426})|(?=0)).
(?:(?=1(?<1>){107485})|(?=0)).
(?:(?=1(?<1>){171828})|(?=0)).
(?:(?=1(?<1>){166200})|(?=0)).
(?:(?=1(?<1>){35124})|(?=0)).
(?:(?=1(?<1>){160573})|(?=0)).
(?:(?=1(?<1>){7486})|(?=0)).
(?:(?=1(?<1>){169279})|(?=0)).
(?:(?=1(?<1>){151360})|(?=0)).
(?:(?=1(?<1>){6978})|(?=0)).
(?:(?=1(?<1>){136003})|(?=0)).
(?:(?=1(?<1>){56133})|(?=0)).
(?:(?=1(?<1>){8520})|(?=0)).
(?:(?=1(?<1>){87436})|(?=0)).
(?:(?=1(?<1>){57162})|(?=0)).
(?:(?=1(?<1>){197965})|(?=0)).
(?:(?=1(?<1>){145230})|(?=0)).
(?:(?=1(?<1>){95459})|(?=0)).
(?:(?=1(?<1>){180564})|(?=0)).
(?:(?=1(?<1>){157850})|(?=0)).
(?:(?=1(?<1>){109399})|(?=0)).
(?:(?=1(?<1>){191832})|(?=0)).
(?:(?=1(?<1>){110223})|(?=0)).
(?:(?=1(?<1>){75102})|(?=0)).
(?:(?=1(?<1>){140639})|(?=0)).
(?:(?=1(?<1>){49504})|(?=0)).
(?:(?=1(?<1>){197987})|(?=0)).
(?:(?=1(?<1>){52744})|(?=0)).
(?:(?=1(?<1>){96615})|(?=0)).
(?:(?=1(?<1>){13672})|(?=0)).
(?:(?=1(?<1>){73068})|(?=0)).
(?:(?=1(?<1>){104814})|(?=0)).
(?:(?=1(?<1>){66929})|(?=0)).
(?:(?=1(?<1>){23410})|(?=0)).
(?:(?=1(?<1>){122686})|(?=0)).
(?:(?=1(?<1>){44918})|(?=0)).
(?:(?=1(?<1>){101752})|(?=0)).
(?:(?=1(?<1>){3961})|(?=0)).
(?:(?=1(?<1>){31807})|(?=0)).
(?:(?=1(?<1>){54933})|(?=0)).
(?:(?=1(?<1>){140096})|(?=0)).
(?:(?=1(?<1>){49026})|(?=0)).
(?:(?=1(?<1>){5507})|(?=0)).
(?:(?=1(?<1>){96132})|(?=0)).
(?:(?=1(?<1>){167303})|(?=0)).
(?:(?=1(?<1>){57877})|(?=0)).
(?:(?=1(?<1>){88461})|(?=0)).
(?:(?=1(?<1>){111853})|(?=0)).
(?:(?=1(?<1>){126531})|(?=0)).
(?:(?=1(?<1>){110998})|(?=0)).
(?:(?=1(?<1>){7575})|(?=0)).
(?:(?=1(?<1>){7064})|(?=0)).
(?:(?=1(?<1>){59289})|(?=0)).
(?:(?=1(?<1>){122203})|(?=0)).
(?:(?=1(?<1>){175005})|(?=0)).
(?:(?=1(?<1>){28025})|(?=0)).
(?:(?=1(?<1>){49057})|(?=0)).
(?:(?=1(?<1>){6373})|(?=0)).
(?:(?=1(?<1>){50084})|(?=0)).
(?:(?=1(?<1>){70565})|(?=0)).
(?:(?=1(?<1>){75178})|(?=0)).
(?:(?=1(?<1>){142763})|(?=0)).
(?:(?=1(?<1>){56237})|(?=0)).
(?:(?=1(?<1>){32176})|(?=0)).
(?:(?=1(?<1>){113073})|(?=0)).
(?:(?=1(?<1>){149939})|(?=0)).
(?:(?=1(?<1>){16308})|(?=0)).
(?:(?=1(?<1>){12725})|(?=0)).
(?:(?=1(?<1>){75190})|(?=0)).
(?:(?=1(?<1>){54711})|(?=0)).
(?:(?=1(?<1>){180664})|(?=0)).
(?:(?=1(?<1>){68540})|(?=0)).
(?:(?=1(?<1>){93117})|(?=0)).
(?:(?=1(?<1>){161781})|(?=0)).
(?:(?=1(?<1>){15808})|(?=0)).
(?:(?=1(?<1>){130814})|(?=0)).
(?:(?=1(?<1>){162379})|(?=0)).
(?:(?=1(?<1>){80836})|(?=0)).
(?:(?=1(?<1>){149943})|(?=0)).
(?:(?=1(?<1>){16841})|(?=0)).
(?:(?=1(?<1>){149452})|(?=0)).
(?:(?=1(?<1>){182733})|(?=0)).
(?:(?=1(?<1>){56270})|(?=0)).
(?:(?=1(?<1>){163792})|(?=0)).
(?:(?=1(?<1>){34770})|(?=0)).
(?:(?=1(?<1>){101843})|(?=0)).
(?:(?=1(?<1>){199124})|(?=0)).
(?:(?=1(?<1>){129493})|(?=0)).
(?:(?=1(?<1>){43990})|(?=0)).
(?:(?=1(?<1>){113112})|(?=0)).
(?:(?=1(?<1>){71129})|(?=0)).
(?:(?=1(?<1>){61402})|(?=0)).
(?:(?=1(?<1>){145852})|(?=0)).
(?:(?=1(?<1>){98781})|(?=0)).
(?:(?=1(?<1>){141790})|(?=0)).
(?:(?=1(?<1>){163235})|(?=0)).
(?:(?=1(?<1>){110566})|(?=0)).
(?:(?=1(?<1>){117737})|(?=0)).
(?:(?=1(?<1>){67050})|(?=0)).
(?:(?=1(?<1>){68075})|(?=0)).
(?:(?=1(?<1>){124047})|(?=0)).
(?:(?=1(?<1>){181587})|(?=0)).
(?:(?=1(?<1>){125429})|(?=0)).
(?:(?=1(?<1>){112118})|(?=0)).
(?:(?=1(?<1>){196088})|(?=0)).
(?:(?=1(?<1>){25082})|(?=0)).
(?:(?=1(?<1>){178684})|(?=0)).
(?:(?=1(?<1>){13822})|(?=0)).
(?<-1>){10094986}
(?(1)(?!))
$

แต่ละ(?:(?=1(?<1>){n})|(?=0)).แถวจะส่งnสตริงว่างไปยังกลุ่ม1หากพบตัวเลข 1 และไม่ทำอะไรเลยถ้า0พบ (?<-1>){10094986}(?(1)(?!))จากนั้นตรวจสอบว่าจำนวนทั้งหมดของสตริงว่างในกลุ่ม 1 ในตอนท้ายคือ 10094986 ดังนั้นเป้าหมายของเราคือการหาเซตย่อยของตัวเลขที่รวมเป็น 10094986 นี่เป็นปัญหาผลรวมเซตย่อยซึ่งเป็นกรณีพิเศษของ ปัญหาเครื่องหลังและเสร็จสมบูรณ์ NP

ทดสอบกับRegex Hero (Regex Storm หมดเวลาสำหรับเกมนี้)


2
จับคู่: 01111111111111111111111011001111111111011111111111111111111101111111111 11111111111111111111011111111000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000 (ลบช่องว่างเหล่านั้น) ไม่ตรง: KnapsackAlgorithm . การติดตั้ง Silverlight บนเครื่อง Ubuntu ของฉันไม่ใช่เรื่องง่าย แต่นี่ใช้ได้กับผู้ทดสอบคนอื่น ๆ
jimmy23013

@ user23013 อ่าฉันลืมไปแล้วว่าต้องใช้ Silverlight แต่อย่างตรงไปตรงมาไม่ว่าฉันจะโชคไม่ดีหรือมีวิธีแก้ปัญหามากมายเพราะนั่นเป็นโซ่ 0 อันสุดเหวี่ยงของ 0s ในตอนท้าย จากนั้นอีกครั้งฉันจะต้องผ่านอุปสรรค int แบบ 32 บิตก่อนฉันคิดว่าฉันมีความคิด ...
Sp3000

ฉันมีจำนวนเต็มมากกว่า 700 บิตในคำตอบล่าสุดของฉัน!
jimmy23013

@ user23013 และคุณบอกให้เราแยกตัวประกอบหรือไม่ ดังนั้นหมายความว่า! : P
Sp3000

2
จำนวนเต็มตัวคูณคือ 1536 บิต
jimmy23013

4

. NET รส (52506 ไบต์)

ชุดย่อย, ฉบับดีลักซ์

regex นี่ , รุ่นที่ขยายตัวที่นี่ , การทดสอบเกี่ยวกับRegExLibและRegex ฮีโร่


การจับคู่: 1000010001000000001101011000001101110101001010011101000101010011011101000001010101001000010010000111011101100101001101001111000111010101100000101000101010110001010101001100100001110010001101010101100010110011000000110110000000011111101000001000011111100010

ไม่ตรงกัน: Huzzah for NP-complete regexes

Regex นี้เป็นหนึ่งในปัญหารวมย่อยของยักษ์และใช้ 16 กลุ่มเพื่อเก็บข้อมูล แต่ละรายการ1ในสตริงแสดงถึงหมายเลข 10 10 บิตซึ่งรวมกันเป็นจำนวนเต็ม 160 บิต ไม่กี่บรรทัดสุดท้ายของ regex มีค่าในกลุ่มเพื่อให้กลุ่มที่ 2-16 ไปถึง 1,023 (เช่น 1 * 1023 + 1024 กลายเป็น 2 * 1023 + 1) มิฉะนั้นเราจะแก้เซตย่อยพร้อมกัน 16 ชุดเท่านั้น ปัญหารวมเป็นนอกคอกหนึ่งใหญ่


ขอแสดงความยินดีกับการทำผ่าน 72 ชั่วโมง! ตอนนี้คุณสามารถล็อคคำตอบของคุณจากการแคร็กโดยเปิดเผยกุญแจ จนกว่าคุณจะทำคำตอบยังคงสามารถถอดรหัสได้
Martin Ender

4

.NET รสชาติ 53,884 ไบต์ [ปลอดภัย]

สร้างโดย GnuPG!และสกัดโดย pgpdump เป็น 1536 บิตเนื่องจากรุ่นที่ยาวกว่าล้มเหลวในเครื่องมือทดสอบออนไลน์

regex อยู่ที่นี่: http://pastebin.com/PkJnj9ME

ทดสอบแล้ว RegExLib (โดยไม่ได้เลือกตัวเลือก) ฉันหวังว่าฉันจะไม่สร้างปัญหาให้กับพวกเขามากเกินไป

คุณอาจต้องการที่จะแตก เวอร์ชั่นง่าย ๆๆ เสียก่อน มันเหมือนกับปุ่มนี้ยกเว้นว่าจะมีคีย์ที่สั้นกว่ามาก

คุณอาจต้องการหมายเลขนี้:

1877387013349538768090205114842510626651131723107399383794998450806739516994144298310401108806926034240658300213548103711527384569076779151468208082508190882390076337427064709559437854062111632001332811449146722382069400055588711790985185172254011431483115758796920145490044311800185920322455262251745973830227470485279892907738203417793535991544580378895041359393212505410554875960037474608732567216291143821804979045946285675144158233812053215704503132829164251

ที่สำคัญ

การจับคู่:

Ëòčĵċsïݲ¤ėGâĥÓŧÿÃiTüū&0EĚĵŒR@bĵ¤¿Ĉ=ķüÙļÞďYaŃīŲĢŪÕďųïyĘŊŢĝĪĘŠćĢmtŠîĽþĽłŶāĨĩģTő!ĺw=aŧïųţĨíœą¸Ëč!,ĵţ¨ŌąŜ7ć<ůū¹"VCæ>õêqKËĖ¡ôÕÂúëdčÜÇĺřGĝ¢ÈòTdĩŤŭi§aćŎŭųä«´3ĚΦîŇĬÒÕ¥ńü½å±ì³Jõ«D>ìYũʼn5öķ@ŪĠďàÂIĭųė!

ที่ไม่ใช่การแข่งขัน:

1111111111111111

ตัวเลขสำคัญ:

1332079940234179614521970444786413763737753518438170921866494487346327879385305027126769158207767221820861337268140670862294914465261588406119592761408774455338383491427898155074772832852850476306153369461364785463871635843192956321
1409365126404871907363160248446313781336249368768980464167188493095028723639124224991540391841197901143131758645183823514744033123070116823118973220350307542767897614254042472660258176592286316247065295064507580468562028846326382331

คำอธิบายอยู่ในรุ่นง่าย

สคริปต์ตัวสร้าง (เป็น CJam)

'~),'!i>"+.()?*\\[]{|}^$/,^-:#"-
'ǝ,'¡i>173c-+289<:T;

95:F;
95:G;

"
^
(?=["T",]{"FG+)`"}$)
(?=.{"F`"},)
(?!.*,.*,)
(?:
    (?(X)
        (?<-X>)
        (?(L)(?<-L>)(?<l>)|){16}
    |
        (?:
            "
            [T289,]z
            {[~17md["(?<l>){"\'}]["(?<L>){"@'}]]}%'|*
            "
        )
        (?<X>)
    )
    (?=.*,
        (?:
            (?(Y)
                (?<-Y>)
                (?(R)(?<-R>)(?<r>)|){16}
            |
                (?:
                    "
                    [T289,]z
                    {[~17md["(?<r>){"\'}]["(?<R>){"@'}]]}%'|*
                    "
                )
                (?<Y>)
            )

            (?(l)
                (?<-l>)(?<x>)
                (?(r)(?<-r>)(?<y>)(?<v>)|){16}
                (?(y)(?<-y>)(?<r>)|){16}
            |){16}
            (?(x)(?<-x>)(?<l>)|){16}

            (?(p)(?<-p>)(?<s>)(?<z>)|){"F2*(`"}
            (?(z)(?<-z>)(?<p>)|){"F2*(`"}
            (?(q)(?<-q>)(?<s>)(?<z>)|){"G2*(`"}
            (?(z)(?<-z>)(?<q>)|){"G2*(`"}
            "
            "
            (?(s)
                (?<-s>)
            "FG+(2**
            "
                (?(v)(?<-v>)(?<a"FG+(2*`">)|){256}
            "
            ["
            |
                (?(v)(?<-v>)(?<a"">)|){256}
            )
            "]aFG+(2*,W%m*{~\~@`\}/
            "
            (?(r)(?<-r>)|){16}
            (?<q>)
        ){"G2*`"}
        (?<-q>){"G2*`"}
    )
    (?(l)(?<-l>)|){16}
    (?<p>)
){"F2*`"},

"
[
l~17bW%_,FG+2*\- 0a*+
FG+2*,
]z
{
~:A`:B;:C;
"
(?<-a"B">){"C`"}
(?(a"B")(?<-a"B">){17}(?<a"A)`">)|){4100}
(?(a"B")(?!)|)"
}/

]:+N9c+-

ข้อมูลที่ป้อนควรเป็นตัวเลขด้านบน

หลังจากเสร็จสิ้นโปรแกรมนี้สามารถสร้างได้โดย:

'~),'!i>"+.()?*\\[]{|}^$/,^-:#"-
'ǝ,'¡i>173c-+289<:T;

95:F;
95:G;

{
r~289bW%_,FG:F;\- 0a*+
{T=}%
}2*',\

อินพุตควรเป็นจำนวนเต็มสองจำนวน


เลวมาก. RegExLib หยุดทำงาน ฉันคิดว่าผู้คนควรใช้ Silverlight หรือผู้ทดสอบในพื้นที่ดีกว่า แต่ฉันไม่สามารถทดสอบพวกเขาได้
jimmy23013

IIRc, RegexHero เป็นผู้ทดสอบ. NET ในเบราว์เซอร์โดยใช้ Silverlight
n̴̖̋h̷͉̃a̷̭̿h̸̡̅ẗ̵̨́d̷̰̀ĥ̷̳

แนวคิดอื่นเกี่ยวกับจำนวนเต็มขนาดใหญ่คือการคำนวณหมายเลขเฉพาะของตัวดัดแปลงผลิตภัณฑ์ใกล้ 200 ควรเร็วกว่า แต่รหัสจะนานกว่านี้และฉันจะไม่ทำอย่างนั้นในคำตอบการแยกตัวประกอบจำนวนเต็ม
jimmy23013

ขอแสดงความยินดีกับการทำผ่าน 72 ชั่วโมง! ตอนนี้คุณสามารถล็อคคำตอบของคุณจากการแคร็กโดยเปิดเผยกุญแจ จนกว่าคุณจะทำคำตอบยังคงสามารถถอดรหัสได้
Martin Ender

4

PHP, 395 ไบต์ [แตกโดยnneonneo ]

^( *)( *)( *)(['.-])((?!\4)(?4)+?)((?!\4|\5)(?4)++)\1\3whale
(?=.(.))\6.\7\4(?!\4|\6)([_\/])\3(?!(?11))\8\2(?=\2)\3\1_((?=\4+.).\5(?!\6)\5)(?!.?')\7\4
(?=.\7)\6.([,`])\3{2}(?=.((?!\8)[_\/])\11)\Q(_\E.\4{2}(?!\.)\5((?!\10)(?10)(?!\4+|\5|\6))\1\3{3}(\\)
(\3{3})\13\2{2}\1{1}\3+(?<=\S {10})\4\1\3\|
\1(?=\12)(?12)(?!`,)\10\4(\11{2})\4\14\10\15\9\8
\14{2}(?=\6)['-]\4(?<!-)\11\8\11\4\6\11\15\.-|(?!)

จิ๊กซอว์ที่ดีกว่ารายการสุดท้ายของฉัน

หมายเหตุ: \nที่สำคัญการจับคู่อยู่หลายกับแต่ละสายแยกจากกันโดยตัวอักษรบรรทัดใหม่ สร้างงานศิลปะ ASCII ใหม่!

นี่คือการสาธิต regex


3
จับคู่ : 202e272d207768616c650a2d3a3a2e2f202f205f2e27273a2e0a2d3a2c2020285f5f2e2e27602020205c0a2020205c202020202020202020202e207c0a602c2e5f5f2e2020202c5f5f2e27272f0a2020202020202d2e5f2f5f2e2d5f5f5f2e2d(เข้ารหัสหกเหลี่ยม) ไม่ตรง : IDon'tThinkIGotTheRightPicture. พื้นที่ทำงานพิสูจน์: regex101.com/r/gF9pU0/1
nneonneo

1
@nneonneo Wow! คุณแก้ไขมันได้: D แต่ภาพด้านขวาอยู่ที่นี่: regex101.com/r/oM9rC4/1
Unihedron

1
ใช่ฉันคิดว่าฉันมีพื้นที่ไม่เพียงพอ (แต่ regex ไม่ได้ตรวจสอบอย่างแรงเกินไป) และดูเหมือนว่าฉันได้สบตาที่เริ่มต้นไป.-' .'-ในการเข้าใจถึงปัญหาในอดีตอดีตมีความเป็นไปได้มากขึ้นสำหรับศิลปะ ASCII;)
nneonneo

3

รส Perl, 97 [แตก]

ฉันกลัวว่านี่จะง่ายเกินไปเนื่องจากขีดจำกัดความยาวของคีย์

^([^,]+),(?!\1)([^,]+),(?!\1|\2,)([^,]+),(?!\1|(?:\2|\3),)([^,]+),(?=.\2+$)(?=.\3+$)(?=.\4+$)\1+$

หากคุณคิดว่าคุณเข้าใจแนวคิดเบื้องหลังลองใช้เวอร์ชันที่ยาวขึ้น (ไม่ใช่ส่วนหนึ่งของการท้าทาย):

^((?:[^,]{3})+),(?!\1)([^,]+),(?!\1|\2,)([^,]+),(?!\1|(?:\2|\3),)([^,]+),(?!\1|(?:\2|\3|\4),)([^,]+),(?!\1|(?:\2|\3|\4|\5),)([^,]+),(?!\1|(?:\2|\3|\4|\5|\6),)([^,]+),(?!\1|(?:\2|\3|\4|\5|\6|\7),)([^,]+),(?=.\2+$)(?=.\3+$)(?=.\4+$)(?=.\5+$)(?=.\6+$)(?=.\7+$)(?=.\8+$)\1+$

1
aaaaaaa,a,aa,aaa,aaaaaaaการแข่งขัน: ไม่ตรง: aaaabaaacaaadaaa.
jimmy23013

อีกรุ่น: การแข่งขัน: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,a,aa,(เอาตัวอักษรเหล่านี้) (ลบตัวอักษรเหล่านี้)aaaa,aaaaaaa,aaaaaaaa,aaaaaaaaaaaaaa,aaaaaaaaaaaaaaaaaaaaaaaaaaaa, aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaไม่ตรงกับ:aaaabaaacaaadaaa
jimmy23013

@ user23013: รุ่นสั้นถูกต้อง! ฉันต้องการให้กลุ่มการดักจับมีความยาวอย่างน้อยสองตัวละครซึ่งจะทำให้คีย์ยาวขึ้นเล็กน้อย แต่ฉันลืมที่จะเปลี่ยน: P เวอร์ชันที่ยาวกว่านั้นไม่ถูกต้อง
Ell

ไซต์นี้เพิ่มอักขระพิเศษที่มองไม่เห็นเมื่อฉันโพสต์ ฉันคิดว่ามันได้รับการแก้ไขแล้ว (โดยไม่ต้อง(remove these characters).)
jimmy23013

@ user23013 ใช่นั่นคือการแข่งขัน ฉันไม่ได้วางแผนให้ง่ายขนาดนั้น: P
Ell
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.