คำถามติดแท็ก restricted-source

กำหนดข้อ จำกัด ของซอร์สโค้ดที่ใช้ในการแก้ปัญหาความท้าทายตัวอย่างเช่นไม่มีตัวเลขในซอร์สโค้ด

12
ความท้าทายที่เชื่อมโยงกัน
กิจกรรมที่ฉันทำในบางครั้งเมื่อฉันเบื่อคือการเขียนอักขระสองสามตัวในคู่ที่ตรงกัน จากนั้นฉันก็ลากเส้น (บนยอดไม่เกินด้านล่าง) เพื่อเชื่อมต่อตัวละครเหล่านี้ ยกตัวอย่างเช่นผมอาจจะเขียนขคขคแล้วผมจะวาดเส้นเป็น:abcbacabcbacabcbac หรือฉันอาจเขียนขขคคabbcacabbcacabbcac เมื่อฉันวาดเส้นเหล่านี้ฉันพยายามที่จะวาดลูปแบบปิดล้อมรอบชิ้นเพื่อให้วงของฉันไม่ได้ตัดเส้นใด ๆ ที่ฉันเพิ่งวาด ยกตัวอย่างเช่นในวงแรกวงเดียวที่เราวาดได้นั้นอยู่รอบตัวทั้งหมด แต่ในวงที่สองเราสามารถวาดวงรอบ ๆ แค่bbb s (หรือทุกอย่างอื่น) หากเราเล่นกับสิ่งนี้สักครู่ในขณะที่เราจะพบว่าบางสายสามารถวาดเพื่อให้วงปิดมีตัวอักษรทั้งหมดหรือไม่มีตัวอักษร (เช่นตัวอย่างแรกของเรา) เราจะเรียกสตริงดังกล่าวว่าสตริงที่เชื่อมโยงกันดี โปรดทราบว่าบางสายสามารถวาดได้หลายวิธี ตัวอย่างเช่นbbbbbbbbbbbbสามารถวาดได้ทั้งสองวิธีต่อไปนี้ (และไม่รวมอยู่ในรายการที่สาม): หรือ หากหนึ่งในวิธีเหล่านี้สามารถวาดได้ว่าวงรอบปิดสามารถสร้างขึ้นเพื่อให้มีอักขระบางตัวได้โดยไม่ต้องตัดเส้นใด ๆ จากนั้นสตริงจะไม่ถูกเชื่อมโยงกัน (ดังนั้นbbbbbbbbbbbbไม่ได้เชื่อมโยงกัน) งาน งานของคุณคือการเขียนโปรแกรมเพื่อระบุสตริงที่เชื่อมโยงกัน การป้อนข้อมูลของคุณจะประกอบด้วยสตริงที่อักขระทุกตัวปรากฏเป็นจำนวนครั้งและผลลัพธ์ของคุณควรเป็นหนึ่งในสองค่าที่สอดคล้องกันอย่างใดอย่างหนึ่งหนึ่งถ้าสตริงมีการเชื่อมโยงดีและอื่น ๆ นอกจากนี้โปรแกรมของคุณจะต้องมีความหมายของสตริงที่เชื่อมโยงกัน ตัวละครทุกตัวปรากฏเป็นจำนวนครั้งในโปรแกรมของคุณ มันควรส่งออกค่าความจริงเมื่อผ่านตัวเอง โปรแกรมของคุณควรสามารถสร้างเอาต์พุตที่ถูกต้องสำหรับสตริงใด ๆ ที่ประกอบด้วยอักขระจาก ASCII ที่พิมพ์ได้หรือโปรแกรมของคุณเอง ด้วยตัวละครแต่ละตัวปรากฏเป็นจำนวนครั้ง คำตอบจะได้คะแนนตามความยาวเป็นไบต์โดยมีจำนวนไบต์น้อยกว่าซึ่งเป็นคะแนนที่ดีกว่า เปรย สตริงจะไม่ได้รับการเชื่อมโยงอย่างดีถ้ามีสตริงย่อยแบบ จำกัด ที่ไม่ต่อเนื่องที่ไม่ต่อเนื่องกันอยู่ซึ่งอักขระแต่ละตัวจะปรากฏเป็นจำนวนครั้งในสตริงย่อยนั้น กรณีทดสอบ abcbac -> True abbcac -> …

23
Holy Hole ในโดนัทแบทแมน!
ตัวละครบางตัวมีความศักดิ์สิทธิ์มากกว่าตัวละครอื่น ๆ ใช้ตัวอักษรที่ไม่บริสุทธิ์น้อยที่สุดเท่าที่จะทำได้ให้แสดงคำสั่งด้านบน ท้าทาย เขียนโปรแกรมเต็มรูปแบบเพื่อพิมพ์Holy Hole In A Donut, Batman!ไปยัง STDOUT หรือทางเลือกที่ใกล้เคียงที่สุด หากคุณสามารถบีบอัดอินพุตเพื่อลดคะแนนของคุณไปได้เลย :) อินพุต ไม่มี เอาท์พุต Holy Hole In A Donut, Batman! กฎระเบียบ นี่คือรหัสที่ท้าทายและคะแนนต่ำสุดชนะ เอาต์พุตที่ต้องการสามารถอ่านได้จากไฟล์ แต่จากนั้นควรนับรวมกับผลรวมของคุณ ขึ้นบรรทัดใหม่ได้ตามปกติในผลลัพธ์ มีช่องโหว่มาตรฐานและข้อกำหนดของ T & C เกณฑ์การให้คะแนน คะแนนของคุณคือจำนวนไบต์บวกกับตัวดัดแปลงบางอย่าง: ใช้ตัวละครศักดิ์สิทธิ์0469abdegopqrADOPQR@#นับเป็น 2 คะแนน ใช้ตัวละครศักดิ์สิทธิ์พิเศษ8B%$&1 แต้ม (ไม่มีโทษ) การใช้ตัวละครที่ไม่บริสุทธิ์12357cfhijklmnstuvwxyzCEFGHIJKLMNSTUVWXYZ!"^*()[]{}-=_+|\/?,.<>:;'~ถือโทษหนักกว่าและนับเป็น 10 คะแนนต่อตัวละคร ช่องว่างแท็บและการขึ้นบรรทัดใหม่คือ 1 คะแนน (ไม่มีการลงโทษ) ตัวละครอื่น ๆ ที่ไม่อยู่ในรายการคือ …

30
เพิ่มโดยไม่ต้องเพิ่ม (หรือตัวดำเนินการทางคณิตศาสตร์พื้นฐาน 4 ตัวใด ๆ )
ปัญหา: เป้าหมายของคุณคือการเพิ่มป้อนตัวเลขสองโดยไม่ต้องใช้ใด ๆ +,-,*,/ของผู้ประกอบการทางคณิตศาสตร์ต่อไปนี้: นอกจากนี้คุณไม่สามารถใช้ฟังก์ชันในตัวที่ออกแบบมาเพื่อแทนที่ตัวดำเนินการทางคณิตศาสตร์เหล่านั้นได้ เกณฑ์การให้คะแนน: รหัสที่เล็กที่สุด (ในจำนวนไบต์) ชนะ ปรับปรุง โปรแกรมส่วนใหญ่ที่ฉันเคยเห็นมาเรียงต่อกันสองอาร์เรย์ที่มีหมายเลขของพวกเขาหรือทำให้first numberตัวละครผนวกsecond numberตัวอักษรแล้วนับพวกเขาทั้งหมด ตัวนับอาร์เรย์ที่สั้นที่สุด: APL ที่มี 8 ตัวอักษรโดย Tobia การต่อแถวสั้นที่สุด: Golfscript พร้อม 4 chars โดย Doorknob วิธีแก้ปัญหาลอการิทึมที่สั้นที่สุด: TI-89 Basic พร้อม 19 ตัวอักษรโดย Quincunx โซลูชันการรวม: Mathematica กับ 45 chars โดย Michael Stern เจ๋งที่สุดในความคิดของฉัน: ผู้ประกอบการระดับบิตในจาวาสคริปต์โดยเดฟ

22
ปี่ธรรมชาติ # 0 - ร็อค
เป้าหมาย สร้างโปรแกรม / ฟังก์ชั่นที่รับอินพุตNตรวจสอบว่าNคู่ของจำนวนเต็มแบบสุ่มนั้นค่อนข้างดีและส่งคืนsqrt(6 * N / #coprime)หรือไม่ TL; DR ความท้าทายเหล่านี้เป็นการจำลองอัลกอริธึมที่ต้องการเพียงแค่ธรรมชาติและสมองของคุณ หากคุณต้องการ Pi ในระหว่างการเปิดเผยซอมบี้วิธีการเหล่านี้จะไม่เปลืองกระสุน ! มีอีกแปดความท้าทายที่จะมา ชำระเงินโพสต์แซนด์บ็อกซ์เพื่อให้คำแนะนำ การจำลอง เรากำลังจำลองอะไร ความน่าจะเป็นที่สองจำนวนเต็มแบบสุ่มนั้นค่อนข้างไพเราะ (เช่น coprime หรือ gcd == 1) 6/Pi/Piดังนั้นวิธีธรรมชาติในการคำนวณ Pi ก็คือการตักก้อนหินขึ้นสองถัง (หรือกำมือ) นับพวกเขา; ดูว่าgcdของพวกเขาคือ 1; ทำซ้ำ หลังจากที่ทำเช่นนี้คู่หลายครั้งจะมีแนวโน้มต่อsqrt(6.0 * total / num_coprimes) Piหากการคำนวณสแควร์รูทในโลกหลังวิกฤติทำให้คุณกังวลไม่ต้องกังวล! มีวิธีการของนิวตันสำหรับสิ่งนั้น เราจำลองสิ่งนี้ได้อย่างไร รับอินพุต N ทำตามNเวลาต่อไปนี้: สร้างเลขจำนวนเต็มบวกแบบสุ่มiและj กับ 1 <= i …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

14
การเขียนโปรแกรมด้วย Sporadic Shift Key
แป้นพิมพ์ของคุณมีบางอย่างผิดปกติ Shiftที่สำคัญมีความคิดของตัวเอง ทุกครั้งที่คุณพิมพ์ตัวละครคุณจะไม่รู้เลยว่ามันจะออกมาหรือไม่ (แม้ว่าจะเป็น 50-50) นอกจากปุ่มอักขระมาตรฐานแล้วไม่มีอะไรบนแป้นพิมพ์ที่ใช้งานได้ ไม่มีเมาส์หรือวิธีการอินพุตอื่น อย่างใดคุณก็รู้วิธีเดียวที่จะแก้ไขสิ่งต่าง ๆ คือการเขียนโปรแกรมที่ส่งออกDear Computer, please stop giving me shift!ไปยัง stdout โชคดีที่ IDE ของคุณเปิดอยู่และคุณสามารถเรียกใช้โปรแกรมได้ แต่แน่นอนว่าเมื่อคุณพิมพ์คุณจะไม่ทราบว่าตัวละครใดที่จะถูกเลื่อน คุณจะใช้ลำดับของการกดปุ่มใดในการเขียนโปรแกรมที่มีโอกาสที่ดีที่สุดในการลองครั้งแรก รายละเอียด คุณกำลังใช้แป้นพิมพ์ QWERTY มาตรฐานดังนั้นจึงมี 50 ตัวอักษรที่คุณสามารถกดได้ รุ่นที่ไม่เปลี่ยนแปลง (47 เท่านั้น): `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./ รุ่นที่เปลี่ยน (47 เท่านั้น): ~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>? 3 ปุ่มสุดท้ายคือEnter, TabและSpace, ซึ่งเหมือนกันคือเลื่อนและไม่เปลี่ยน ลำดับของ N ของตัวละครเหล่านี้มี 2 N - (จำนวนช่องว่าง)วิธีที่มันอาจจะถูกส่งออกถ้าคุณพิมพ์ด้วยแป้นพิมพ์ผิดพลาดของคุณ ยกตัวอย่างเช่นการพิมพ์A Space mอาจมีผล …

9
ตัวตรวจสอบ“ สะดวก palindrome”
หากคุณเคยพยายามที่จะเขียนรหัส palindromic มาก่อนคุณจะรู้ว่ามีแนวโน้มที่จะได้รับในวงเล็บของคุณ ()()ไม่ใช่ palindrome แม้ว่ามันดูเหมือนว่ามันควรจะเป็นในขณะที่())(และ()(มีทั้ง palindromic และทั้งสองมองเป็นใบ้ มันจะไม่สะดวกถ้ามันเป็นอย่างอื่น? สตริงเป็นpalindromic สะดวกถ้ามันเท่ากับสตริงที่ได้รับเมื่อ reverse มีวงเล็บ ( ()), วงเล็บ ( []) และวงเล็บปีกกา ( {}) ทั้งหมด ไม่มีตัวละครอื่นที่พิเศษและต้องการการพลิก ( <>บางครั้งมีการจับคู่ แต่มักจะไม่ถูกปล่อยออกไป) งานของคุณคือการเขียนในภาษาของคุณโปรแกรม (รับอินพุตบน STDIN) หรือฟังก์ชั่น (รับอาร์กิวเมนต์สตริงเดี่ยว) ซึ่ง (a) ให้ค่าจริงที่สอดคล้องกัน * เมื่ออาร์กิวเมนต์มีความสะดวก Palindromic และเท็จที่สอดคล้องกัน ค่าเป็นอย่างอื่นและ (b) เป็นตัวเองอย่างสะดวก palindromic ตัวอย่างเช่นอินพุตต่อไปนี้เป็นแบบ palindromic: racecar (a)(bb)(a) void main(int argc, *char[] …

26
สร้างคำศัพท์
ความท้าทาย งานของคุณคือการสร้างโปรแกรมที่รับอินพุตสตริงใด ๆ และส่งออกอินพุตในรูปแบบกำลังสอง สตริงว่างควรส่งคืนสตริงว่าง ตัวอย่าง รับอินพุต: golf โปรแกรมของคุณควรส่งออก: golf o l l o flog การป้อนข้อมูล: 123 เอาท์พุท: 123 2 2 321 การป้อนข้อมูล: a เอาท์พุท: a การป้อนข้อมูล: Hello, world! เอาท์พุท (สังเกตช่องว่างระหว่าง, และ w - ช่องว่างไม่ใช่แค่ขึ้นบรรทัดใหม่): Hello, world! e d l l l r o o , w w , o …

30
พระองค์ทรงสังหาร Jabberwock หรือไม่?
งานของคุณคือการส่งออกสตริงที่แน่นอน The Jabberwocky โดยไม่ต้องป้อนข้อมูล ใช้กฎปกติสำหรับอินพุตและเอาต์พุตดังนั้นอนุญาตให้ทั้งฟังก์ชั่นและโปรแกรม แน่นอนว่ามีการจับมันจะไม่สนุกถ้าไม่มีการจับ โปรแกรมของคุณเมื่อถอดอักขระที่ไม่ใช่ตัวอักษรต้องเริ่มต้นบทกวีJabberwocky (ไม่คำนึงถึงขนาดตัวพิมพ์) ในการเริ่มต้นบทกวีมันจะต้องเป็นสตริงย่อยอย่างต่อเนื่องของบทกวีเริ่มต้นที่จุดเริ่มต้น สตริงว่างเปล่าใช้ได้ (แม้ว่าคุณอาจทำคะแนนได้ไม่ดี) นี่คือข้อความสำหรับการอ้างอิง: twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe นี่คือโปรแกรมที่คุณสามารถใช้เพื่อทดสอบคุณสมบัตินี้ หากคุณใช้บทกวีหมดคุณต้องไม่ใช้ตัวอักษรเพิ่มเติมใด ๆ ตัวอักษรเป็นตัวอักษรa- zและA- Zนี่คือรายการที่สมบูรณ์: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz เกณฑ์การให้คะแนน โปรแกรมของคุณจะได้คะแนนในจำนวนไบต์ที่ไม่ใช่ตัวอักษรที่ใช้โดยมีค่าน้อยกว่าจะดีกว่า นี่คือโปรแกรม Haskell ที่ให้คะแนนคำตอบ (ซึ่งถือว่าอินพุตถูกต้อง) โปรแกรมตัวอย่าง โปรแกรมต่อไปนี้จะใช้ได้: twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe"""""""" ret h eb or o g o ve sa n …

22
ฉันไม่ได้ ... ฉันแค่แปลกเท่านั้น!
งานของคุณง่าย: เขียนโปรแกรมที่รับจำนวนเต็มเป็นอินพุทและเอาท์พุทถ้ามันแปลกและไม่ทำอะไรเลย (ไม่อนุญาตให้หยุด) ความท้าทายคือคุณสามารถใช้ไบต์คี่เท่านั้น คุณสามารถเลือกเพิ่มบรรทัดใหม่ต่อท้ายไปยังเอาต์พุต นี่คือ code-golf คำตอบที่สั้นที่สุดเป็นไบต์ (คี่) ชนะ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม นอกจากนี้คุณไม่สามารถใช้เวอร์ชันภาษาซึ่งใหม่กว่าการโพสต์ความท้าทายนี้ ตัวอย่างอินพุต> เอาต์พุต: 13 > 13 42 >

11
งานที่แตกต่างกันตัวละครเดียวกัน
ในการท้าทายนี้คุณจะต้องแก้ปัญหาต่าง ๆ 4 ภารกิจโดยใช้ชุดอักขระเดียวกัน คุณสามารถจัดเรียงอักขระใหม่ แต่คุณไม่สามารถเพิ่มหรือลบอักขระได้ ผู้ชนะจะเป็นผู้ส่งงานที่แก้ปัญหาทั้งหมดโดยใช้จำนวนตัวอักษรน้อยที่สุด งานทั้งหมดจะต้องได้รับการแก้ไขในภาษาเดียวกัน หมายเหตุว่ามันเป็นจำนวนที่น้อยที่สุดของตัวอักษรไม่ได้จำนวนที่น้อยที่สุดของที่ไม่ซ้ำกันของตัวละคร ภารกิจที่ 1: เอาท์พุทเป็นครั้งแรกที่Nตัวเลขของทุกสามจำนวนคอมโพสิต codeblock ด้านล่างแสดงหมายเลขผสม 19 รายการแรกในแถวแรกและหมายเลขประกอบสามทั้งหมดในแถวด้านล่าง 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30 4, 9, 14, 18, 22, 26, 30 หากแล้วออกที่ควรจะเป็นN=5 คุณจะต้องสนับสนุน4, 9, 14, 18, 221<=N<=50 ตัวเลขรวมเป็นตัวเลขบวกที่ไม่ใช่ตัวเลขเฉพาะหรือ 1 …

22
ระเบิดสตริง
รับสายใด ๆ พิมพ์ในรูปแบบของรูปสามเหลี่ยมที่ข้อความวิ่งขึ้นและลงตามแนวทแยงแต่ละ ตัวอย่างเช่นอินพุตของ"Hello World"เอาต์พุตควร: d l r d o l W r d o l o W r d l o l l o W r d e l o l H l o W r d e l o l l o W r d l o l …

30
ใช้อักษรตัวแรกของป้อนคำให้พิมพ์ใหญ่
อันนี้ค่อนข้างเร็ว แต่ฉันแน่ใจว่าคุณจะชอบ Codegolf เป็นโปรแกรมที่จะป้อนข้อมูลในรูปแบบของประโยคและให้ผลลัพธ์ด้วยตัวอักษรตัวแรกในแต่ละคำ กฎ: ข้อมูลที่ส่งอาจไม่อยู่ในรูปแบบของฟังก์ชัน ดังนั้นไม่: function x(y){z=some_kind_of_magic(y);return z;} เป็นคำตอบสุดท้ายของคุณ ... รหัสของคุณจะต้องแสดงว่ามันต้องใช้อินพุตและให้เอาต์พุต รหัสจะต้องรักษาอักษรตัวใหญ่อื่น ๆ ที่มีการป้อนข้อมูล ดังนั้น eCommerce and eBusiness are cool, don't you agree, Richard III? จะถูกแสดงผลเป็น ECommerce And EBusiness Are Cool, Don't You Agree, Richard III? บางคนอาจจะคิดว่า "ง่ายฉันจะใช้ regex!" และการใช้ regex ดั้งเดิมในภาษากอล์ฟที่คุณเลือกจะมีโทษ 30 ตัวซึ่งจะถูกนำไปใช้กับการนับรหัสสุดท้ายของคุณ ปีศาจหัวเราะ "คำ" ในกรณีนี้คือสิ่งที่คั่นด้วยช่องว่าง ดังนั้นจึงpalate …

8
ไม่มีเพื่อนบ้านที่สำคัญ
รับรายการของจำนวนเต็มบวกเอาท์พุทว่าทุกคู่ที่อยู่ติดกันของมันในหุ้นที่เป็นปัจจัยสำคัญ กล่าวอีกนัยหนึ่งเอาท์พุทความจริงถ้าหากไม่มีสองจำนวนเต็มเพื่อนบ้านในรายการเป็นแบบร่วม ในอีกแง่หนึ่ง: รับรายการจำนวนเต็มบวก[a 1 a 2 … a n ]ออกว่า gcd (a 1 , a 2 )> 1 && gcd (a 2 , a 3 )> 1 && … && gcd (a n − 1 , a n )> 1 รายการจะมีองค์ประกอบอย่างน้อยสององค์ประกอบเสมอ (n ≥ 2) อย่างไรก็ตาม ... ความท้าทายนี้ยังมีการจำกัด แหล่งที่มา : …

30
มินิ จำกัด ที่ท้าทายความสามารถของ Cop
ด้ายของ Robber งานของคุณในฐานะตำรวจคือการเลือกสามสิ่ง: ภาษาโปรแกรม ลำดับ OEIS ชุดไบต์ จากนั้นคุณจะต้องเขียนโปรแกรมในภาษานั้นอย่างลับๆซึ่งคำนวณลำดับที่ n โดยใช้เฉพาะไบต์ในชุดเท่านั้น คุณจะเปิดเผยข้อมูลสามส่วนเพื่อให้โจรสามารถลองคิดดูโปรแกรม คำตอบจะได้คะแนนจากจำนวนไบต์ในชุดไบต์ที่มีคะแนนดีกว่า คำตอบที่ถอดรหัสจะมีคะแนนอัตโนมัติเป็น 0 หากคำตอบของคุณไม่ได้ติดตามหลังจากหนึ่งสัปดาห์คุณอาจเปิดเผยโปรแกรมที่ตั้งใจและทำเครื่องหมายคำตอบว่า "ปลอดภัย" รู้รอบต้องสามารถคำนวณทุกคำศัพท์ในไฟล์ b ของลำดับ แต่ไม่จำเป็นต้องคำนวณคำใด ๆ หลังจากนั้น ลำดับสามารถเป็นดัชนี 1 หรือ 0 สำหรับทั้งตำรวจและโจร นี่คือสคริปต์ Pythonที่ตรวจสอบว่ารหัสของคุณตรงกับชุดไบต์ที่กำหนดหรือไม่

29
มันเป็นรหัสคำนำหน้า?
ในทฤษฎีข้อมูล "รหัสคำนำหน้า" เป็นพจนานุกรมที่ไม่มีคีย์ใดเป็นคำนำหน้าของอีก กล่าวอีกนัยหนึ่งนี่หมายความว่าไม่มีสตริงใดเริ่มต้นด้วยสตริงอื่นใด ตัวอย่างเช่น{"9", "55"}เป็นรหัสคำนำหน้า แต่{"5", "9", "55"}ไม่ใช่ ข้อได้เปรียบที่ใหญ่ที่สุดของเรื่องนี้คือข้อความที่เข้ารหัสสามารถเขียนลงโดยไม่มีตัวคั่นระหว่างพวกเขาและมันจะยังสามารถถอดรหัสได้โดยไม่ซ้ำกัน สิ่งนี้แสดงให้เห็นในอัลกอริธึมการบีบอัดเช่นการเข้ารหัส Huffmanซึ่งจะสร้างรหัสคำนำหน้าที่ดีที่สุดเสมอ งานของคุณง่าย: ได้รับรายการของสตริงตรวจสอบว่ามันเป็นรหัสคำนำหน้าที่ถูกต้องหรือไม่ ข้อมูลของคุณ: จะมีรายการของสตริงในรูปแบบที่เหมาะสม จะมีสตริง ASCII ที่พิมพ์ได้เท่านั้น จะไม่มีสตริงว่างเปล่า ผลลัพธ์ของคุณจะเป็นค่าจริง / เท็จ : ความจริงถ้ามันเป็นรหัสคำนำหน้าที่ถูกต้องและเป็นเท็จถ้ามันไม่ ต่อไปนี้เป็นกรณีทดสอบจริง: ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", …

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