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

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

6
วาดกราฟแท่งของฉัน
คุณได้รับเลือกให้สร้างโปรแกรมที่สร้างแผนภูมิแท่ง ASCII ที่สวยงาม นี่คือรูปแบบอินพุต: [List of words (they can have spaces)] [an integer >= 0] Bar 3 This is so cool 4 IDK-Why 6 อินพุตจะมีหลายบรรทัดในรูปแบบนี้แต่ละอันแทนหนึ่งแถบในกราฟ รูปแบบเอาต์พุตของกราฟจะเป็นดังนี้: _ _ _ _ |_|_|_|_| | | | | | | | + [name of 4th bar] | | + [name of 3rd bar] …

6
พลิกมันล้มเหลวหมายถึงมัน
ภาพรวม กำหนดภาพในรูปแบบ PPM ธรรมดา (P3) เป็นอินพุตสำหรับแต่ละพิกเซลpในภาพให้แทนที่แต่ละสีแดงเขียวและน้ำเงิน 4 พิกเซลต่อไปนี้ด้วยค่าเฉลี่ยที่เป็นพื้นของช่องทางที่เกี่ยวข้องของพิกเซลทั้ง 4: p ตัวเอง พิกเซลตั้งอยู่ที่pตำแหน่งของเมื่อภาพถูกพลิกในแนวตั้ง พิกเซลตั้งอยู่ที่pตำแหน่งของเมื่อภาพถูกพลิกในแนวนอน พิกเซลตั้งอยู่ที่pตำแหน่งเมื่อภาพถูกพลิกทั้งในแนวตั้งและแนวนอน แสดงผลภาพที่ได้ในรูปแบบ PPM ธรรมดา (P3) สำหรับคำอธิบายเพิ่มเติมให้พิจารณาภาพ 8x8 นี้ขยายเป็น 128x128: อนุญาตpเป็นพิกเซลสีแดง ในการคำนวณค่าใหม่สำหรับp(และพิกเซล 3 สีฟ้า) ค่าของpและพิกเซลสีน้ำเงิน 3 ค่าจะถูกรวมเข้าด้วยกัน: p1 = (255, 0, 0) p2 = (0, 0, 255) p3 = (0, 0, 255) p4 = (0, 0, 255) p_result …

1
การตรวจจับลูป - ไม่ใช่แบบนั้น!
เป้าหมายของความท้าทายนี้คือการค้นหาทิศทางและพื้นที่ที่ล้อมรอบด้วยการวนซ้ำ การป้อนข้อมูล: ตารางสี่เหลี่ยมประกอบด้วยอักขระเหล่านี้ทั้งหมด: ^v<> (เป็นทางเลือกคุณอาจได้รับขนาดของกริดก่อนที่กริดจะเป็นทศนิยมด้วยตัวอักษรนำหน้าส่วนต่อท้ายและอักขระคั่นที่คุณเลือก) การวนซ้ำในกริดเป็นชุดของตัวละครที่กล่าวมาข้างต้นโดยที่หนึ่งจุดไปยังจุดถัดไปชี้ไปที่จุดต่อไปและในที่สุดก็หันกลับไปที่ตัวอักษรตัวแรก ตัวอย่างเช่น: <>>v> >>v ^^<>v ^ >v >^<<< ^<<< >^<v> กริดด้านซ้ายคืออินพุตตัวอย่าง กริดที่ถูกต้องคือลูปที่แยกได้ กริดอินพุตจะไม่มีลูปที่ลูปทั้งหมดหรือหนึ่งลูป คุณไม่ต้องกังวลกับกรณีใด ๆ ที่กริดมีมากกว่าหนึ่งลูป เอาท์พุท: Xถ้าตารางไม่มีห่วงเอาท์พุท ถ้าตารางมีสองลูกศรชี้ไปที่แต่ละอื่น ๆ 0เอาท์พุท หากกริดมีลูปทวนเข็มนาฬิกาให้นับจำนวนอักขระที่อยู่ในลูปรวมถึงเส้นขอบ เอาท์พุทจำนวนนั้น หากตารางมีการวนรอบตามเข็มนาฬิกาให้ทำตามกระบวนการเดียวกันสำหรับการวนรอบทวนเข็มนาฬิกา แต่ให้ลบจำนวนลบนั้นออก ตัวอย่างเช่นกริดอินพุตด้านบนจะมีเอาต์พุต-11: 10 มาจากลูปเองและ 1 จากอักขระที่อยู่ในลูป นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดชนะ กรณีทดสอบ: <<^ ^>v ^v< Xเอาท์พุต <<<< ><<< >>^> 0เอาท์พุต <>^^< >>>v> <^^>v <^>>v …

16
โปรดนับฉัน!
งานของคุณง่าย โพสต์ตัวอย่างในภาษาใด ๆ ที่หากมีการทำซ้ำขนาด n ครั้งจะเอาท์พุท n ในทศนิยมฐานแปดและฐานสิบหกตามลำดับโดยคั่นในช่องว่าง n เป็นจำนวนเต็มมากกว่าศูนย์ ไม่มีเลขศูนย์นำหน้า คำตอบที่สั้นที่สุดชนะ ตัวอย่าง หากตัวอย่างเป็นABCกรณีทดสอบก็คือ ABC 1 1 1 ABCABC 2 2 2 ABCABCABCABCABCABCABCABCABC 9 11 9 ABCABCABCABCABCABCABCABCABCABCABCABC 12 14 C ABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABCABC 18 22 12
24 code-golf 

8
เกลียวและตัวอักษร
ภารกิจนั้นง่ายมากเมื่อได้รับอินพุตเอาต์พุตหนึ่งในเกลียวต่อไปนี้: Input = 1ให้เกลียวด้วยตัวอักษรAเริ่มต้นที่มุมซ้ายบน: A B C D E F T U V W X G S 5 6 7 Y H R 4 9 8 Z I Q 3 2 1 0 J P O N M L K Input = 2ให้เกลียวด้วยตัวอักษรAเริ่มต้นที่มุมขวาบน: P Q R S T A O …

15
เครื่องพิมพ์วอล์คเกอร์แบบสุ่ม
วาดโปรแกรมหรือฟังก์ชั่นที่จะเขียนถึงSTDOUT nเวลา (แต่ละขั้นตอนสำหรับหนึ่งขั้น) สตริงที่มีจุด.ที่ตำแหน่งของวอล์คเกอร์ โปรแกรมจำเป็นต้องเขียนบรรทัดทุก ๆsวินาที (หรือรอsวินาทีหลังจากแต่ละบรรทัด) การเดินแบบสุ่มเป็นการทำแบบแผนทางคณิตศาสตร์ของเส้นทางที่ประกอบด้วยการต่อเนื่องของขั้นตอนแบบสุ่ม ( wiki ) ดังนั้นทุกขั้นตอนใหม่จะเป็นขั้นตอนสุดท้ายบวกกับค่าใหม่ดังนั้นtค่าขั้นตอนใด ๆ จึงเป็นเพียงผลรวมของค่าสุ่มทั้งหมด ก่อน ir บวกค่าเริ่มต้น โปรแกรมควรใช้ 2 อินพุตและจะใช้ช่องว่าง" "และจุด"."บนเอาต์พุตเท่านั้น ค่าเริ่มต้นของวอล์คเกอร์จะเป็น20เช่นนั้นผลลัพธ์ควรเป็นจุดหลัง 19 ช่องว่าง . #19 spaces then a dot ทุกขั้นตอนใหม่มูลค่าจะเป็นมูลค่าสุดท้ายของวอล์คเกอร์บวกหนึ่งในนั้น[-2-1,0,1,2](โอกาส 20% ในแต่ละครั้ง) หลังจากตำแหน่งใหม่ถูกพิมพ์โปรแกรมควรรอsวินาทีและไปที่ขั้นตอนถัดไป หากขั้นตอนนี้ใช้วอล์คเกอร์นอกช่วงที่1 to 40ควรจะถูกละเว้นและตำแหน่งวอล์คเกอร์ยังคงเหมือนเดิม จำนวนช่องว่างจะเป็นตัวเลขตั้งแต่ 0 ถึง 39 เสมอ ตัวอย่าง #input Mywalk(s = 0.1, n = 30) …
24 code-golf  random 

30
ด้วยกันทั้งหมด
ให้รายการตัวเลข 1 ถึง 9 เอาท์พุทว่าแต่ละหลักจะถูกจัดกลุ่มเข้าด้วยกันเป็นบล็อกที่ต่อเนื่องกันหรือไม่ กล่าวอีกนัยหนึ่งไม่มีสองหลักเดียวกันจะถูกคั่นด้วยตัวเลขที่แตกต่างกัน ไม่เป็นไรถ้าตัวเลขไม่ปรากฏขึ้นเลย ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ อินพุต:รายการที่ไม่ว่างของตัวเลข 1 ถึง 9 ซึ่งอาจเป็นตัวเลขทศนิยมสตริงรายการหรือลำดับที่คล้ายกัน เอาท์พุท:ค่าความจริงที่สอดคล้องกันหากตัวเลขทั้งหมดจะถูกจัดกลุ่มในบล็อกที่ต่อเนื่องกันและค่าFalsey ที่สอดคล้องกันหากพวกเขาไม่ใช่ กรณีจริง: 3 51 44999911 123456789 222222222222222222222 กรณีเท็จ: 818 8884443334 4545 554553 1234567891 แสดงตัวอย่างรหัส var QUESTION_ID=77608,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/77608/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return …

19
กอล์ฟสายทอร์นาโด
วิธีการที่สตริงจะบิด อัลกอริทึมการบิดนั้นง่ายมาก แต่ละคอลัมน์ถูกเลื่อนลงโดยดัชนี (คอลัมน์ 0 เคลื่อนลง 0, คอลัมน์ 1 เลื่อน 1, ... ) การเปลี่ยนคอลัมน์ล้อมรอบด้านบน มันทำงานได้เช่นนี้: aaaa bbbb cccc กลายเป็น: a ba cba ---- cba cb c พร้อมทุกอย่างภายใต้การตัดบรรทัดไปด้านบน ตัวอย่างจริง: Original: \\\\\\\\\\\\ ............ ............ ............ Twisted: \...\...\... .\...\...\.. ..\...\...\. ...\...\...\ อินพุต อินพุตเป็นอาร์เรย์ของสตริงหรือสตริงหลายบรรทัด ทุกบรรทัดมีความยาวเท่ากัน เอาท์พุต สตริงบิดออกหลายบรรทัดไปยัง std-out (หรือทางเลือกที่ใกล้เคียงที่สุด) ตัวอย่าง: ( >หมายถึงอินพุตพื้นที่ต่อท้ายเป็นสิ่งสำคัญ) >Hello, world! …
24 code-golf  string 

30
เล่นกอล์ฟรากxᵗʰของ x
ในขณะที่เบื่อในไฮสคูล (ตอนที่ฉันอายุน้อยกว่าครึ่งอายุของฉัน ... ) ฉันพบว่าf ( x ) = x ( x -1 )มีคุณสมบัติที่น่าสนใจรวมถึงเช่นว่าfสูงสุดสำหรับ 0 ≤ xคือf ( e ) และพลังงานความผูกพันต่อนิวเคลียสของไอโซโทปสามารถประมาณได้เป็น6 × f ( x ÷ 21) ... อย่างไรก็ตามเขียนฟังก์ชั่นที่สั้นหรือโปรแกรมที่คำนวณ x THรากของ x ตัวเลขใด ๆ ในโดเมนภาษาของคุณ ตัวอย่างกรณี สำหรับทุกภาษา -1 > -1 ¯0.2 > -3125 ¯0.5 > 4 0.5 > 0.25 1 …

30
สลับลบและทำซ้ำ
บทนำ ลองสังเกตสตริงต่อไปนี้: ABCDEFGHIJKLMNOP หากเราสลับส่วนท้ายของสตริงซึ่งคือ: ABCDEFGHIJKLMNOP ^^ ^^ เราได้ผลลัพธ์ดังนี้: BACDEFGHIJKLMNPO หลังจากนั้นเราจะลบสิ้นสุดของสตริงซึ่งในกรณีนี้และB Oผลลัพธ์คือ: ACDEFGHIJKLMNP หากเราทำซ้ำขั้นตอนนี้เราจะได้รับรายการต่อไปนี้: N Result 2 ADEFGHIJKLMP 3 AEFGHIJKLP 4 AFGHIJKP 5 AGHIJP 6 AHIP 7 AP คุณจะเห็นว่าสำหรับN = 5AGHIJPผลที่ได้คือ ที่N = 7ความยาวของสตริงจะน้อยกว่า3ดังนั้น N> 7 ถือว่าไม่ถูกต้องในกรณีนี้ งาน รับสตริงS ที่มีความยาวอย่างน้อย 4 และจำนวนการทำซ้ำN > 0 ให้ผลลัพธ์สุดท้าย คุณสามารถสรุปได้ว่าไม่มีอยู่เสมอที่ถูกต้อง กรณีทดสอบ Input > Output N …
24 code-golf  string 

12
แมวประกอบ
วัตถุประสงค์เขียนโปรแกรมเต็มรูปแบบที่ส่งออก (ไปยัง STDOUT หรือทางเลือกที่ใกล้เคียงที่สุด) สตริงข้อความที่กำหนดเองความยาวไม่เกิน 64 อักขระ ง่ายพอใช่ไหม เอาล่ะนี่คือสิ่งที่จับได้: คุณไม่สามารถใช้อักขระใด ๆ ถูกต้องไม่มีพวกเขา ดังนั้นคุณพยายามที่จะเป็นคำตอบสุดท้ายรวมเป็นสามวัน นั่นคือคุณไม่ต้องการให้ใครตอบคำถามใน 72 ชั่วโมงหลังจากการโพสต์คำถามของคุณ กฎบางอย่าง คำตอบ (และผลลัพธ์) ของคุณอาจมีเฉพาะอักขระ ASCII ที่พิมพ์ได้บรรทัดใหม่ (รวมถึงการขึ้นบรรทัดใหม่) และแท็บ ผลลัพธ์ของคำตอบของคุณอาจไม่เหมือนกับผลลัพธ์ของคำตอบอื่น เอาต์พุตสองตัวนั้นเหมือนกันหากว่าพวกมันใช้อักขระตัวเดียวกันเท่านั้น คุณสามารถใช้ภาษาใดก็ได้ที่ไม่ได้ถูกสร้างขึ้นมาเพื่อความท้าทายนี้โดยเฉพาะแม้ว่ามันจะเกิดขึ้นหลังจากการท้าทาย (แน่นอนว่าภาษานี้ต้องสามารถทดสอบได้) คุณไม่สามารถใช้ภาษาใด ๆ ที่เคยใช้มาก่อนหน้านี้ ข้อความของคุณอาจไม่รวมความคิดเห็น แน่นอนคุณอาจให้โปรแกรมความคิดเห็นเพิ่มเติม คุณไม่สามารถตอบได้สองครั้งติดต่อกัน โปรแกรมของคุณต้องมีอย่างน้อย 1 ไบต์ รูปแบบรายการ คำตอบของคุณควรมีลักษณะดังนี้: # {Language} Uses: `characters present in the output` Does not use: …

6
การต่อข้อมูลทศนิยมของสี่เหลี่ยม
หลักฐาน คืนหนึ่งฉันแค่ใคร่ครวญเรื่องตัวเลข ฉันค้นพบเกี่ยวกับสิ่งที่ไม่เหมือนใครเกี่ยวกับตัวเลขเช่น 7, 10, 12, 13 และอื่น ๆ พวกมันเป็นสี่เหลี่ยมกำลังสอง! ความหมายที่ว่าเมื่อยกกำลังสองจะประกอบด้วยกำลังสองของตัวเอง OEIS เรียกพวกมันว่า Squares ซึ่งเป็นการแบ่งส่วนทศนิยมของ Squares สองตัวขึ้นไป ตัวอย่างของตัวเลขดังกล่าว ได้แก่ 7 (49 มี 2 2และ 3 2 ) 13 (169 มี 4 2และ 3 2 ) และ 20 (400 มี 2 2และ 0 2 ) ตัวอย่างอื่น ๆ ได้แก่ 37 เนื่องจาก 1369 …

20
ปิรามิดรวมของจำนวนเฉพาะ
ด้วยหมายเลข N ความท้าทายคือการหาผลรวมของปิรามิดของจำนวนเฉพาะ เพื่อชี้แจงสิ่งต่าง ๆ นี่คือตัวอย่าง: Input: 4 เราจะแสดง4ช่วงเวลาแรกและคำนวณผลรวมของพวกเขา หลังจากนั้นเราจะคำนวณผลรวมของจำนวนเงินและ: 2 > 5 3 > 13 > 8 > 33 5 > 20 > 12 7 คุณสามารถเห็นได้ว่าผลสุดท้ายคือ33 นี่เป็นอีกตัวอย่างหนึ่งที่มี N = 8: 2 > 5 3 > 13 > 8 > 33 5 > 20 > 83 > 12 > 50 …
24 code-golf  math  primes 

12
ตัวละคร ASCII สับสน
เขียนโปรแกรมที่รับสายอักขระที่ประกอบด้วยอักขระที่พิมพ์ได้ (ASCII 20-7E) และจำนวนเต็มnใน [2,16] และทำการปรับเปลี่ยนต่อไปนี้กับสตริง อักขระแต่ละตัวในสตริงจะถูกแปลงเป็นรหัส ASCII ของมัน (ตัวอย่างที่ให้มาเป็นเลขฐานสิบหกแม้ว่าฐาน 10 จะยอมรับได้เช่นกัน) รหัส ASCII จะถูกแปลงเป็นฐานnและต่อกันเข้าด้วยกัน สตริงใหม่จะแบ่งตัวละครอื่น ๆ ทุกตัว หากมีจำนวนอักขระคี่ตัวละครสุดท้ายจะถูกลบออกทั้งหมด การพิมพ์รหัส ASCII (ในฐาน 16) จะถูกแปลงกลับเป็นอักขระในขณะที่รหัส ASCII ที่ไม่ได้พิมพ์จะถูกลบออก สตริงผลลัพธ์ถูกพิมพ์ กรณีทดสอบ อินพุต Hello, World! 6 ขั้นตอน Hello, World! 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21 2002453003003031125222330331030024453 20 …

9
จะปรับปรุง Pyth ได้อย่างไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการ4 ปีที่แล้ว Pyth อยู่ในการพัฒนาอย่างต่อเนื่องซึ่งหมายความว่ามีการเพิ่มฟีเจอร์ใหม่ตลอดเวลา ฉันต้องการทำให้ Pyth เป็นแบบที่ดีกว่าดังนั้นฉันต้องการทราบว่าคุณลักษณะใดที่ผู้คนกำลังมองหา นี่คือสถานที่ที่โพสต์ความคิดที่คุณมีเพื่อทำให้ Pyth ดีขึ้น ในคำตอบของคุณโปรดระบุ: สิ่งที่คุณต้องการที่จะเห็นการเปลี่ยนแปลง / เพิ่ม ตัวอย่างการใช้งานของการเปลี่ยนแปลง ฉันจะแสดงความคิดเห็นหากฉันวางแผนที่จะใช้ข้อเสนอแนะ โปรดตรวจสอบว่าความคิดที่คุณต้องการแนะนำนั้นได้รับการแนะนำหรือไม่ โหวตความคิดที่คุณต้องการนำไปใช้ คำแนะนำการใช้งาน: สตริง Eval ใน Pythเป็น.v การดำเนินการ Regex เพิ่มเติม ใช้ในขณะที่.W Nested LoopsและMore Lambdas (พวกเขาใช้กลไกเดียวกันภายใต้) แผ่รายการซ้อนกันเป็น.n นี่เป็นหัวข้อตามคำถามเมตานี้เมื่อฉันโพสต์คำถามมันไม่ชัดเจนอีกต่อไป
24 tips  pyth 

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