นี่คือความท้าทาย Cops and Robbers นี่คือเธรดของโจร ด้ายของตำรวจอยู่ที่นี่
ตำรวจจะเลือกลำดับใด ๆ จากOEISและเขียนโปรแกรมpที่พิมพ์จำนวนเต็มแรกจากลำดับนั้น พวกเขายังจะได้พบกับบางสตริงs หากคุณใส่sที่ไหนสักแห่งที่เข้าสู่หน้าโปรแกรมนี้จะต้องพิมพ์เลขที่สองจากลำดับ หากคุณแทรกs + sลงในตำแหน่งเดียวกันในpโปรแกรมนี้จะต้องพิมพ์จำนวนเต็มที่สามจากลำดับ s + s + sในตำแหน่งเดียวกันจะพิมพ์ที่สี่เป็นต้นไปเรื่อย ๆ นี่คือตัวอย่าง:
Python 3 ลำดับA000027
print(1)
สตริงซ่อนเป็นไบต์ที่สอง
สตริงคือ+1
เนื่องจากโปรแกรมprint(1+1)
จะพิมพ์จำนวนเต็มที่สองใน A000027 โปรแกรมprint(1+1+1)
จะพิมพ์จำนวนเต็มที่สามเป็นต้น
ตำรวจต้องเปิดเผยลำดับโปรแกรมเดิมPและความยาวของสตริงที่ซ่อนs โจรแตกส่งโดยการหาสตริงใดขึ้นอยู่กับความยาวที่และสถานที่ที่จะแทรกเพื่อสร้างลำดับ สตริงไม่จำเป็นต้องตรงกับโซลูชันที่ต้องการให้เป็นรอยแตกที่ถูกต้องและไม่ได้แทรกตำแหน่งไว้
หากคุณถอดรหัสตำรวจคนใดคนหนึ่งตอบโพสต์โซลูชั่นของคุณ (ด้วยสตริงที่ซ่อนอยู่และสถานที่เปิดเผย) และลิงค์ไปยังคำตอบ จากนั้นแสดงความคิดเห็นในคำตอบของตำรวจพร้อมลิงก์ไปยังช่องโหว่ของคุณที่นี่
กฎระเบียบ
โซลูชันของคุณจะต้องทำงานกับหมายเลขใด ๆ ในลำดับหรืออย่างน้อยก็จนกว่าข้อ จำกัด ที่เหมาะสมซึ่งจะล้มเหลวเนื่องจากข้อ จำกัด ของหน่วยความจำจำนวนเต็ม / สแต็คล้นเป็นต้น
โจรผู้ชนะคือผู้ใช้ที่ถอดรหัสสิ่งที่ได้รับความนิยมมากที่สุดโดยผู้ที่เข้ามาถึงจำนวนรอยร้าวนั้นจะถึงที่ก่อน
ตำรวจชนะคือตำรวจกับที่สั้นที่สุดสตริงsที่ไม่ได้แตก tiebreaker เป็นที่สั้นที่สุดพี หากไม่มีการส่งที่ไม่ได้ทำการคัดลอกตำรวจที่มีทางออกที่ไม่ได้ติดตามจะได้รับชัยชนะนานที่สุด
ในการประกาศความปลอดภัยโซลูชันของคุณจะต้องไม่ถูกถอดออกเป็นเวลา 1 สัปดาห์จากนั้นเปิดเผยสตริงที่ซ่อนอยู่ (และตำแหน่งที่จะแทรก)
sอาจไม่ซ้อนกันมันจะต้องต่อกันจนจบ ตัวอย่างเช่นถ้าsเป็น
10
แต่ละซ้ำจะไป10, 1010, 101010, 10101010...
มากกว่า10, 1100, 111000, 11110000...
โซลูชันการเข้ารหัสทั้งหมด (ตัวอย่างเช่นการตรวจสอบแฮชของสตริงย่อย) จะถูกแบน
หากsมีอักขระที่ไม่ใช่ ASCII คุณต้องระบุการเข้ารหัสที่ใช้
%
กับเพื่อนร่วมงานที่เหลือ