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

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

29
ทำซ้ำองค์ประกอบ Nth
เราไม่ได้มีคำถามเกี่ยวกับสตริงสักระยะหนึ่ง (เพื่อให้แม่นยำ 5 วัน) ดังนั้นไปกันเลย กำหนดสตริงsและจำนวนเต็มบวกnใช้ทุกnองค์ประกอบของ TH s, ทำซ้ำครั้งและนำมันกลับเข้ามาns ตัวอย่างเช่นถ้าn = 3และทุกตัวละครที่สามคือs = "Hello, World!" Hl r!แล้วคุณทำซ้ำตัวละครแต่ละตัวครั้งเพื่อการผลิตn HHHlll rrr!!!จากนั้นคุณแทนที่ตัวอักษรต้นฉบับด้วยเวอร์ชันที่ทำซ้ำเพื่อผลิตผลิตภัณฑ์ขั้นสุดท้ายของHHHellllo, Worrrld!!! คุณต้องทำภารกิจนี้ให้สำเร็จด้วยรหัสที่สั้นที่สุดที่เป็นไปได้ในภาษาของคุณ! กฎระเบียบ นี่คือรหัสกอล์ฟเพื่อให้โค้ดที่สั้นที่สุดเป็นไบต์ชนะ nมีการรับประกันว่าจะมีขนาดเล็กกว่าความยาวsและมากกว่า 0 อักขระตัวแรกsคือตำแหน่งที่ใช้nอักขระ th และนำมาใช้ซ้ำหลายnครั้ง sจะประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้น (รหัสชี้0x20 (space)ไปที่0x7E (~)) กรณีทดสอบ s, n => output "Hello, World!", 3 => "HHHellllo, Worrrld!!!" "Code golf", 1 => "Code …
18 code-golf  string 

18
วงจรคณิตศาสตร์ย้อนกลับ
แรงบันดาลใจจากสิ่งนี้ ในความท้าทายที่เชื่อมโยงเราจะขอให้เพิ่มองค์ประกอบของต้นฉบับและสิ่งที่ตรงกันข้ามของอาร์เรย์อินพุต ในความท้าทายนี้เราจะทำให้มันยากขึ้นเล็กน้อยโดยการแนะนำการดำเนินการทางคณิตศาสตร์ขั้นพื้นฐานอื่น ๆ รับอาร์เรย์ของจำนวนเต็มวนไปเรื่อย ๆ โดย+, *, -, //, %, ^ที่การ//หารจำนวนเต็มและ^เลขชี้กำลังขณะที่ใช้มันกับด้านหลังของอาร์เรย์ หรือกล่าวอีกนัยหนึ่งให้ใช้หนึ่งในฟังก์ชั่นด้านบนกับแต่ละองค์ประกอบของอาเรย์โดยอาร์กิวเมนต์ที่สองนั้นเป็นสิ่งที่ตรงกันข้ามกับอาเรย์ สิ่งนี้อาจยังคงสับสนดังนั้นให้ลองทำตามตัวอย่าง Input: [1, 2, 3, 4, 5, 6, 7, 8, 9] Reverse: [9, 8, 7, 6, 5, 4, 3, 2, 1] [ 1, 2, 3, 4, 5, 6, 7, 8, 9] Operand: + * - / % …

30
ฉันเป็นนักกอล์ฟหรือไม่?
ความหมายและกฎ อาร์เรย์ golfyเป็นอาร์เรย์ของจำนวนเต็มซึ่งแต่ละองค์ประกอบสูงกว่าหรือเท่ากับค่าเฉลี่ยเลขคณิตขององค์ประกอบก่อนหน้านี้ทั้งหมด งานของคุณคือการตรวจสอบว่าอาร์เรย์ของจำนวนเต็มบวกที่กำหนดเป็นอินพุตมีค่าหรือไม่ คุณไม่จำเป็นต้องจัดการกับรายการที่ว่างเปล่า ช่องโหว่เริ่มต้นใช้ มาตรฐานอินพุตและเอาต์พุตวิธีใช้ คุณสามารถเลือกสองค่าที่ไม่ว่างเปล่าที่แตกต่างกัน พวกเขาจะต้องสอดคล้องและต้องปฏิบัติตามกฎการตัดสินใจปัญหาอื่น ๆ ทั้งหมด นี่คือรหัส - กอล์ฟรหัสที่สั้นที่สุดในแต่ละภาษาชนะ! กรณีทดสอบ & ตัวอย่าง ตัวอย่างเช่นอาร์เรย์ต่อไปนี้: [1, 4, 3, 8, 6] Array Array Array Array Array Array Arsenal Array Array Array Array Array Array for Array Of Array Array Arsenal Array Array Array Array Array Array Array Array …

1
ห้องกระจก
(ความท้าทายนี้คล้ายกันมาก แต่ความท้าทายในปัจจุบันมีภาวะแทรกซ้อนเพิ่มเติม) ลองนึกภาพห้อง 2 มิติที่ผนังถูกชุบด้วยกระจกแบน ทันใดนั้นแสงไฟก็พุ่งเข้ามาในห้องซึ่งเป็นส่วนหนึ่งของกำแพงที่หายไป! แสงไฟเต้นรำไปรอบ ๆ ห้องรับแสงสะท้อนจากผนังกระจกและในที่สุดก็ออกจากห้องอีกครั้ง ลอจิก คุณจะได้รับ 5 ตัวแปร: W, H, X, YและZ ตอนนี้พวกเขาหมายถึงอะไร W, H คือขนาดของห้อง (รวมถึงกำแพง) โดย W คือความกว้างและ H เป็นความสูง X, Y เป็นพิกัดที่กำแพงมีรูอยู่ คุณสามารถสันนิษฐานได้ว่าสิ่งนี้อยู่บนกระเบื้องผนังเสมอ พิกัดนั้นเป็นแบบ 0 โดยที่แกน X ชี้ไปทางขวาและแกน Y ชี้ลง Z เป็นตัวเดียวที่เป็นตัวแทนของทิศทางที่แสงตกเข้ามาในห้องอย่างใดอย่างหนึ่งหรือ\ / ห้องจะต้องสร้างขึ้นจากตัวละครต่อไปนี้: | สำหรับผนังแนวนอน - สำหรับผนังแนวตั้ง + สำหรับมุม ตัวอย่าง: (W …

19
เมทริกซ์ที่มี 1 ถึง L (n) ในคอลัมน์ n ทั้งหมด
ท้าทาย: ใช้รายการLที่มีจำนวนเต็มบวกเป็นอินพุต: 3 5 2 1 6 และสร้างเมทริกซ์โดยที่คอลัมน์ n'th มีเวกเตอร์1: L (n)โดยที่แถวที่สั้นกว่าจะถูกเติมด้วยศูนย์ กรณีทดสอบ: 3 5 2 1 6 ----------------- 1 1 1 1 1 2 2 2 0 2 3 3 0 0 3 0 4 0 0 4 0 5 0 0 5 0 0 0 0 6 1 …
18 code-golf  matrix 

1
การเชื่อมต่อผู้ใช้ Ascii
ในความท้าทายนี้เราสร้างส่วนต่อประสานผู้ใช้ Ascii +----------------------+ |+-----------++-------+| ||<- Previous||Next ->|| |+-----------++-------+| |== The title == | | | |Lorem ipsum dolor | |sit amet... | |+--------------+ | ||Post a comment| | |+--------------+ | |+-----------------+ | ||User X commented:| | || | | ||This is amazing! | | |+-----------------+ | |+-----------------+ | ||User Y …

28
เมทริกซ์ในช่วง
ความท้าทาย รับn>0เอาท์พุทจำนวนเต็มn+1 X n+1เมทริกซ์ที่มีจำนวนเต็มทั้งหมดจาก1ไป2nตามที่แสดงในการทดสอบกรณีร้อง กรณีทดสอบ n=1 1 2 2 2 n=2 1 2 4 2 3 4 4 4 4 n=5 1 2 3 4 5 10 2 3 4 5 6 10 3 4 5 6 7 10 4 5 6 7 8 10 5 6 7 8 9 …

12
ฐาน 97 ทั้งหมดของคุณเป็นของเรา
ภาษาการเขียนโปรแกรมหลายภาษาเขียนขึ้นโดยใช้ ASCII, แท็บและการขึ้นบรรทัดใหม่ อักขระ 97 ตัวเหล่านี้จะถูกเก็บไว้ในไบต์ 8 บิต (ซึ่งจริง ๆ แล้วสามารถเก็บอักขระที่แตกต่างกัน 256 ตัว!) ซึ่งไม่มีประสิทธิภาพอย่างยิ่งยวด - โดยเฉพาะอย่างยิ่งในการเล่นโค๊ดกอล์ฟ ในการท้าทายนี้คุณจะสามารถลดคะแนนของคุณโดยใช้การแปลงฐาน ท้าทาย โปรแกรมของคุณ / ฟังก์ชั่นใช้เวลาสตริงหรือตัวอักษรอาร์เรย์เป็น input ซึ่งมันก็ตีความเป็นฐาน-97จำนวน จากนั้นจะแปลงเป็นตัวเลข ฐาน 256และนับจำนวนสัญลักษณ์ (เช่นไบต์) ที่จำเป็นสำหรับแสดงหมายเลขนี้ จำนวนนี้จะเป็นค่าผลลัพธ์ / ผลตอบแทนของโปรแกรม / ฟังก์ชั่นของคุณ ตัวอย่างง่ายๆโดยใช้ base-2 และ base-10 (ไบนารีและทศนิยม): หากอินพุตคือ10110เอาต์พุตจะเป็น 2 ตั้งแต่ 10110 2 = 22 10 (ตัวเลขสองหลักที่จำเป็นในการแทนเอาต์พุต) ในทำนองเดียวกัน 1101 2กลายเป็น …

19
ความแตกต่างของ MaxMin Divisor Pairs (DMDP)
พูดคุยเกี่ยวกับตัวหาร ... ออกจากสี่เหลี่ยมที่สมบูรณ์แบบ (สักครู่) จำนวนเต็มบวกทั้งหมดสามารถแสดงเป็นผลคูณของตัวหาร 2 ตัวอย่างด่วนสำหรับ126: นี่คือตัวหารทั้งหมดของ126 ในขณะที่คุณสามารถเห็นตัวหารทั้งหมดสามารถจับคู่ได้ นี่คือสิ่งที่เราจะเรียกว่าDivisor Pairs : [1, 126], [2, 63], [3, 42], [6, 21], [7, 18], [9, 14] สำหรับความท้าทายนี้เราจะต้องมีเพียงคู่สุดท้ายของรายการนี้ (ซึ่งเป็นคู่ศูนย์ของภาพ): [9,14]เราจะเรียกคู่นี้MaxMin หารคู่ ความแตกต่างของ MaxMin Divisor Pair (DMDP)คือความแตกต่างของสององค์ประกอบของคู่ซึ่งเป็น[9,14]=5 อีกตัวอย่าง544หนึ่ง ตัวหารคือ: [1, 2, 4, 8, 16, 17, 32 , 34, 68, 136, 272, 544] และDMDP (544) …

21
เอาท์พุทตำแหน่งแนวทแยงของฉันกำลังสอง
กำหนดตัวเลขnให้เอาท์พุทรายการที่เรียงลำดับแล้วของดัชนีที่อิง 1 ที่ตกลงบนเส้นทแยงมุมของn*nเมทริกซ์จตุรัส ตัวอย่าง: สำหรับอินพุตของ3: สี่เหลี่ยมจัตุรัสจะเป็น: 1 2 3 4 5 6 7 8 9 ตอนนี้เราเลือกดัชนีทั้งหมดที่แสดงโดย\, /หรือX( #หรือตำแหน่งที่ไม่ใช่แนวทแยงถูกปฏิเสธ) \ # / # X # / # \ ผลลัพธ์จะเป็น: [1,3,5,7,9] กรณีทดสอบ: 1=>[1] 2=>[1,2,3,4] 3=>[1,3,5,7,9] 4=>[1,4,6,7,10,11,13,16] 5=>[1,5,7,9,13,17,19,21,25] จะไม่มีคำตอบที่ยอมรับได้ ฉันต้องการทราบรหัสที่สั้นที่สุดสำหรับแต่ละภาษา
18 code-golf  math  matrix 

12
หมายเลขเดิม (II)
ความท้าทายนี้เป็นหลักเหมือนกันกับคนนี้ที่มีเพียงหนึ่งความแตกต่าง: จะได้รับอนุญาตในขณะนี้เพื่อสับเปลี่ยนตัวอักษรใดก็ได้ในสตริง สถานการณ์ จอห์นมีหมายเลขสำคัญและเขาไม่ต้องการให้คนอื่นเห็น เขาตัดสินใจเข้ารหัสหมายเลขโดยใช้ขั้นตอนต่อไปนี้: จำนวนของเขาเป็นลำดับที่ไม่ลดลงเสมอ (เช่น "1123" ) เขาแปลงแต่ละหลักให้เป็นคำภาษาอังกฤษ (เช่น"123" -> "ONETWOTHREE" ) จากนั้นจัดเรียงตัวอักษรแบบสุ่ม (เช่น"ONETWOTHREE" -> "EEWOOHRNTET" ) จอห์นรู้สึกว่าหมายเลขของเขาปลอดภัยในการทำเช่นนั้น ในความเป็นจริงการเข้ารหัสดังกล่าวสามารถถอดรหัสได้อย่างง่ายดาย :( งาน รับสายอักขระที่เข้ารหัส s งานของคุณคือการถอดรหัสและส่งกลับหมายเลขเดิม กฎระเบียบ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดเป็นไบต์ชนะ คุณสามารถสันนิษฐานได้ว่าสตริงอินพุตนั้นใช้ได้เสมอ สตริงอินพุตมีเฉพาะตัวอักษรตัวพิมพ์ใหญ่เท่านั้น หมายเลขดั้งเดิมจะเรียงตามลำดับจากน้อยไปมาก คุณอาจส่งคืนตัวเลขในรูปแบบสตริงหรือจำนวนเต็ม ตัวอักษรจะถูกสับระหว่างคำเดียวไม่ใช่ระหว่างทั้งสตริงตัวอักษรสามารถสับได้ทุกที่ในสตริง ตัวเลขจะมาจาก 1 ถึง 9 รวม ( ONEถึงNINE) สตริง Unscrambled ที่เป็นไปได้ นี่คือรายการของสตริงหลังจากแปลงเป็นสตริงจากตัวเลข: 1 -> ONE 2 -> TWO …


3
เมื่อฟีโบนักชีพบราชินี
(แรงบันดาลใจจากคำตอบของ Helka ต่อการจับคู่แท็ก "หมากรุก" และ "Fibonacci" แบบสุ่มในการแชท) fibonacci ตัวเลข Fibonacciเป็นหนึ่งในลำดับที่รู้จักกันดีในวิชาคณิตศาสตร์ที่แต่ละหมายเลขจะประกอบด้วยโดยการเพิ่มตัวเลขสองก่อนหน้านี้ร่วมกัน ด้านล่างนี้เป็นคำจำกัดความของลำดับศูนย์ดัชนี: f(0) = 0 f(1) = 1 f(n) = f(n-1) + f(n-2) ซึ่งจะส่งผลในลำดับ0, 1, 1, 2, 3, 5, 8, 13, 21, ...( ลิงค์ OEIS ) ในความท้าทายนี้เราจะมุ่งเน้นเฉพาะค่าบวกอย่างเคร่งครัด (ดังนั้น1, 1, 2, 3, ...) และคุณสามารถเลือกการจัดทำดัชนีเป็นศูนย์หรือการจัดทำดัชนีเดียว แต่โปรดระบุสิ่งที่คุณส่งมา หมายเลข Fibonacci สามารถใช้สำหรับการเรียงตัวของระนาบโดยใช้กำลังสองที่ต่อเนื่องกันf(n)ในขนาดและจัดตำแหน่งขอบเข้าด้วยกัน การเรียงกระเบื้องทำในลักษณะทวนเข็มนาฬิกาโดยวางสี่เหลี่ยมในรูปแบบ "ขวาขึ้น - ซ้าย …

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

16
มันยืดหน่อย Stretch
การป้อนข้อมูล: เรารับสองอินพุต: การป้อนข้อมูลbที่มีสองค่าที่แตกต่างกันและLeft †Right nและเป็นจำนวนเต็มบวก เอาท์พุท: ขึ้นอยู่กับอินพุตซ้าย / ขวาเราแสดงเอาต์พุตสองซีเควนต่อไปนี้ในช่วงของ1-n(ในลำดับด้านล่างที่แสดง 125 รายการแรก): Left: 1, 6, 7, 56, 57, 62, 63, 960, 961, 966, 967, 1016, 1017, 1022, 1023, 31744, 31745, 31750, 31751, 31800, 31801, 31806, 31807, 32704, 32705, 32710, 32711, 32760, 32761, 32766, 32767, 2064384, 2064385, 2064390, 2064391, 2064440, 2064441, 2064446, …

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