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

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

21
ค้นหาสุดขั้วในพื้นที่
เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้ในรายการและสร้างรายการของสุดขั้ว ในรายการ[x_0, x_1, x_2...]มากในท้องถิ่นเป็นx_iเช่นนั้นx_(i-1) < x_iและx_(i+1) < x_iหรือและx_(i-1) > x_i x_(i+1) > x_iขอให้สังเกตว่าองค์ประกอบแรกและสุดท้ายของรายการไม่สามารถสุดขั้วท้องถิ่น ดังนั้นสำหรับบางตัวอย่าง local_extremes([1, 2, 1]) = [2] local_extremes([0, 1, 0, 1, 0]) = [1, 0, 1] local_extremems([]) = [] นี่คือรหัสกอล์ฟเพื่อให้รหัสที่สั้นที่สุดชนะ!
14 code-golf 

9
ชนิดของเมตา: รับคำตอบที่สั้นที่สุดที่ยาวที่สุด
งานของคุณ - ถ้าคุณยอมรับมัน - คือการเขียนโปรแกรมซึ่งจะช่วยให้เข้าใจข้อเสนอของฉันเกี่ยวกับเมตาโดยการคำนวณผู้ชนะของรหัสกอล์ฟกลับรายการการแข่งขัน แน่นอนคำตอบสำหรับคำถามนี้จะได้รับการปฏิบัติตามที่เสนอดังนั้นโปรแกรมของคุณ (หากถูกต้อง) สามารถคำนวณได้ว่าคำตอบของคุณจะกลายเป็นคำตอบที่ยอมรับหรือไม่ กฎระเบียบ โปรแกรมอ่านไฟล์ที่มีหลายบรรทัดในรูปแบบต่อไปนี้ (ดูตัวอย่างด้านล่าง): [ภาษา] TAB [NumberOfCharacters] TAB [LinkToAnswer] ชื่อไฟล์ถูกส่งผ่านเป็นอาร์กิวเมนต์ไปยังโปรแกรมของคุณหรือไฟล์ถูกเปลี่ยนเส้นทางไปยังอินพุตมาตรฐานของโปรแกรมของคุณ เป็นทางเลือกของคุณโปรดพูดถึงวิธีการเมื่อให้คำตอบ คาดว่ารูปแบบอินพุตจะถูกต้อง ไม่จำเป็นต้องมีข้อผิดพลาดในการจัดการ จำนวนตัวอักษรเป็นบวก โปรแกรมของคุณจะต้องจัดการกับความยาวได้ถึง 65535 64k ควรจะเพียงพอสำหรับทุกคน :-) โปรแกรมเอาต์พุตบรรทัดเหล่านั้นบนเอาต์พุตมาตรฐานซึ่งตรงกับแนวคิดของข้อเสนอเมตานั่นคือ รหัสที่สั้นที่สุดของภาษาการเขียนโปรแกรมเฉพาะชนะ (ขั้นตอนการลดขนาด) รหัสที่ยาวที่สุดในบรรดาภาษาการเขียนโปรแกรมทั้งหมดชนะ (เฟสการเรียงลำดับ) ในกรณีที่มีการเสมอคำตอบทั้งหมดที่มีความยาวเท่ากันจะถูกพิมพ์ออกมา ลำดับของเอาต์พุตไม่สำคัญ แม้ว่าที่ยาวที่สุดชนะรหัสนี้ไม่ได้เป็นรหัสโบว์ลิ่ง รหัสของคุณจะต้องสั้นที่สุดสำหรับภาษาโปรแกรมของคุณ คำตอบเกี่ยวกับการเขียนโปรแกรมภาษาที่ไม่ค่อยจะมีความพยายามที่จะย่อรหัสสมควร downvote เพราะพวกเขาพยายามที่จะหลีกเลี่ยงความตั้งใจของคำถามประเภทนี้ หากมีเพียงหนึ่งคำตอบสำหรับภาษาการเขียนโปรแกรมที่เฉพาะเจาะจงก็จะถือว่าเป็นผู้ชนะเลิศดังนั้นคุณสามารถเริ่มเป่ารหัส ตัวอย่างไฟล์อินพุต (คั่นด้วยแท็บเดียวหากมีปัญหาเกี่ยวกับการจัดรูปแบบ): GolfScript 34 http://short.url/answer/ags GolfScript 42 http://short.url/answer/gsq C# 210 http://short.url/answer/cs2 …

7
แก้เขาวงกตลูกศรย้อนกลับ
นี่คือ "เขาวงกตลูกศร": v < > v > ^ > v ^ < * *เครื่องหมายจุดที่คุณจะเสร็จสิ้น เป้าหมายของคุณคือการหาที่เขาวงกตเริ่มต้น (เพราะฉะนั้นเขาวงกตกลับ) ในกรณีนี้มันเป็นครั้งแรก>ในบรรทัดที่สอง v------< S-+---v | | >--^ >-+-------v ^ < * โปรดทราบว่าต้องใช้ลูกศรทั้งหมด นอกจากนี้โปรดทราบว่าคุณสามารถสันนิษฐานได้ว่าเส้นจะถูกเติมด้วยช่องว่างให้มีความยาวเท่ากัน โปรแกรมของคุณต้องป้อนเขาวงกตในลักษณะที่เหมาะสม (stdin จากไฟล์กล่องข้อความ ฯลฯ ) อย่างไรก็ตามเขาวงกตจะต้องไม่บุบสลายอย่างสมบูรณ์ ตัวอย่างเช่นคุณไม่สามารถป้อนบรรทัดที่คั่นด้วยเครื่องหมายจุลภาค การป้อนข้อมูลจะต้องตรงเขาวงกต คุณต้องแสดงจุดเริ่มต้นของเขาวงกตด้วยวิธีที่สมเหตุสมผล ตัวอย่างเช่นคุณสามารถ ส่งออกพิกัดของการเริ่มต้น เอาท์พุทเขาวงกตทั้งหมดด้วยลูกศรเริ่มต้นแทนที่ด้วย S เอาท์พุทเขาวงกตทั้งหมดด้วยลูกศรทั้งหมดยกเว้นลูกศรเริ่มลบออก (ช่องว่างเหมือนเดิม!) เป็นต้น ตราบใดที่คุณสามารถบอกได้ว่าลูกศรไหนเป็นลูกศรเริ่มจากนั้นก็โอเค ตัวอย่างเช่นผลลัพธ์ของ "0" "2" ไม่เป็นไรไม่ว่าบรรทัดใหม่และราคาจะเป็นยังไงก็ตามคุณยังสามารถบอกได้ว่าจุดเริ่มต้นนั้นอยู่ที่ไหน นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ
14 code-golf 

7
มันเป็นนายกหรือไม่? ไม่มีคณิตศาสตร์ [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา เขียนโปรแกรมหรือฟังก์ชั่นในภาษาใด ๆ ที่บอกว่าอินพุตเป็นตัวเลขเฉพาะหรือไม่ อินพุตเป็นสตริงที่แทนจำนวนธรรมชาติใน base-10 เอาต์พุตเป็นหนึ่งในสองสตริง "Prime" หรือ "Not !!" ซึ่งระบุอินพุตได้อย่างถูกต้อง ตัวดำเนินการทางคณิตศาสตร์ตัวดำเนินการ bit-wise ตัวแปรที่เป็นตัวเลขและค่าคงที่ "ทั่วไป" สิ่งต่าง ๆ "โดยทั่วไปไม่อนุญาตให้ใช้ทุกที่ในโปรแกรมของคุณ คุณควรใช้การทำงานของสตริงเพื่อทำการ "คำนวณ" ที่จำเป็นทั้งหมด คุณสามารถเปรียบเทียบความยาวสตริง (ซึ่งเป็นตัวเลข) - แต่ -10 กับคะแนนของคุณหากคุณไม่ต้องการ โปรแกรมของคุณควรทำงานกับอินพุตความยาวใด ๆ (ให้หน่วยความจำและเวลาเพียงพอ) จำนวนไบต์ต่ำสุด (UTF-8) ชนะ

4
เขียนรหัสเพื่อกำหนดคำตอบที่ยอมรับได้
โพสต์คำตอบสำหรับคำถามนี้ที่ประเมินคำตอบสำหรับคำถามนี้และตัดสินว่าจะชนะหรือไม่ ใครชนะ: ผู้ชนะคือคำตอบที่ชนะตามคำตอบมากที่สุดเวลา 1700 UTC, วันอาทิตย์ที่ 2 มีนาคม คุณยินดีและสนับสนุนให้เปลี่ยนคำตอบของคุณเองเมื่อการแข่งขันดำเนินไป กรุณาอย่าเปลี่ยนคนอื่น ความสัมพันธ์จะถูกกำหนดโดยรหัสที่สั้นที่สุด โดยไม่คำนึงว่าคุณจะทำ sockpuppeting มากแค่ไหนถ้ามีอะไรแปลก ๆ ฉันจะตัดสิทธิ์คุณ ฉันจะไม่ยอมรับคำตอบของฉันเอง แต่ฉันจะใช้มันเพื่อประเมินคุณ กฎ: การคำนวณของคุณจะต้องให้คะแนนเป็นตัวเลขสำหรับคำตอบโดยพลการใด ๆ (เพื่อให้ง่ายอินพุตของอัลกอริทึมของคุณอาจเป็น id ของคำตอบหรือ markdown ของคำตอบในหน้า) คะแนนของคุณจะต้องมีผู้ชนะอย่างน้อยหนึ่งคนและต้องเป็นไปได้ที่จะได้คำตอบนอกเหนือจากที่คุณชนะ อัลกอริทึมของคุณไม่สามารถใช้บางอย่างที่เฉพาะเจาะจงกับคำตอบของคุณไม่สามารถใช้ชื่อผู้ใช้หรือการประทับเวลาได้เลย ฉันจะเป็นผู้ตัดสินขั้นสุดท้ายว่าอะไรคือ "ที่เฉพาะเจาะจงมาก" แต่ฉันสนับสนุนให้ชุมชนตรวจสอบและทำให้อับอาย รหัสของคุณจะต้องรวบรวมเรียกใช้และให้คะแนนเพื่อตอบคำถามใด ๆ โปรดรวมลิงก์ไปยังวิธีการรันโค้ดของคุณหากยังไม่ได้จดทะเบียนในIdeone ดูด้านล่าง

12
ทิศทาง Brainf * ckish
งานของคุณ - หากคุณเลือกที่จะยอมรับมัน - คือการสร้างโปรแกรมที่แยกวิเคราะห์และประเมินสตริง (จากซ้ายไปขวาและความยาวตามอำเภอใจ) ของโทเค็นที่ให้ทิศทาง - ซ้ายหรือขวา ต่อไปนี้เป็นโทเค็นที่เป็นไปได้ทั้งสี่และความหมาย: > go right one single step < go left one single step -> go right the total amount of single steps that you've gone right, plus one, before you previously encountered this token and reset this counter to zero <- …

1
โหลด JavaScript และ SHA-256
นี่คือปริศนาการเล่นกอล์ฟรหัสที่มีแอปพลิเคชันในโลกแห่งความจริง เบราว์เซอร์ปัจจุบันบางตัวหากคุณป้อน URL ที่ดูเหมือน data:text/html,<script>alert("hi")</script> จะรันโค้ด JavaScript ที่ให้มา ตอนนี้สมมติว่าคุณมี URL ซึ่งดูเหมือน (pseudocode): data:text/html,<script> myPublicKey="12345678"; cryptoLib=download("http://example.com/somecryptolib.js"); if(sha256sum(cryptoLib) == "12345678") eval(cryptoLib) </script> หากคุณพิมพ์สิ่งนี้ลงบนนามบัตรเป็นรหัส QRใครก็ตามที่ไปที่ URL ด้วยเบราว์เซอร์ที่เหมาะสมจะได้รับไคลเอนต์เข้ารหัสลับสาธารณะกุญแจสาธารณะด้วยรหัสสาธารณะของคุณที่โหลดไว้ล่วงหน้าโดยไม่ต้องติดตั้งอะไรเลย เนื่องจากการตรวจสอบแฮชคุณสามารถมั่นใจได้ว่าพวกเขาได้รับซอฟต์แวร์ crypto จริงแม้ว่าISPของพวกเขาจะยุ่งกับการรับส่งข้อมูล น่าเสียดายที่รหัสจริงของปลอมนี้ค่อนข้างยาวสำหรับรหัส QR ความท้าทายของฉันคือ: คุณทำมันสั้นแค่ไหน? การดำเนินการจะ: เป็นข้อมูล: ... URL ที่ดำเนินการอย่างถูกต้องจากแถบที่อยู่ของ Chrome และ Firefox (ในการสร้างข้อมูลที่ถูกต้อง: URL คุณจะต้องเข้ารหัส% เป็น% 25 และตัดการขึ้นบรรทัดใหม่) มี URL และแฮชSHA-256ฝังอยู่โดยควรเป็นตัวอักษรสตริงข้อความธรรมดาใกล้จุดเริ่มต้น ดาวน์โหลดไฟล์จาก URL …

9
เคล็ดลับการตีกอล์ฟแบบแบตช์
Windows Batch (CMD) เป็นภาษาที่เหมาะสมที่สุดสำหรับการตีกอล์ฟ หลีกเลี่ยงตัวอักษรขึ้นบรรทัดใหม่ หากคุณกำลังมองหารหัสที่สั้นที่สุดเป็นไบต์ซึ่งตรงข้ามกับตัวอักษรคุณจะต้องกำจัดการขึ้นบรรทัดใหม่ที่ไม่จำเป็นออกไป (อักขระขึ้นบรรทัดใหม่ = 2 ไบต์) คุณสามารถใช้การ&ดำเนินการนี้เพื่อตัดหนึ่งไบต์สำหรับแต่ละคำสั่ง echo Hello&echo World. การตั้งค่าตัวแปร เมื่อตั้งค่าตัวแปรโดยใช้สวิตช์setตัวแยกวิเคราะห์จะละเว้นช่องว่าง set /a a+=1 set /p b="User Input: " :: Will be handled the same as.. set/aa+=1 set/pb="User Input: " โปรดทราบว่ากฎการแยกวิเคราะห์เดียวกันไม่ได้ใช้กับคำสั่งทั้งหมด - ตัวอย่างเช่นสำหรับลูปต้องใช้ช่องว่าง ยกเว้นระหว่างset, string, or command(คือสิ่งที่อยู่ภายในวงเล็บ) doและคำว่า for /f %%a in (file.txt)do ... การแสดงออกทางคณิตศาสตร์อย่างง่าย …
14 code-golf  tips 

2
ส่องสว่าง Roguelike
ให้บอร์ดเขียนโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดเพื่อแสดงหรือย้อนกลับไปว่าตัวละครใดที่อยู่ในสายตาของผู้เล่น ตัวละครอยู่ในสายตาถ้าเป็นไปได้ที่จะลากเส้นระหว่างมันกับผู้เล่นโดยไม่ต้องข้ามตัวละครใด ๆ ที่ขวางการมองเห็น การป้อนข้อมูล: @แสดงถึงตำแหน่งของผู้เล่น จะมีเพียงหนึ่งในสิ่งเหล่านี้ในอินพุต อักขระใด ๆ ที่ตรงกับ regex [#A-Z]บล็อกการมองเห็น ตัวอักษรใด ๆ ที่ตรงกับที่[ a-z]อนุญาตให้มองเห็น จะไม่มีอักขระที่ไม่ถูกต้อง คุณรับประกันอินพุตแบบสี่เหลี่ยม เส้นถูกกำหนดดังนี้: นิยามเวกเตอร์ให้มีขนาดและทิศทาง ทิศทางคือหนึ่งใน N, NE, E, SE, S, SW, W, NW ขนาดคือจำนวนตัวอักษรตามทิศทางนั้นที่จะนับ ปล่อยเวกเตอร์เริ่มต้นเรียกว่า d 1 ; เวกเตอร์ที่สองเรียกว่า d 2 หนึ่งใน d 1หรือ d 2จะต้องมีขนาดของ1; อื่น ๆ อาจมีขนาดใด ทิศทางของd 1จะต้องอยู่ติดกับทิศทางของd 2 (เช่น: N …
14 code-golf 

4
ไฮไลต์ด้านไวยากรณ์สำหรับ Greater Golf!
นักกอล์ฟ เราได้รวมตัวกันเพื่อผลิตรหัสที่รัดกุมมีฟังก์ชั่นที่สวยงามและน่าเกลียดยิ่งกว่า Phantom of the Opera จากนวนิยายดั้งเดิม ถึงเวลาแล้วที่เราจะนำความงามกลับคืนสู่โลกแห่งการเขียนโปรแกรม ด้วยสี ในทางที่กระชับความสวยงามในการใช้งานก็น่าเกลียดแล้ว Phantom of the Opera จากนวนิยายต้นฉบับ เราจะเข้ารหัสไฮไลท์ไวยากรณ์ที่มีสีสัน ในจำนวนที่สั้นที่สุดของรหัสที่เป็นไปได้ คุณจะได้รับผ่านไฟล์อินพุตหรือ Stdin ไฟล์ C ที่ถูกต้อง ไฟล์ C จะใช้การประชุมบรรทัดที่คุณเลือกและจะมีเฉพาะอักขระ ASCII 32-126 คุณต้องแปลงให้เป็นไฟล์ HTML ที่แสดงอย่างถูกต้องใน Chrome อย่างน้อยซึ่งจะแสดงรหัสต้นฉบับพร้อมกับการเน้นไวยากรณ์ ผลลัพธ์อาจอยู่ในไฟล์หรือไปยัง Stdout คุณต้องเน้น: สตริงและอักขระทั้งหมด (รวมถึงอักขระเครื่องหมายคำพูด) เป็นสีเขียว (# 00FF00) สตริงอาจมีอักขระที่ใช้ Escape คำสงวน C ทั้งหมดเป็นสีน้ำเงิน (# 0000FF) ความคิดเห็นทั้งหมดเป็นสีเหลือง (# FFFF00) …
14 code-golf  string 

4
ทำการทดสอบแบบปรนัย
ฉันเสนอให้คุณทดสอบ! การทดสอบของคุณคือการทดสอบ การทดสอบคือการทดสอบผู้ทดสอบด้วยการทดสอบที่ผู้ทดสอบให้ในจำนวนรหัสการทดสอบ shor คุณจะให้การทดสอบแบบปรนัยที่คุณได้รับเป็นอินพุต ในการท้าทายนี้คุณต้องรับอินพุตดังนี้: 1. Our site is called Programming Puzzles & Code ________. A: Debugging *B: Golf C: Hockey D: Programming 2. What is the *most* popular tag on our site? A: [debug] B: [program] *C: [code-golf] D: [number] E: [c++] 3. We are part of the …
14 code-golf 

12
จิ๊กซอว์เหยือก 3 และ 5 ลิตร
คุณอาจเคยเห็นสิ่งนี้ในDie Hard: With Vengeance ... คำถามนี้มีพื้นฐานมาจากปริศนาเหยือก 3 และ 5 ลิตรที่โด่งดัง แต่มีความแตกต่างเล็กน้อย หารหัสบางส่วนที่ให้จำนวนเต็มตั้งแต่ 1 ถึง 100 จะให้คำแนะนำที่รวดเร็วที่สุดในการวัดลงในถังน้ำจำนวนลิตรที่สอดคล้องกันจากน้ำพุโดยใช้เหยือก 3 ลิตรและเหยือก 5 ลิตร ไม่มีการไล่ระดับสีบนเหยือกอย่างใดอย่างหนึ่ง น้ำพุนั้นมีน้ำมากและถังนั้นก็จะถูกปล่อยออกไปเมื่อเริ่มต้นการประมวลผลของรหัสแต่ละครั้ง คุณไม่สามารถเข้าถึงน้ำจากถังเมื่อเข้าไปในถัง รูปแบบของการดำเนินการเป็นดังนี้: การป้อนข้อมูล: 4 ตัวอย่างเช่น. เอาท์พุต เอาท์พุทแต่ละขั้นตอนที่มีหมายเลขตามที่แสดงแล้วตามด้วยปริมาณของเหยือก 5L เหยือก 3L และถัง รูปแบบการนับยังแสดงด้านล่าง จำนวนขั้นตอนจะต้องถูกส่งออกในตอนท้ายของขั้นตอน 1) Fill 5L jug 5L: 5, 3L: 0, T: 0 2) Pour from 5L jug …

30
วิธีที่สั้นที่สุดในการใช้ทฤษฎีบทพีทาโกรัส
ใครไม่รักทฤษฎีบทพีทาโกรัสที่² + b² = c²? เขียนวิธีที่สั้นที่สุดที่คุณสามารถทำได้ในภาษาใด ๆ ที่มีค่า a และ b และพิมพ์ออกมา "ด้านตรงข้ามมุมฉากของสามเหลี่ยมมุมฉากนี้คือ" + c เก็บ c ถึงทศนิยมสามตำแหน่งเท่านั้น
14 code-golf 

12
เคล็ดลับสำหรับการเล่นกอล์ฟใน MATLAB
คุณมีคำแนะนำทั่วไปเกี่ยวกับการเล่นกอล์ฟใน MATLAB อย่างไร ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ MATLAB (เช่น "ลบความคิดเห็น" ไม่ใช่คำตอบ) กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ
14 code-golf  tips  matlab 

13
เขียนโปรแกรมในการปลอมตัว [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน2 ปีที่ผ่านมา ความท้าทายคือการสร้างโปรแกรมที่แก้ปัญหาHQ9 + ใด ๆในขณะที่ดูเหมือนภาษาอื่น หมายเหตุ : นี่ไม่ใช่การแข่งขันกอล์ฟ กฎ: โปรแกรมต้องทำงานอย่างใดอย่างหนึ่งต่อไปนี้เมื่อเรียกใช้ พิมพ์ "Hello, World!" พิมพ์แหล่งที่มาทั้งหมด พิมพ์เนื้อเพลงไปที่ "99 ขวดเบียร์บนกำแพง" (เท่าที่เห็นที่นี่ ) ได้อย่างรวดเร็วก่อนโปรแกรมควรมีลักษณะเหมือนภาษาอื่น การวัดผลการศึกษา โปรแกรมทำงานที่สอดคล้องกับกฎ 3 คะแนนโบนัสหาก "ภาษาอื่น ๆ " สามารถเรียกใช้ (ไวยากรณ์ที่ถูกต้อง) +1 คะแนนมากยิ่งขึ้นถ้า "ภาษาอื่น ๆ " สามารถทำสิ่งที่มีประโยชน์ 3 คะแนนโบนัสมากมายสำหรับโปรแกรมที่ถูกต้อง (และมีประโยชน์) ในภาษาอื่น ๆ …

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