การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

11
ชุดนี้แสดงถึงจำนวนธรรมชาติหรือไม่
ในการตั้งทฤษฎีจำนวนธรรมชาติN={0,1,2,3,...}N={0,1,2,3,...}\mathbb{N} = \{0, 1, 2, 3, ...\}มักจะเข้ารหัสเป็นชุดบริสุทธิ์นั่นคือชุดที่มีเพียงชุดที่ว่างเปล่าหรือชุดอื่น ๆ ที่มีความบริสุทธิ์ อย่างไรก็ตามไม่ใช่ชุดบริสุทธิ์ทั้งหมดที่แสดงถึงจำนวนธรรมชาติ ความท้าทายนี้เกี่ยวกับการตัดสินใจว่าเซตที่บริสุทธิ์นั้นแสดงถึงการเข้ารหัสของจำนวนธรรมชาติหรือไม่ การเข้ารหัสของตัวเลขธรรมชาติทำงานในวิธีต่อไปนี้1 : Zero คือชุดว่าง: Set(0)={}Set(0)={} Set(0) = \{\} สำหรับตัวเลขn>0n>0n > 0 : Set(n)=Set(n−1)∪{Set(n−1)}Set(n)=Set(n−1)∪{Set(n−1)} Set(n) = Set(n-1) \cup \{Set(n-1)\} ดังนั้นการเข้ารหัสของตัวเลขธรรมชาติสองสามตัวแรกคือ 0⇝{}0⇝{} 0 \leadsto \{\} 1⇝{0}⇝{{}}1⇝{0}⇝{{}} 1 \leadsto \{0\} \leadsto \{\{\}\} 2⇝{0,1}⇝{{},{{}}}2⇝{0,1}⇝{{},{{}}} 2 \leadsto \{0,1\} \leadsto \{\{\},\{\{\}\}\} 3⇝{0,1,2}⇝{{},{{}},{{},{{}}}}3⇝{0,1,2}⇝{{},{{}},{{},{{}}}} 3 \leadsto \{0,1,2\} …

22
รูปสามเหลี่ยมหลัก
ท้าทาย: อินพุต:จำนวนเต็มบวกnnn เอาท์พุท: สร้างรายการในช่วง[1,n][1,n][1,n]และรวมเข้าด้วยกันกับสตริง (เช่นn=13n=13n=13จะเป็นสตริง12345678910111213) ตอนนี้เราแสดงสามเหลี่ยมโดยใช้ส่วนนำหน้าหรือส่วนต่อท้ายของสตริงนี้ในหนึ่งในสี่ทิศทางต่อไปนี้โดยยึดตามจำนวนเต็มอินพุท: ถ้าให้ส่งมันออกเป็นรูปสามเหลี่ยม◣n≡0(mod4)n≡0(mod4)n\equiv 0\pmod 4 ถ้าส่งออกมันในรูปสามเหลี่ยม◤n≡1(mod4)n≡1(mod4)n\equiv 1\pmod 4 ถ้าให้ส่งออกเป็นรูปสามเหลี่ยม◥n≡2(mod4)n≡2(mod4)n\equiv 2\pmod 4 ถ้าออกมันเป็นรูปสามเหลี่ยม◢n≡3(mod4)n≡3(mod4)n\equiv 3\pmod 4 ตัวอย่าง: อินพุต:n=13n=13n=13 เนื่องจากรูปร่างจะเป็น◤ ผลลัพธ์ที่ถูกต้องที่เป็นไปได้สามข้อต่อไปนี้:13≡1(mod4)13≡1(mod4)13\equiv 1\pmod 4 12345678910111213 11111111111111111 12345678910111213 1234567891011121 2222222222222222 2345678910111213 123456789101112 333333333333333 345678910111213 12345678910111 44444444444444 45678910111213 1234567891011 5555555555555 5678910111213 123456789101 666666666666 678910111213 12345678910 77777777777 78910111213 1234567891 8888888888 8910111213 123456789 999999999 …

12
ทศนิยมที่อัดแน่น (DPD) เป็นทศนิยม
สำหรับแฟน ๆ เกม nandgame: โปรดลองDPD เป็นทศนิยมในประตูตรรกะด้วย! พื้นหลัง ทศนิยมที่อัดแน่น (DPD)คือวิธีในการจัดเก็บทศนิยมอย่างมีประสิทธิภาพในไบนารี มันเก็บทศนิยมสามหลัก (000 ถึง 999) ใน 10 บิตซึ่งมีประสิทธิภาพมากขึ้นกว่าไร้เดียงสา BCD (ซึ่งเก็บหนึ่งหลักใน 4 บิต) ข้อความ ตัวอักษรตัวพิมพ์เล็กaจะiมีบิตที่ถูกคัดลอกไปเป็นตัวแทนทศนิยม 0และ1เป็นบิตที่แน่นอนในรูปแบบบิตอินพุตหรือเอาต์พุต x บิตจะถูกละเว้นในการแปลง ตารางการแปลง ต่อไปนี้เป็นตารางการแปลงจาก 10 บิตของ DPD เป็นทศนิยมสามหลัก ตัวเลขทศนิยมแต่ละหลักแสดงเป็นไบนารี่ 4 บิต (BCD) ทั้งสองข้างถูกเขียนจากซ้ายไปขวาจากหลักที่สำคัญที่สุดไปถึงอย่างน้อยที่สุด Bits => Decimal (Digit range) a b c d e f 0 g h …

25
สร้างรหัสผ่าน
มันยากมากที่จะจำรหัสผ่านของฉันดังนั้นฉันจึงหาวิธีสร้างรหัสผ่านขึ้นมา วิธีที่ฉันสร้างรหัสผ่านของฉันมาจากคำหรือประโยคโดยทำตามขั้นตอนเหล่านี้: เริ่มจากซ้ายไปขวา ค้นหาจำนวนตัวอักษรแต่ละตัว ใส่ตัวอักษรที่มีการนับในการสั่งซื้อ ตัวอักษรที่มีการซ้ำซ้อนที่สูงขึ้นจะอยู่ในท้ายที่สุด ตัวอักษรที่ซ้ำซ้อนกันจะเรียงตามลำดับตัวอักษร ตัวเลขและตัวอักษรพิเศษจะถูกละเว้นรวมถึงช่องว่าง (เช่น 9, 4, @, (, *, ฯลฯ ) ตัวอักษรกลุ่มโดยไม่สนใจขนาดตัวพิมพ์ ในเอาต์พุตใช้กรณีของการเกิดขึ้นครั้งสุดท้ายในอินพุต จำนวนตัวอักษรสามารถเป็นจำนวนเท่าใดก็ได้เช่น 5H17M345K หากการป้อนข้อมูลเป็นตัวเลขทั้งหมดหรือตัวอักษรพิเศษการส่งออกจะเป็นสตริงที่ว่างเปล่าเช่นการป้อนข้อมูล "12 $ * 34 ^!" จากนั้นเอาท์พุท "" เมื่อสั่งซื้อสำหรับกรณีที่เกิดขึ้นตามลำดับตัวอักษรเดียวกันไม่สำคัญเช่น 1a1B1c ตัวอย่าง: Input: Kitkat Tango (2k / 1i / 3T / 2a / 1n / 1g / 1o) Output: 1g1i1n1o2a2k3T ตัวอย่างอื่น: …

24
การสุ่มตามอำเภอใจ
การสุ่มนั้นสนุก ความท้าทายที่ไม่มีจุดไหนสนุก เขียนฟังก์ชั่นที่ได้รับการป้อนข้อมูลจำนวนเต็มn, ออกจะชุด (เรียงลำดับไม่ซ้ำกัน) ของว่าnจำนวนเต็มสุ่มระหว่าง1และn^2(รวม) n^2เช่นว่าผลรวมของจำนวนเต็มทั้งหมดจะมีค่าเท่ากับ การสุ่มไม่จำเป็นต้องเหมือนกันโดยแต่ละชุดที่ถูกต้องจะมีโอกาสเกิดขึ้นที่ไม่เป็นศูนย์ คำตอบที่สั้นที่สุดเป็นไบต์ (ต่อภาษา) ชนะ ตัวอย่าง Input (n) = 1, Target (n^2) = 1 Sample of possible outputs: 1 Input = 2, Target = 4 Sample of possible outputs: 3, 1 1, 3 Input = 3, Target = 9 Sample of possible outputs: 6, …

2
ลบบิตและนับ
พิจารณาทุก2^nสตริงไบนารีที่แตกต่างกันของความยาวและถือว่าn n > 2คุณได้รับอนุญาตให้ลบb < n/2บิตออกจากสตริงไบนารี่n-bได้อย่างแน่นอน จำนวนสตริงที่แตกต่างกันที่เหลือขึ้นอยู่กับว่าคุณลบบิตใด สมมติว่าเป้าหมายของคุณคือการปล่อยให้สายอักขระที่เหลืออยู่น้อยที่สุดเท่าที่จะเป็นไปได้ความท้าทายนี้คือการเขียนโค้ดเพื่อคำนวณว่าคุณสามารถออกจากหน้าที่การใช้งานnเพียงเล็กน้อย ตัวอย่างและn=3 b = 1คุณสามารถออกจากเพียงสองสายและ1100 สำหรับn=9และb = 1,2,3,4เรามี70,18,6,2 สำหรับn=8และb = 1,2,3เรามี40,10,4 สำหรับn=7และb = 1,2,3เรามี20,6,2 สำหรับn=6และb = 1,2เรามี12,4 สำหรับn=5และb = 1,2เรามี6,2 สำหรับคำถามนี้ถูกวางโดยเดิมทีผมในปี 2014 ในรูปแบบที่แตกต่างกันในมิสซูรี่ อินพุตและเอาต์พุต รหัสของคุณควรเป็นจำนวนเต็มnและส่งออกจำนวนเต็มเดียวสำหรับแต่ละค่าbเริ่มต้นb = 0และเพิ่ม คะแนน คะแนนของคุณใหญ่ที่สุดnซึ่งรหัสของคุณเสร็จสมบูรณ์b < n/2ภายในไม่กี่นาทีบนพีซีที่ใช้ Linux ของฉัน ในกรณีที่มีการพักเบรคbรหัสที่ใหญ่ที่สุดของคุณจะถูกนำไปสู่nชัยชนะที่ยิ่งใหญ่ที่สุดร่วมกัน ในกรณีที่เสมอกันในเกณฑ์นั้นรหัสที่เร็วที่สุดสำหรับค่าที่ใหญ่ที่สุดnและbตัดสินใจ หากเวลาอยู่ภายในหนึ่งหรือสองวินาทีของกันคำตอบที่โพสต์แรกจะชนะ ภาษาและห้องสมุด คุณสามารถใช้ภาษาของห้องสมุดใด ๆ ที่คุณต้องการ เพราะฉันต้องเรียกใช้รหัสของคุณมันจะช่วยถ้ามันฟรี (เหมือนเบียร์) และทำงานใน …

23
ทำให้เท่าเทียมกันอาร์เรย์
ท้าทาย คุณได้รับอาร์เรย์aaaจำนวนเต็ม ด้วยการย้ายคุณสามารถเพิ่มหรือลดองค์ประกอบของอาร์เรย์โดย 1 งานของคุณคือการเกลี่ยอาร์เรย์นั่นคือทำให้องค์ประกอบทั้งหมดของอาร์เรย์เท่ากับโดยการดำเนินการบางส่วนย้าย แต่นั่นยังไม่เพียงพอ! คุณยังต้องการที่จะทำเป็นเพียงการเคลื่อนไหวที่เป็นไปได้ อินพุต ไม่ว่างเปล่าอาร์เรย์ aaaของจำนวนเต็ม เลือกที่มีความยาวของaaa เอาท์พุต จำนวนขั้นต่ำของการเคลื่อนไหวที่จำเป็นในการเกลี่ยอาร์เรย์aaa กฎระเบียบ กฎระเบียบมาตรฐานสำหรับการส่งที่ถูกต้อง , I / O , ช่องโหว่ใช้ นี่คือรหัส - กอล์ฟดังนั้นทางออกที่สั้นที่สุด (เป็นไบต์) ชนะ ตามปกติอย่าให้คำตอบสั้น ๆ อย่างน่าขันในภาษากอล์ฟกีดกันคุณจากการโพสต์คำตอบที่ยาวกว่าในภาษาที่คุณเลือก นี่ไม่ใช่กฎ แต่คำตอบของคุณจะได้รับดีกว่าถ้ามันมีลิงค์สำหรับทดสอบการแก้ปัญหาและคำอธิบายว่ามันทำงานอย่างไร ตัวอย่าง Input --> Output [10] --> 0 [-1, 0, 1] --> 2 [4, 7] --> 3 [6, 2, 3, …

7
สกปรกและไม่ซ้ำใคร
ในคำถามนี้ฉันจะพูดคุยเกี่ยวกับโปรแกรมเป็นสตริงนี่คือสตริงของไบต์ไม่ใช่ตัวอักษร การแสดงหรือแสดงผลลัพธ์ของโปรแกรมของคุณไม่สำคัญต่อความท้าทายนี้เพียงว่ามันจะปรากฏในหน่วยความจำอย่างไร โปรแกรมที่เก่าแก่เป็นโปรแกรมว่าเมื่อวิ่งไม่ได้ข้อผิดพลาด แต่มันจะเกิดข้อผิดพลาดเมื่อใดก็ตามที่ย่อยอย่างต่อเนื่องของขนาดที่ถูกลบออกSSSnnn1≤n&lt;|S|1≤n&lt;|S|1\leq n < \left|S\right| โปรแกรมสกปรกเป็นตรงกันข้ามมันเป็นโปรแกรมที่เมื่อรันจะเกิดข้อผิดพลาดอย่างไรก็ตามเมื่อใดก็ตามที่สตริงย่อยต่อเนื่องของขนาดโดยที่จะถูกลบออกก็ไม่ผิดพลาดSSS1 ≤ n &lt; | S |nnn1≤n&lt;|S|1≤n&lt;|S|1\leq n < \left|S\right| สำหรับความท้าทายนี้ข้อผิดพลาดคือเอาต์พุตที่ไม่ว่างเปล่าไปยัง STDERR ความท้าทายของคุณคือการเขียนโปรแกรมสกปรกที่ใช้ไบต์ที่ไม่ซ้ำกันให้มากที่สุด ซึ่งหมายความว่าคุณจะได้รับหนึ่งจุดสำหรับทุกไบต์ที่ไม่ซ้ำกันซึ่งปรากฏในรหัสของคุณด้วยคะแนนที่ใหญ่กว่า คะแนนสูงสุดคือ 256

6
การประมาณจำนวนจูบสองโหล
กำหนดตัวเลขตั้งแต่ 1 ถึง 24 ส่งออกหมายเลขจูบไปยังความรู้ที่ดีที่สุดในปัจจุบัน (บางหมายเลขจะมีเอาต์พุตที่ยอมรับได้มากกว่าหนึ่ง) ความรู้เกี่ยวกับรูปทรงเรขาคณิตนั้นไม่จำเป็นเนื่องจากผลลัพธ์ทั้งหมดมีอยู่ในรายการด้านล่าง จากหน้า Wikipedia เกี่ยวกับปัญหา Kissing Number : หมายเลขจูบถูกกำหนดให้เป็นจำนวนของหน่วยทรงกลมที่ไม่ทับซ้อนกันซึ่งสามารถจัดเรียงได้เพื่อให้แต่ละสัมผัสกับทรงกลมหน่วยที่กำหนด นั่นคือเมื่อกำหนดหนึ่งหน่วยทรงกลมจะมีอีกกี่หน่วยของทรงกลมที่สามารถสัมผัสได้โดยไม่ทับซ้อนกัน? คำถามจะถูกถามในพื้นที่มิติ N ซึ่งเป็นทรงกลมที่เข้าใจกันว่าเป็นทรงกลมมิติ N-1 ตัวอย่างเช่น: ในพื้นที่ 2 มิติวงกลมหน่วยสามารถสัมผัสวงกลมวงอื่น ๆ ได้ 6 วง ในพื้นที่ 3 มิติทรงกลมของหน่วยสามารถสัมผัสกับทรงกลมอีก 12 หน่วย หน้า Wikipedia แสดงค่าสำหรับพื้นที่ 1 ถึง 24 มิติ อย่างไรก็ตามสิ่งเหล่านี้บางอย่างยังไม่เป็นที่ทราบแน่ชัดดังนั้นจึงมีเพียงขอบเขตที่ต่ำและสูงเท่านั้น ตารางถูกสร้างขึ้นใหม่ที่นี่เพื่อที่จะคงที่ไม่ว่าในอนาคตจะแคบลงเนื่องจากการพิสูจน์ใหม่ โซลูชันจะถูกตัดสินเทียบกับตารางคงที่นี้แม้ว่าหน้า Wikipedia จะถูกแก้ไขในอนาคต ตารางขอบเขต Dimension Lower bound Upper bound …

30
เอาท์พุทที่มีความยาวเท่ากันเสมอ
ด้วยความท้าทายเช่นเอาท์พุทที่มีความยาวเท่ากันกับรหัสและสร้างผลลัพธ์ที่มีความยาวเป็นสองเท่าของรหัสฉันคิดว่าเป็นเรื่องท้าทาย แต่ก็คล้ายกัน ภารกิจคือสร้างเอาต์พุต มันอาจเป็นสตริงรายการของตัวละครหรืออะไรก็ตามที่เป็นรูปแบบเอาต์พุตเริ่มต้นของโปรแกรมของคุณ อย่างไรก็ตามเอาต์พุตของคุณจะต้องมีความยาวเท่ากันเสมอไม่ว่าอินพุตจะเป็นเท่าใด และที่สำคัญกว่าการส่งออกควรจะแตกต่างกันสำหรับปัจจัยการผลิตที่แตกต่างกัน อินพุต จำนวนเต็มเดียวnnnช่วงที่พิจารณาจากการเลือกภาษา หากภาษาของคุณมีจำนวนเต็มความยาวผันแปรช่วงคือ−231≤n&lt;231−231≤n&lt;231-2^{31} \leq n < 2^{31}วันที่ 31 เอาท์พุต สตริงหรือรายการของตัวละครหรือพิมพ์ไปยัง STDOUT หรือ STDERR คุณสามารถใช้หนึ่งในวิธีการเหล่านี้เท่านั้น เอาต์พุตควรมีความยาวเท่ากันโดยไม่คำนึงถึงอินพุต แต่ก็ขึ้นอยู่กับคุณที่จะกำหนดความยาวที่เป็น การส่งออกอาจไม่ประกอบด้วยอักขระหลัก0-9-หรือเครื่องหมายลบ เอาต์พุตควรถูกกำหนดไว้ คุณควรจะสามารถพิสูจน์ได้ว่าสำหรับทุกผลลัพธ์มีเพียงหนึ่งอินพุตที่เป็นไปได้ไม่ว่าจะโดยการพิสูจน์อย่างเป็นทางการการโต้แย้งหรือการค้นหาที่โหดร้าย นี่เป็นคำถามเกี่ยวกับการเล่นกอล์ฟดังนั้นควรกำจัดไบต์ที่ไม่เกี่ยวข้องออกไป ยินดีต้อนรับทุกภาษายิ่งดียิ่งขึ้น!

11
แสดงเปอร์เซ็นต์แบตเตอรี่ที่เหลืออยู่
แสดงประจุแบตเตอรี่ที่เหลืออยู่เป็นเปอร์เซ็นต์ของการชาร์จสูงสุด จำไว้ว่าถ้าคุณไม่สามารถเรียกใช้รหัสของคุณบนโทรศัพท์เครื่องคิดเลข ฯลฯ คุณอาจติดตั้งสภาพแวดล้อมของคุณบนแล็ปท็อปอย่างน้อย หากคุณไม่สามารถทำงานบนอุปกรณ์ที่มีแบตเตอรีได้อย่างน่าเสียดายภาษาของคุณจะไม่มีสิทธิ์เนื่องจากคุณไม่มีคุณค่าในการพิมพ์ คุณต้องแสดงผลลัพธ์บนหน้าจอ ในทางทฤษฎีแล้วมันควรจะเป็นเครื่องมือที่มีประโยชน์สำหรับผู้ใช้ในการตรวจสอบแบตเตอรี่ เปอร์เซ็นต์การเขียนแบตเตอรีลงในไฟล์เป็น clunky เกินไปทำให้ผู้ใช้ต้องตรวจสอบไฟล์ การแสดงบนหน้าจอเป็นส่วนหนึ่งของข้อกำหนดที่ไม่สามารถแทนที่ได้โดยค่าเริ่มต้น IO ที่กล่าวมาคุณสามารถสมมติว่าไม่มีสิ่งใดที่ทำให้ STDOUT ไม่สามารถแสดงบนหน้าจอได้ตามปกติ หากเปอร์เซ็นต์แบตเตอรี่จะแสดงบนหน้าจอตลอดเวลาโดยระบบปฏิบัติการเช่นบนโทรศัพท์หลายเครื่องนั่นไม่ได้หมายความว่าคุณจะมีวิธีแก้ปัญหาแบบศูนย์ไบต์ คุณต้องสมมติว่าไม่มีจอแสดงผลในตัวและแสดงเปอร์เซ็นต์แบตเตอรี่อีกครั้ง แก้ไข: กำลังเปิดรูปแบบเอาต์พุต คุณมีอิสระที่จะแสดงเพียงแค่ตัวเลขของเปอร์เซ็นต์หรือตัวเลขที่มีเอาต์พุตพิเศษบางส่วนเช่นกัน แก้ไข 2: ตัวเลขที่แสดงถึงเปอร์เซ็นต์จะต้องปรากฏในตำแหน่งที่ทราบภายในเอาต์พุตไม่เกิน 50 บรรทัดจากจุดสิ้นสุดของเอาต์พุตและตำแหน่งนั้นไม่ควรเปลี่ยนระหว่างการเรียกใช้ ตัวเลขที่แสดงถึงเปอร์เซ็นต์จะต้องแยกออกจากเอาต์พุตอื่นอย่างน้อยหนึ่งตัวที่ไม่ใช่ตัวเลขในแต่ละด้าน สำหรับการอ้างอิงนี่คือรูปแบบผลลัพธ์เก่าจากก่อนการเปลี่ยนแปลง: Remaining battery is ddd% หรือ Remaining battery is ddd percent
26 code-golf 

18
ทำให้รวมเป็น 10,000
เราเพิ่งจะถึงเกณฑ์ 10,000 คำถามเกี่ยวกับ PPCG ไชโย! มาฉลองกันด้วยความท้าทายที่เรียบง่าย อินพุต สองจำนวนเต็มและBทั้งใน[ 1..9999 ]เช่นว่า+ B &lt; 10000AAABBB[1..9999][1..9999][1..9999]A+B&lt;10000A+B&lt;10000A+B<10000 งาน งานของคุณคือการเพิ่มหนึ่งหลักเดียวกับหนึ่งของจำนวนเต็มเหล่านี้หรืออย่างใดอย่างหนึ่งเป็นเลขหลักเดียวทั้งสองคนดังกล่าวว่า+ B = 10000 หากเพิ่มตัวเลขลงในทั้งAและBก็ไม่จำเป็นต้องเป็นตัวเลขเดียวกันA+B=10000A+B=10000A+B=10000AAABBB สามารถเพิ่มตัวเลขใหม่ที่จุดเริ่มต้นที่จุดสิ้นสุดหรือที่ใดก็ได้ในช่วงกลางของจำนวนเต็มต้นฉบับ อย่างไรก็ตามคุณไม่สามารถเพิ่มศูนย์นำหน้าได้ ตัวอย่าง: สำหรับA=923A=923A=923การแปลงต่อไปนี้ถูกต้อง: 192392739238192392739238\color{red}1923\\92\color{red}73\\923\color{red}8 แต่สิ่งเหล่านี้ไม่ถูกต้อง : 0923109239427309231092394273\color{red}{0}923\\\color{red}{10}923\\9\color{red}{4}2\color{red}{7}3 เมื่อพิจารณาA=923A=923A=923และB=72B=72B=72มีวิธีแก้ปัญหาที่เป็นไปได้สองวิธี: 923 8 + 7 6 2 = 10,00092 7 3 + 72 7 = 10,0009238+762=100009273+727=10000923\color{red}8 + 7\color{red}62 = 10000\\92\color{red}73 + 72\color{red}7 = …

24
เปรียบเทียบหมายเลขรุ่น
เมื่อเราเผยแพร่ซอฟต์แวร์บางอย่างเราจะกำหนดหมายเลขเวอร์ชันให้กับซอฟต์แวร์นั้น และผู้ใช้อาจต้องการอัปเดตซอฟต์แวร์บางเวอร์ชันล่าสุด ดังนั้นจึงเป็นเวลาที่จะค้นหาว่าเวอร์ชันใดควรเป็นรุ่นใหม่ อินพุต ป้อนหมายเลขรุ่นสองเป็นสตริง ในบริบทของการท้าทายนี้เราสนับสนุนเฉพาะหมายเลขรุ่นที่มีตัวเลขบางตัวเชื่อมต่อกันด้วยจุด หมายเลขรุ่นคือสตริงซึ่งอาจมีตัวเลข ( 0~ 9) และจุด ( .) เท่านั้น จุดจะไม่เป็นตัวอักษรแรก / ตัวสุดท้ายของหมายเลขรุ่น จะต้องมีตัวเลขบางตัวระหว่างจุด อาจไม่มีจุดสองจุดต่อเนื่อง ตัวเลขทั้งหมดในหมายเลขรุ่นจะน้อยกว่า 2 16 เอาท์พุต เปรียบเทียบหมายเลขรุ่นที่ป้อนเข้าและเอาท์พุทว่าหมายเลขแรกมากกว่า / เท่ากับ / น้อยกว่าหมายเลขที่สอง คุณได้รับอนุญาตให้เลือกหนึ่งในงานนำเสนอต่อไปนี้: ใช้จำนวนบวก / ศูนย์ / จำนวนลบในขณะที่ศูนย์หมายถึงเท่ากับ; ใช้ค่าที่แตกต่างคงที่สามค่า เปรียบเทียบ คุณไม่จำเป็นต้องใช้อัลกอริทึมที่อธิบายไว้ในส่วนนี้ ข้อมูลที่คุณส่งนั้นถูกต้องตราบเท่าที่ผลลัพธ์เป็นผลลัพธ์เดียวกันกับอัลกอริทึมนี้ หมายเลขเวอร์ชันคือตัวเลขทศนิยมที่เชื่อมต่อกันด้วยจุด ก่อนอื่นเราแบ่งตัวเลขสองรุ่นเป็นอาร์เรย์ของตัวเลข การเติมจุดสิ้นสุดของอาร์เรย์ด้วยศูนย์เพื่อทำให้มีความยาวเท่ากัน เปรียบเทียบจากรายการแรกกับรายการสุดท้าย: หากรายการอาร์เรย์ทั้งสองแตกต่างกันจำนวนที่มากขึ้นหมายถึงหมายเลขรุ่นที่มากขึ้น หากเหมือนกันให้เปรียบเทียบรายการต่อไปนี้ต่อไป หากรายการทั้งหมดในอาร์เรย์มีค่าเท่ากันทั้งสองรุ่นจะเท่ากัน Testcases version1 version2 result 2 …

8
โจมตีควีนส์
ให้กระดานหมากรุกขนาด 8x8 มีค่าที่ต่างกันสองค่าโดยมีค่าหนึ่งเป็นสี่เหลี่ยมจัตุรัสที่ว่างเปล่าและอีกค่าหนึ่งเป็นราชินี ในตัวอย่างต่อไปนี้ฉันใช้ 0s เป็นสี่เหลี่ยมจัตุรัสที่ว่างเปล่าและ 1s เป็นควีน ตัวอย่างเช่น: ได้รับจาก 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 …

16
โล่กองทัพโรมัน
โพสต์ Sandbox (ถูกลบ) การก่อตัวของกองทัพโรมันที่โด่งดังไปทั่วโลก ในกองทหารโรมันเหล่านี้ก่อตัวเป็นรูปทรงเรขาคณิต (โดยปกติจะเป็นรูปสี่เหลี่ยมผืนผ้า) เพื่อปกป้องปีกและส่วนที่เหนือกว่าของมันโดยใช้โล่ของพวกเขา กองทหารที่อยู่ในตำแหน่งภายในครอบคลุมส่วนที่เหนือกว่าวางโล่ไว้เหนือหัวของพวกเขากองทหารที่อยู่ด้านข้างนั้นมีเกราะตั้งแต่สองโล่ขึ้นไปหนึ่งอันเพื่อปกป้องส่วนที่เหนือกว่าและหนึ่งหรือหลายโล่สำหรับปกป้องปีก เขามี 3 โล่ถ้ามีใครคนเดียวในขบวนเขามี 5 โล่ใช่ฉันรู้ว่ามันเป็นไปไม่ได้ที่มนุษย์จะมี 5 โล่ แต่อย่างใดพวกเขาก็ทำมัน ) การใช้รูปแบบนี้กองทหารโรมันทุกคนป้องกันตนเองและเป็นคู่ต่อสู้ที่ยากที่สุดในเวลานั้น ประวัติศาสตร์บอกว่ามีนายพลโรมันที่ระบุว่ารูปร่างที่ดีที่สุดคือรูปสี่เหลี่ยม (กองทหารจำนวนเท่ากันในแถวและคอลัมน์) ปัญหาคือการหาจำนวนการก่อตัว (และขนาด) ที่เขาควรแบ่งกองทัพของเขาเพื่อ: อย่าปล่อยกองทหารออกจากรูปแบบ (แม้ว่าเขาจะยอมรับกองทหารกองพลเดียว) ลดจำนวนโล่ที่ต้องการ โดยทั่วไปหลังจากทำการคำนวณและคำนวณทางคณิตศาสตร์แล้วเขาพบว่าวิธีที่ดีที่สุดในการบรรลุ 2 เงื่อนไขนี้คือเริ่มต้นด้วยสี่เหลี่ยมที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้จากนั้นทำซ้ำจนกว่าจะไม่มีกองทหารเหลืออยู่ ตัวอย่าง: หากกองทหาร 35 นายในกองทัพของเขาการก่อตัวประกอบด้วย กองทหารราบ 5x5 (นี่คือจัตุรัสที่ใหญ่ที่สุดเท่าที่จะเป็นไปได้) กับกองทหารที่เหลือ (10) ตาราง 3x3 กับกองทหารที่เหลือ (1) ตาราง 1x1 ในตอนท้ายมันจะมีลักษณะดังนี้: 5x5 * * * * …
26 code-golf  matrix 

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