คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

14
ร้อยละเข้ารหัสสตริง
บทนำ อย่างที่คุณบางคนอาจทราบ URL มีรายการอักขระที่ทำสิ่งพิเศษ ยกตัวอย่างเช่น/ตัวอักษรแยกชิ้นส่วนของ URL และ?, &และ=ตัวอักษรที่ใช้ในการส่งผ่านพารามิเตอร์แบบสอบถามไปยังเซิร์ฟเวอร์ อันที่จริงมีตัวละครมากมายที่มีฟังก์ชั่นพิเศษ: $&+,/:;=?@. เมื่อคุณจำเป็นต้องใช้ตัวอักษรเหล่านี้ใน URL สำหรับเหตุผลอื่นใดนอกเหนือจากฟังก์ชั่นพิเศษที่คุณต้องทำสิ่งที่เรียกว่าการเข้ารหัสเปอร์เซ็นต์ การเข้ารหัสเป็นเปอร์เซ็นต์คือเมื่อคุณใช้ค่าเลขฐานสิบหกของตัวละครและเติม%อักขระไปที่จุดเริ่มต้นของอักขระ ยกตัวอย่างเช่นตัวละคร?จะถูกเข้ารหัสเป็น%3Fและตัวละครจะถูกเข้ารหัสเป็น& %26ใน URL โดยเฉพาะสิ่งนี้จะช่วยให้คุณสามารถส่งอักขระเหล่านี้เป็นข้อมูลผ่าน URL โดยไม่ทำให้เกิดปัญหาในการแยกวิเคราะห์ ความท้าทายของคุณคือการใช้สายอักขระและเข้ารหัสเปอร์เซ็นต์อักขระทั้งหมดที่จำเป็นต้องเข้ารหัส ความท้าทาย คุณจะต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้ในสายอักขระเดียวซึ่งประกอบด้วยอักขระที่มี codepoints 00-FF (ASCII และอักขระ ASCII เพิ่มเติม) จากนั้นคุณจะต้องส่งออกหรือส่งกลับสตริงเดียวกันโดยมีการเข้ารหัสเปอร์เซ็นต์อักขระแต่ละตัวหากจำเป็น บิวด์อินที่ทำให้งานนี้สำเร็จไม่ได้รับอนุญาตและไม่เป็นช่องโหว่มาตรฐาน สำหรับการอ้างอิงนี่คือรายการของตัวละครทุกตัวที่ต้องเข้ารหัสเป็นเปอร์เซ็นต์: อักขระควบคุม (Codepoints 00-1F และ 7F) อักขระ ASCII เพิ่มเติม (Codepoints 80-FF) อักขระที่จองไว้ ( $&+,/:;=?@เช่น codepoints 24, 26, 2B, 2C, …
14 code-golf  string 

8
ความเท่าเทียมกันของการเปลี่ยนแปลง
พื้นหลัง ความเท่าเทียมกันของการเปลี่ยนแปลง , ตามที่กำหนดโดยวิกิพีเดียเป็นดังนี้ เครื่องหมายหรือการลงลายมือชื่อของการเปลี่ยนแปลงσนั้นแทน sgn (σ) และกำหนดให้เป็น +1 ถ้าσคือ even และ −1 ถ้าσเป็นเลขคี่ เครื่องหมายของการเปลี่ยนแปลงสามารถแสดงอย่างชัดเจนว่า sgn (σ) = (−1) ^ N (σ) โดยที่ N (σ) คือจำนวนผู้รุกรานในσ อีกทางเลือกหนึ่งสัญญาณของการเปลี่ยนแปลงσสามารถกำหนดได้จากการสลายตัวลงในผลิตภัณฑ์ของ transpositions เป็น sgn (σ) = (−1) ^ m โดยที่ m คือจำนวน transpositions ในการย่อยสลาย สำหรับคนที่ไม่ชอบซุปอักษรกรีกในคณิตศาสตร์ของพวกเขาฉันจะลองและทำให้คำจำกัดความง่ายขึ้นด้วยตัวอย่าง (เช่นขโมยมาจากวิกิพีเดีย) ตัวอย่าง พิจารณาอาร์เรย์การป้อนข้อมูลและการเปลี่ยนแปลงของมันสมมติว่า{1, 2, 3, 4, 5} {3, 4, …

2
คุณกำลังรออะไรอยู่? (แก้ปัญหาไพ่นกกระจอก)
ขอบคุณไอเดียที่ @ MartinBüttnerจากการสนทนาในแชท Mahjongเป็นเกมไพ่ที่ได้รับความนิยมอย่างมากในเอเชีย โดยทั่วไปจะเล่นกับผู้เล่นสี่คนและเป้าหมายของเกมคือการเป็นคนแรกที่เล่นไพ่ที่ถูกต้องโดยใช้มือ สำหรับความท้าทายนี้เราจะพิจารณาเกมที่เรียบง่าย - PPCG ไพ่นกกระจอก ใน PPCG ไพ่นกกระจอก, มีสามชุด - m, pและs- และกระเบื้องที่มีเลขจากไป1 9มีสี่สำเนาของไพ่แต่ละใบและไพ่จะถูกแทนด้วยหมายเลขตามด้วยชุดไพ่ (เช่น3m, 9s) ไพ่นกกระจอก PPCG ที่เสร็จสมบูรณ์แล้วประกอบด้วยสี่ชุดสามชุดและคู่รวมเป็น 14 แผ่น ชุดของสามสามารถเป็นได้ทั้ง: ไพ่สามใบเดียวกัน (เช่น4s 4s 4sแต่ไม่ใช่4m 4p 4s) หรือ ลำดับของไพ่สามติดต่อกันในชุดเดียวกัน (เช่น1s 2s 3sหรือ6p 7p 8pแต่ไม่3s 4m 5mหรือ3p 5p 7p) ลำดับไม่ห่อ (ดังนั้นจึง9m 1m 2mไม่ถูกต้อง) คู่คือไพ่สองใบที่เหมือนกัน (เช่น5s 5s) …
14 code-golf  game 

8
เครื่องหมายดาวของคุณคืออะไร?
จงเขียนโปรแกรมที่ใช้วันเดือนปีเกิด (เดือนและวันของเดือน) เป็น input และผลที่สอดคล้องกันลงชื่อเข้าใช้องค์ประกอบและคุณภาพของการราศีตะวันตก สำหรับจุดประสงค์ของการท้าทายนี้สิ่งเหล่านี้ถูกกำหนดไว้อย่างชัดเจนในตารางในหน้าวิกิพีเดียที่เชื่อมโยง: Sign Date Range Element Quality Aries March 21 to April 19 Fire Cardinal Taurus April 20 to May 20 Earth Fixed Gemini May 21 to June 21 Air Mutable Cancer June 22 to July 22 Water Cardinal Leo July 23 to August 22 Fire …

24
แสดงประโยคตามลำดับตัวอักษร
เขียนโปรแกรมที่รับสตริงและส่งออกอักขระทั้งหมดตามลำดับตัวอักษร ช่องว่างและสัญลักษณ์สามารถละเว้นหรือลบได้ แต่ตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กจะต้องอยู่ในกรณีเดียวกัน ตัวอย่างอินพุต: Johnny walked the dog to the park. ตัวอย่างผลลัพธ์ aaddeeeghhhJklnnoooprtttwy กฎ: •ภาษาใด ๆ •รหัสที่สั้นที่สุดชนะ
14 code-golf 

11
N Doors, K Monkeys
มีประตู N และลิง K ในขั้นต้นทุกประตูถูกปิด รอบที่ 1:ลิงตัวที่ 1 เข้าชมทุกประตูและสลับประตู (ถ้าประตูปิดมันจะเปิดออกถ้ามันเปิดอยู่ก็จะปิด) รอบ 2 : ลิงตัวที่ 1 เข้าชมทุกประตูและสลับประตู จากนั้นลิงตัวที่สองจะไปที่ประตูทุกบานและสลับประตู . . . . . . รอบ k: ลิงตัวที่ 1 เข้าชมทุกประตูและสลับประตู . . . . . . . . . ลิง kth เข้าเยี่ยมชมทุก ๆ ประตู kth และสลับประตู อินพุต: NK (คั่นด้วยช่องว่างเดียว) เอาท์พุท: หมายเลขประตูที่เปิดอยู่โดยคั่นด้วยช่องว่างเดียว ตัวอย่าง …

2
ฟังก์ชันตัวแปลงตัวเลขโรมัน
สร้างฟังก์ชั่นที่สั้นที่สุดเพื่อแปลงสตริงของตัวเลขโรมันให้เป็นจำนวนเต็ม กฎสำหรับตัวอักษรแต่ละตัวสามารถพบได้ที่หน้าวิกิพีเดีย ตัวอักษรที่สูงกว่า 1,000 จะมีเครื่องหมายวงเล็บล้อมรอบพวกเขาเพื่อให้สัญญาณที่สูงกว่า ที่ต้องการ: ต้องแปลงตัวเลขโรมัน 1 ถึง 500,000 ต้องเสร็จในเวลาไม่ถึงนาที ไม่ใช้ฟังก์ชันในตัวที่สามารถให้ประโยชน์ (เช่น: ฟังก์ชันที่แปลงตัวเลขโรมันเป็นจำนวนเต็ม) เป็นฟังก์ชั่น ฟังก์ชันไม่จำเป็นต้องรองรับเศษส่วน อินพุตที่ไม่ถูกต้องควรส่งคืนหมายเลข 0 ฟังก์ชั่นที่สั้นที่สุดชนะ ในกรณีที่เสมอกันผู้ที่มีคะแนนมากที่สุดชนะ กรณีทดสอบ อินพุต III เอาท์พุต 3 อินพุต IIII เอาท์พุต 0 อินพุต XVI เอาท์พุต 16 อินพุต (C)(D)(L)MMI เอาท์พุต 452001

5
การพิมพ์ แต่ไปทางซ้าย [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 เดือนที่ผ่านมา พื้นหลัง คุณได้รับมอบหมายให้จดบันทึกการประชุม คุณเริ่มพิมพ์บน Google Doc ของคุณ แต่คุณไม่มีเวลาเพียงพอในการประชุมเพื่อดูแป้นพิมพ์ของคุณในขณะที่คุณพิมพ์ โชคดีสำหรับคุณคุณสามารถพิมพ์ได้โดยไม่ต้องดูที่คีย์บอร์ดของคุณ หลังการประชุมคุณตระหนักดีว่าทุกสิ่งที่คุณพิมพ์เป็นกุญแจสำคัญทางซ้าย ความท้าทาย สำหรับความท้าทายนี้คุณจะใช้ตัวอักษรตัวเลขและแป้นเว้นวรรคของรูปแบบแป้นพิมพ์ QWERTY เมื่อได้รับการป้อนข้อความ (จากวิธีการอินพุตมาตรฐาน) ให้ส่งออกข้อความผลลัพธ์โดยที่อักขระทุกตัวถูกย้ายไปทางซ้ายบนคีย์บอร์ด สำหรับส่วนใหญ่ของตัวอักษรที่เพียงแค่มองไปที่ตัวอักษรและแปลตัวอักษรไปทางซ้าย ( cกลายเป็นx, tกลายเป็นr, ฯลฯ ) สำหรับจดหมายqให้แปลเป็นอักขระแท็บตัวอักษร ( \t) สำหรับจดหมายaให้เปิดใช้งานตัวล็อคแคปดังนั้นการโอนเป็นตัวพิมพ์ใหญ่ของสตริงที่เหลือจะถูกย้อนกลับ สำหรับตัวอักษรzพิมพ์ใหญ่ตัวอักษรถัดไปในสตริง ไม่จำเป็นต้องแปลสำหรับแถบพื้นที่ รักษาความเป็นตัวพิมพ์ใหญ่ขณะแปลและคำนึงถึงตัวพิมพ์ใหญ่ (ถ้าเปิดใช้งานตัวล็อคตรวจสอบให้แน่ใจว่าตัวพิมพ์ใหญ่อยู่ตรงกันข้าม) อักขระทั้งหมดในสตริงอินพุตจะเป็นตัวอักษรตัวเลขหรือช่องว่าง ไม่สามารถใช้เครื่องหมายวรรคตอนหรืออักขระอื่น ๆ ได้ กรณีทดสอบ \t เป็นอักขระแท็บตัวอักษร Hello world -> Gwkki qieks Code Golf …

30
ผลิตภัณฑ์คาร์ทีเซียนของสองรายการ
งาน ให้รายชื่อตัวละครสองตัวส่งออกผลิตภัณฑ์คาร์ทีเซียนของพวกเขานั่นคือรายการของการจับคู่ของตัวอักษรแต่ละตัวจากรายการแรกที่มีตัวอักษรแต่ละตัวจากรายการที่สอง ตัวอย่าง "123456"และ"abcd"ให้: [["1","a"],["1","b"],["1","c"],["1","d"],["2","a"],["2","b"],["2","c"],["2","d"],["3","a"],["3","b"],["3","c"],["3","d"],["4","a"],["4","b"],["4","c"],["4","d"],["5","a"],["5","b"],["5","c"],["5","d"],["6","a"],["6","b"],["6","c"],["6","d"]] อินพุต รายการอักขระหรือสตริงสองรายการ อักขระที่ใช้จะเป็นตัวอักษรa-z, A-Z, 0-9และตัวเลขและอักขระสามารถเกิดขึ้นได้หลายครั้งและในอินพุตทั้งสองในเวลาเดียวกัน เอาท์พุต ผลิตภัณฑ์คาร์ทีเซียนของรายการอินพุต นั่นคือรายการของแต่ละคู่ที่เป็นไปได้สั่งตัวละครจากรายการแรกและตัวละครจากรายการที่สอง แต่ละคู่เป็นรายการหรือสตริงหรือคล้ายกันของตัวละครสองตัวหรือสองสายยาวหนึ่ง ความยาวของเอาต์พุตจะเท่ากับผลคูณของความยาวของอินพุต คู่จะต้องอยู่ในลำดับ; รายการแรกอักขระแรกของรายการแรกกับรายการแรกของรายการที่สองตามด้วยการจับคู่ทั้งหมดของอักขระแรกของรายการแรก คู่สุดท้ายประกอบด้วยอักขระตัวสุดท้ายของรายการแรกพร้อมกับอักขระตัวสุดท้ายของรายการที่สอง ผลลัพธ์จะต้องเป็นรายการคู่เรียบ ไม่ใช่เมทริกซ์ 2D ที่คู่ถูกจัดกลุ่มตามองค์ประกอบที่หนึ่งหรือสอง กรณีทดสอบ inputs output "123456", "abcd" [["1","a"],["1","b"],["1","c"],["1","d"],["2","a"],["2","b"],["2","c"],["2","d"],["3","a"],["3","b"],["3","c"],["3","d"],["4","a"],["4","b"],["4","c"],["4","d"],["5","a"],["5","b"],["5","c"],["5","d"],["6","a"],["6","b"],["6","c"],["6","d"]] "abc", "123" [["a","1"],["a","2"],["a","3"],["b","1"],["b","2"],["b","3"],["c","1"],["c","2"],["c","3"]] "aa", "aba" [["a","a"],["a","b"],["a","a"],["a","a"],["a","b"],["a","a"]]

13
การสร้างกริดเรือกวาดทุ่นระเบิด
Minesweeperเป็นเกมลอจิกที่พบในระบบปฏิบัติการส่วนใหญ่ เป้าหมายของเกมคือการกำหนดตำแหน่งของระเบิดบนกริดให้ตัวเลขที่ระบุจำนวนเหมืองรอบ ๆ จุดนั้น เมื่อกำหนดขนาดกริดและชุดของเหมืองให้สร้างกริด Minesweeper สำหรับชุดของเหมืองนั้น อินพุต:จำนวนเต็มสองจำนวนที่ระบุขนาดของกริดและจำนวนเต็มที่ไม่ได้กำหนดซึ่งระบุตำแหน่งของทุ่น ตำแหน่งจะได้รับเป็น (ตำแหน่งคอลัมน์ตำแหน่งแถว) และดัชนีจะเริ่มที่แถว 1 เอาต์พุต:ตาราง Minesweeper xหากมีการทำเหมืองแร่รอบบล็อกไม่มีพิมพ์ สำหรับแต่ละแถวใหม่ให้พิมพ์บรรทัดใหม่ *เอาท์พุทโปรดเหมืองทั้งหมดเป็นเครื่องหมายดอกจัน อย่าเว้นช่องว่างระหว่างค่าในแถวเมื่อพิมพ์ กรณีทดสอบ: อินพุต "5 5 1 3 3 5 2 4": xxxxx 11xxx *21xx 2*21x 12*1x อินพุต "3 4 3 1 1 4 2 3 3 2": x2* 13* 2*2 *21 รหัสที่สั้นที่สุดชนะ

8
การรวมภายใต้การเป็นตัวแทนของ Zeckendorf
ทฤษฎีบทของ Zeckendorfแสดงให้เห็นว่าจำนวนเต็มบวกทุกตัวสามารถแสดงอย่างไม่ซ้ำกันได้ว่าเป็นผลรวมของตัวเลขฟีโบนักชีที่ไม่ได้อยู่ติดกัน ในการท้าทายนี้คุณต้องคำนวณผลรวมของตัวเลขสองตัวในการเป็นตัวแทนของ Zeckendorf ให้ F nเป็นหมายเลข Fibonacci ที่n F 1 = 1, F 2 = 2 และ สำหรับทุกk > 2, F k = F k - 1 + F k - 2 การแทน Zeckendorf Z ( n ) ของจำนวนเต็มไม่เป็นลบnคือชุดของจำนวนเต็มบวกเช่นนั้น n = Σ ฉัน ∈ Z ( n ) F …

6
ทฤษฎีบทของไรลีย์
S. Ryley พิสูจน์ทฤษฎีบทต่อไปนี้ใน 1,825: จำนวนตรรกยะทุกตัวสามารถแสดงเป็นผลรวมของสามลูกบาศก์เชิงเหตุผล ท้าทาย ได้รับบางส่วนจำนวนจริงr∈Qr∈Qr \in \mathbb Q หาหมายเลขสามเหตุผล, ข, ค∈ Qเช่นว่าR = 3 + ข3 + ค 3a,b,c∈Qa,b,c∈Qa,b,c \in \mathbb Qr=a3+b3+c3.r=a3+b3+c3.r= a^3+b^3+c^3. รายละเอียด การส่งข้อมูลของคุณควรจะสามารถคำนวณวิธีแก้ปัญหาสำหรับอินพุตที่ให้เวลาและหน่วยความจำได้เพียงพอนั่นหมายความว่าการมีอินสแตนซ์ 32 บิตสองตัวที่intแสดงเศษส่วนไม่เพียงพอ ตัวอย่าง 305230717280142=39829338766813−6366005495153−39775055545463=607029013173+239612924543−619227128653=(12)3+(13)3+(14)3=03+03+03=(12)3+(23)3+(56)3=(1810423509232)3+(−1495210609)3+(−25454944)330=39829338766813−6366005495153−3977505554546352=607029013173+239612924543−6192271286533071728=(12)3+(13)3+(14)30=03+03+031=(12)3+(23)3+(56)342=(1810423509232)3+(−1495210609)3+(−25454944)3 \begin{align} 30 &= 3982933876681^3 - 636600549515^3 - 3977505554546^3 \\ 52 &= 60702901317^3 + 23961292454^3 - 61922712865^3 \\ \frac{307}{1728} &= …

18
วอล์กเกอร์เข้าร่วม! - โลโก้อลันวอล์คเกอร์
คุณอาจรู้จัก Alan Walker จากเพลงยอดนิยม Faded ของเขา ตอนนี้ "ผู้ติดตาม" ของเขาเรียกว่าวอล์กเกอร์และมีโลโก้นี่เป็นเวอร์ชั่นที่เรียบง่าย: \\ \\ //\\ \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // \\ // //\\ \\ // \\// // \\ \\// // // \\ \\ //\\ // \\ //\\ \\// …

7
รหัส Huffman!
มิฉะนั้นเขาจะโกรธและพองและระเบิดบ้านของคุณ! นั่นไม่เกี่ยวข้องอย่างสมบูรณ์ ความท้าทายนี้เป็นจริงเกี่ยวกับHuffman การเข้ารหัส ส่วนสำคัญของมันคือความถี่ของตัวละครในข้อความที่กำหนดจะถูกใช้เพื่อทำให้การแสดงสั้นลง กล่าวอีกนัยหนึ่งสมมติว่าตัวอักษรของเราaผ่านไปzและผ่านช่องว่าง นั่นคือ 27 ตัวอักษร แต่ละรหัสสามารถเข้ารหัสได้ใน 5 บิตเพราะ 5 บิตมีพื้นที่เพียงพอสำหรับ 32 อักขระ อย่างไรก็ตามในหลาย ๆ สถานการณ์ (เช่นภาษาอังกฤษหรือภาษาทั่วไป) ตัวละครบางตัวจะบ่อยกว่าตัวละครอื่น ๆ เราสามารถใช้บิตน้อยลงสำหรับอักขระบ่อยขึ้นและ (อาจ) บิตเพิ่มเติมสำหรับอักขระบ่อยน้อย ถูกต้องแล้วมีการประหยัดโดยรวมในจำนวนบิตและข้อความต้นฉบับยังคงสามารถสร้างขึ้นใหม่ได้โดยไม่ซ้ำกัน ลอง "คำถามนี้เกี่ยวกับการเข้ารหัส huffman" เป็นตัวอย่าง ข้อความนี้มีความยาว 37 ตัวอักษรซึ่งปกติจะเป็น 37 * 8 = 296 บิตโดยปกติจะมีเพียง 37 * 5 = 185 บิตหากเราใช้ 5 บิตสำหรับแต่ละอักขระเท่านั้น เก็บไว้ในใจ นี่คือตาราง (sorta) …

4
การกระจายที่นั่งรัฐสภา
บทนำ ในการเลือกตั้งทั่วไปเราต้องการคำนวณราคาคงที่ต่อที่นั่งของรัฐสภา ซึ่งหมายความว่าสำหรับN >= 0ที่นั่งที่จะแจกจ่ายและรายชื่อnsคะแนนต่อปาร์ตี้เราต้องการค้นหาหมายเลขdดังกล่าว sum(floor(n/d) for n in ns) == N เพื่อให้สิ่งต่าง ๆ น่าสนใจ (และเหมือนโลกแห่งความเป็นจริง) เราได้เพิ่มข้อเท็จจริงสองประการ: ทั้งสองฝ่ายสามารถรวมตัวกันเป็น 'พันธมิตร' เพื่อให้ที่นั่งได้รับ 'พันธมิตร' ด้วยคะแนนรวมสำหรับทุกฝ่ายในนั้น จากนั้นที่นั่งที่ 'พันธมิตร' ได้รับจะถูกแยกออกระหว่างฝ่ายในแบบเดียวกัน (ค้นหาตัวหาร ฯลฯ ) ปาร์ตี้ที่ไม่ผ่านการลงคะแนนเสียงในระดับที่แน่นอน (เช่น 3.25%) จะได้รับ 0 ที่นั่งโดยอัตโนมัติและการโหวตจะไม่นับสำหรับ 'การรวม' ท้าทาย คุณจะได้รับ: รายการของรายการแต่ละรายการซ้อนกันประกอบด้วยจำนวนเต็ม (จำนวนโหวต) และมีความยาว 1 สำหรับงานปาร์ตี้เดี่ยวหรือยาว 2 สำหรับ 'พันธมิตร' เปอร์เซ็นต์การโหวตน้อยที่สุด (aka "บาร์" สำหรับ "เขื่อนกั้นน้ำ") …

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