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

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

9
ตรวจจับหน้าต่างศิลปะ ASCII ที่ทำจากอักขระ M และ S
Window เป็นสี่เหลี่ยมจัตุรัส ASCII-art ที่มีความยาวด้านคี่อย่างน้อย 3 เส้นโดยมีเส้นขอบตัวอักษรหนึ่งเส้นล้อมรอบขอบเช่นเดียวกับลายเส้นแนวตั้งและแนวนอนตรงกลาง: ####### # # # # # # ####### # # # # # # ####### ของ MS หน้าต่างเป็นหน้าต่างที่ชายแดนจะทำเฉพาะของตัวละครและM Sงานของคุณคือการเขียนโปรแกรม (หรือฟังก์ชั่น) ที่ใช้สตริงและเอาท์พุทค่าความจริงถ้าอินพุตเป็น MS Window ที่ถูกต้องและค่าเท็จถ้ามันไม่ได้ ข้อมูลจำเพาะ คุณสามารถรับอินพุตเป็นสตริงที่คั่นด้วยบรรทัดใหม่หรืออาร์เรย์ของสตริงที่แทนแต่ละบรรทัด เส้นขอบของหน้าต่าง MS อาจประกอบด้วยอักขระ M และ S ผสมกัน แต่ด้านในจะประกอบด้วยช่องว่างเสมอ คุณสามารถเลือกที่จะตรวจจับเฉพาะหน้าต่างที่มีการขึ้นบรรทัดใหม่หรือเฉพาะหน้าต่างที่ไม่มีการขึ้นบรรทัดใหม่ แต่ไม่ใช่ทั้งสองอย่าง กรณีทดสอบ Truthy: MMM MMM MMM SMSMS M M …

11
ตัวเลขฟีโบนักชีเชิงลบ
คุณคงรู้จักลำดับฟีโบนาชี: fibonacci(n)=fibonacci(n-1)+fibonacci(n-2) fibonacci(0)=0 fibonacci(1)=1 งานของคุณง่ายอย่างที่ควรจะเป็น: รับNคำนวณจำนวนเต็มfibonacci(n) แต่นี่คือการบิด: ยังลบ N รอ. อะไร? fibonacci(1)=fibonacci(0)+fibonacci(-1) ดังนั้น fibonacci(-1)=1 และ fibonacci(-2)=fibonacci(0)-fibonacci(1)=-1 และอื่น ๆ ... นี่คือรหัสกอล์ฟที่สั้นที่สุดดังนั้นโปรแกรมเป็นไบต์ชนะ คุณสามารถส่งฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ N อยู่ใน [-100,100] Testcase ในรูปแบบ CSV: -9;-8;-7;-6;-5;-4;-3;-2;-1;0;1;2;3;4;5;6;7;8 34;-21;13;-8;5;-3;2;-1;1;0;1;1;2;3;5;8;13;21 คำแนะนำ: n <0 และ n & 1 == 0: fibonacci(n)=fibonacci(abs(n))*-1

20
ลำดับของผลรวมของจำนวนเต็มที่ไม่ได้อยู่ในลำดับ
พื้นหลัง พิจารณาลำดับที่กำหนดดังนี้: องค์ประกอบแรกคือ 0; องค์ประกอบที่สองคือ 4; จากองค์ประกอบที่สามเป็นต้นไปค่าสามารถคำนวณได้โดย: การตั้งค่าจำนวนเต็มตั้งแต่ 0 ถึงองค์ประกอบก่อนหน้าของลำดับ (รวมหรือพิเศษไม่สำคัญ); การลบจำนวนเต็มใด ๆ ที่มีอยู่แล้วก่อนหน้านี้ในลำดับจากชุด; การรวมองค์ประกอบที่เหลือของชุดเข้าด้วยกัน นั่นคือคุณค่าที่คุณต้องการ ที่น่าสนใจลำดับนี้ไม่ได้ดูเหมือนจะอยู่ในOEISเลย งาน เขียนโปรแกรมหรือฟังก์ชั่นซึ่งรับจำนวนเต็มnเป็นอินพุตและส่งออกองค์ประกอบที่nของลำดับ กรณีทดสอบ องค์ประกอบสองสามอย่างแรกของลำดับคือ: 0 4 6 (1 + 2 + 3) 11 (1 + 2 + 3 + 5) 45 (1 + 2 + 3 + 5 + 7 + 8 + …

11
สตริงเวลาแคปซูล 2016: ปีนบันไดจำนวนเต็ม
การใช้อักขระ 74 ตัวจากสตริงเวลาของแคปซูลปี 2016 H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{% เขียนตัวอย่างโค้ดทั้งหมดในภาษาเดียวกันโดยที่: 1เอาท์พุทที่ 1 ข้อมูลโค้ด 2แสดงผลข้อมูลโค้ด 2 3เอาท์พุทที่ 3 ข้อมูลโค้ด ... ฯลฯ ... ตัวอย่างข้อมูล Nth ส่งออกN(ตัวเลขไม่ใช่ตัวอักษรตามตัวอักษร) "ข้อมูลโค้ด" ถูกกำหนดเป็นสิ่งเหล่านี้: โปรแกรมที่เต็มไปด้วยการป้อนข้อมูลไม่จำเป็นต้องใช้ที่ผลจำนวนตามปกติ ฟังก์ชั่นที่มีการขัดแย้งไม่จำเป็นต้องที่เอาท์พุท / ผลตอบแทนจำนวนตามปกติ REPLแสดงออกที่ประเมินไปที่หมายเลข (คุณสามารถผสมและจับคู่ตัวแปรทั้งสามนี้ในตัวอย่าง N ของคุณ) อักขระที่คุณได้รับอนุญาตให้ใช้ในชุดข้อมูลโค้ด N รวมกันนั้นมีความแม่นยำถึง 74 ตัวอักษรของแคปซูลเวลารวมทั้ง floor(N/2)อักขระ "wildcard" พิเศษที่คุณสามารถใช้ได้ทุกที่ ตัวอย่างเช่นแคปซูลเวลามีสามส่วน@ดังนั้นในตัวอย่าง N ทั้งหมดของคุณอาจมีได้ถึงสามชิ้น@เท่านั้นยกเว้นว่าคุณตัดสินใจที่จะใช้floor(N/2)อักขระตัวแทนของคุณ@เป็นจำนวนมาก ดังนั้นไม่นับรวมสัญลักษณ์ชุดอักขระรวมในตัวอย่างข้อมูล N ของคุณจะต้องเป็นชุดย่อยของอักขระแคปซูลเวลา 74 ตัว ความยาวรวมของพวกเขาจะต้องไม่เกิน 74 คุณไม่สามารถใช้อักขระแคปซูลเวลาหรือไบต์สัญลักษณ์แทนระหว่างตัวอย่าง …

11
ผลรวมสัมบูรณ์ของสัมประสิทธิ์พหุนาม Sidi
พื้นหลัง พหุนามนายปริญญาn - หรือ(n + 1) TH Sidi พหุนาม - กำหนดดังนี้ พหุนาม Sidi มีคุณสมบัติที่น่าสนใจหลายประการ แต่มีค่าสัมประสิทธิ์ รูปแบบหลัง OEIS ลำดับA075513 งาน เขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่นที่กำหนดจำนวนเต็มn ที่ไม่เป็นลบพิมพ์หรือส่งกลับผลรวมสัมบูรณ์ของสัมประสิทธิ์ของ Sidi พหุนามขององศาnนั่นคือ จำนวนเงินเหล่านี้ในรูปแบบ OEIS ลำดับA074932 หากคุณต้องการจัดทำดัชนี 1 ตามที่คุณสามารถใช้เป็นจำนวนเต็มบวกnแทนและคำนวณผลรวมที่แน่นอนของค่าสัมประสิทธิ์ของn TH Sidi พหุนาม เนื่องจากนี่คือรหัสกอล์ฟคุณต้องทำให้รหัสของคุณสั้นที่สุด ใช้กฎมาตรฐานทั้งหมด กรณีทดสอบ (ตาม 0) n Σ 0 1 1 3 2 18 3 170 4 2200 5 …

18
ตัดการเชื่อมต่อ 4 บิต
งานของคุณ: รับสายป้อนข้อมูลตรวจสอบว่าการเป็นตัวแทนไบนารีของสตริงนั้นไม่มี 4 1s หรือ0s ในแถวทุกที่ นอกจากนี้โค้ดของคุณไม่ควรมีการรันสี่ครั้งในแถวใด ๆ กรณีทดสอบ String Binary Result U3 01010101 00110011 Truthy 48 00110100 00111000 Falsy Foobar 01000110 01101111 Falsy 01101111 01100010 01100001 01110010 Feeber 01000110 01100101 Truthy 01100101 01100010 01100101 01110010 $H 00100100 01001000 Truthy <Empty> - Truthy กฎระเบียบ ข้อมูลที่ป้อนจะอยู่ในช่วงของ ASCII ที่พิมพ์ได้รวมถึงอักขระช่องว่าง รหัสของคุณอาจใช้การเข้ารหัสใด ๆ เนื่องจากจะมีความสำคัญที่ระดับบิตเท่านั้น …

2
Hilbertify รูปภาพ
ผมชอบฮิลแบร์ต Curve งานของคุณสำหรับความท้าทายนี้คือการถ่ายภาพ (เป็นรูปสี่เหลี่ยมจัตุรัสโดยที่ทุกด้านมีกำลังสองพิกเซลกว้าง) และคลี่คลายมันทีละบรรทัดในรูปแบบซิกแซกและนำกลับไปเป็นเส้นโค้งหลอก - ฮิลแบร์ต . คลี่คลาย หากต้องการคลี่คลายคุณจะต้องเริ่มต้นด้วยพิกเซลที่มุมซ้ายบนและเดินทางไปทางขวาจนกว่าคุณจะถึงขอบของรูปภาพ เมื่อคุณกดที่ขอบของรูปภาพคุณจะเลื่อนลงไปที่แถวถัดไปและเริ่มเดินทางไปทางซ้ายจนกว่าคุณจะตีที่ขอบอีกครั้ง คุณจะยังคงคลี่คลายแถวต่อแถวสลับทิศทางในแต่ละครั้งเพื่อให้คุณได้รับหนึ่งโค้งอย่างต่อเนื่อง นี่ควรเป็นเกมงูที่เล่นกันดี ผลลัพธ์ของการคลายควรเป็นลำดับของพิกเซลที่รวมทุกพิกเซลในครั้งเดียว Reraveling เมื่อคุณมีการสั่งซื้อพิกเซลคุณจะจัดเรียงใหม่บนผืนผ้าใบที่มีขนาดเท่ากันใหม่ตามเส้นทางของเส้นโค้งหลอก - ฮิลแบร์ต สำหรับ2**nภาพสี่เหลี่ยมจัตุรัสคุณควรใช้การวนซ้ำของเส้นโค้งหลอก - ฮิลแบร์ต แต่ละพิกเซลจะถูกวางในจุดเดียวบนผืนผ้าใบใหม่ คุณควรจัดภาพใหม่เพื่อให้จุดเริ่มต้นที่มุมบนซ้าย (จุดเริ่มต้นของเส้นโค้งงูของเรา) อยู่ที่นั่นและจุดที่มุมล่างขวา (จุดสิ้นสุดของเส้นโค้งงูของเรา) จะถูกวางไว้ที่มุมขวาบน I / O โปรแกรมหรือฟังก์ชั่นของคุณควรใช้ภาพของข้อ จำกัด ที่ระบุผ่านวิธีการมาตรฐานและส่งออกภาพอื่นผ่านวิธีการมาตรฐาน เกณฑ์การให้คะแนน นี่เป็นโปรแกรมรหัสกอล์ฟที่มีจำนวนไบต์น้อยที่สุดเป็นผู้ชนะ ตัวอย่าง อินพุต เอาท์พุต อินพุต เอาท์พุต อินพุต เอาท์พุต ฉันขอแนะนำให้ทดสอบภาพสีขาวหรือสีทึบเพื่อให้แน่ใจว่าคุณจะไม่พลาดพิกเซล อย่าลังเลที่จะรวมผลลัพธ์ของคุณเองในคำตอบของคุณ!

30
ง่ายเหมือน ABC
อินพุต สตริงที่มีมากที่สุดคนหนึ่งของแต่ละตัวอักษรA, และB Cพวกเขาอาจอยู่ในลำดับใด ๆ สตริงว่างคืออินพุตที่ถูกต้อง หมายเหตุ:รุ่นก่อนหน้าของความท้าทายนี้ใช้ตัวอักษรLEJแทนABCและพวกเขาอาจยังคงใช้ถ้าต้องการ เอาท์พุต สตริงของA, B, Cตัวอักษรที่ไม่ได้อยู่ในการป้อนข้อมูล พวกเขาอาจอยู่ในลำดับใด ๆ หากผลลัพธ์เป็นสตริงว่างเปล่าเพียงแค่ให้ผลลัพธ์ไม่ถูกต้องหากนั่นเหมาะสมสำหรับการใช้งานของคุณ (เช่นคุณไม่จำเป็นต้องโทรprintหาสตริงที่ว่างเปล่า) ตัวอย่าง หากอินพุตเป็นBผลลัพธ์ก็ควรจะเป็นCAหรือACตั้งแต่AและCไม่อยู่ในอินพุต หากอินพุตเป็นสตริงว่างเปล่าเอาต์พุตควรเป็นABCหรือการเรียงลำดับใด ๆ เนื่องจากไม่มีทั้งสามตัวอักษรในอินพุต หากอินพุตเป็นCABผลลัพธ์เอาต์พุตควรเป็นสตริงว่างเนื่องจากทั้งสามตัวอักษรมีอยู่ในอินพุต กรณีทดสอบ มีกรณีที่ป้อนเข้าน้อยมากที่เราสามารถระบุได้ทั้งหมด: in -> out1 | out2 | out3 | ... ABC -> "" ACB -> "" BCA -> "" BAC -> "" CAB -> "" CBA -> "" …

14
รายการพาร์ติชัน multiplicative ทั้งหมดของ n
รับจำนวนบวกnส่งออกพาร์ติชัน multiplicative ที่แตกต่างกันทั้งหมดของnในรูปแบบที่สะดวก พาร์ติชันคูณของnเป็นชุดของจำนวนเต็มมากขึ้นทุกมากกว่าหนึ่งเช่นว่าผลิตภัณฑ์ของตนเป็นn ตัวอย่างเช่น 20 มีพาร์ติชัน multiplicative ที่แตกต่างกันดังต่อไปนี้: 2 * 2 * 5 2 * 10 4 * 5 20 การสั่งซื้อสินค้าไม่ได้เรื่องจึงเป็นพาร์ติชั่นเดียวกับ2 * 2 * 52 * 5 * 2 ตัวอย่าง: 1 -> {} 2 -> {2} 4 -> {2, 2}, {4} 20 -> {2, 2, 5}, {2, 10}, {4, …

20
ศึกวันท้าทาย
วันนี้วันที่ 11 พฤศจิกายนเป็นที่รู้จักกันเป็นวันรำลึก , ศึกวันหรือวันทหารผ่านศึก (ขึ้นอยู่กับประเทศ) และเป็นวันของการสะท้อนและความกตัญญูสำหรับสมาชิกของทหารและการให้บริการของพวกเขาเริ่มต้นโดยเฉพาะเพื่อสะท้อนให้เห็นถึงการสิ้นสุดของสงครามในยุโรป ในสงครามโลกครั้งที่หนึ่ง ขอให้เราสะท้อนให้เห็นถึงว่ามีการส่งออก ASCII 11/11ศิลปะที่เรียบง่ายของ รับอินพุตnส่งออกการแสดงผล ASCII-art ของ11/11ที่มีnหน่วยสูง โดยเฉพาะอย่างยิ่งแต่ละคน1ประกอบด้วยท่อแนวตั้ง||ทับประกอบด้วยทับ//และตัวละครแต่ละตัวมีช่องว่างออกเป็นสอง โปรดทราบว่านี่หมายถึงความกว้างของเอาต์พุตที่แตกต่างกัน - ตัวอย่างเช่นn=3ด้านล่างดูว่า "ส่วนล่าง" ของเครื่องหมายทับสองช่องว่างจาก1ทางซ้ายของมัน แต่เป็นช่องว่างสี่ช่องจาก1ด้านขวาเพื่อให้ด้านบนสุดของทับ เรียงแถวกันอย่างเหมาะสมและเป็นสองช่องว่างจาก1ด้านขวา n = 1 || || // || || n = 2 || || // || || || || // || || n = 3 || || // || …

19
ชื่อเรื่องที่เป็นมิตรกับ URL
ผู้คนในไซต์นี้ชอบที่จะตกแต่งชื่อโพสต์ของตน ... Stewie's sequence: + * - / + * - / อย่างไรก็ตามเมื่อชื่อเรื่องนี้จะต้องรวมอยู่ใน URL ของหน้ามันจะง่ายขึ้น: stewies-sequence ความท้าทาย งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ให้สตริงที่เป็นตัวแทนของชื่อโพสต์เอาท์พุท / ส่งกลับการแปลง "เป็นมิตรกับ URL" อัลกอริทึมคือ: แปลงเป็นตัวพิมพ์เล็ก (ถ้ามี) แทนที่ทุกช่องว่าง ( ), จุด ( .), เครื่องหมายจุลภาค ( ,) หรือเครื่องหมายทับ ( /) ด้วยเส้นประ ( -) ลบอักขระที่ไม่ใช่ตัวอักษรและตัวเลขยกเว้นเครื่องหมายขีดกลาง ลดขนาดกลุ่มของเครื่องหมายขีดคั่นที่อยู่ติดกัน ( a---b -> a-b) ลบสิ่งที่นำหน้า / ต่อท้าย โปรดทราบว่าอัลกอริทึมนี้เป็นการทำให้เข้าใจง่ายและอาจไม่ให้ผลลัพธ์ที่เหมือนกันกับวิธีการที่แท้จริงของเว็บไซต์ …

20
สตริงที่จับคู่ได้
สตริงสามารถจับคู่ได้หากสามารถแบ่งออกเป็นรายการย่อยซึ่งแต่ละรายการจะมีสตริงซ้ำกันสองครั้งติดต่อกัน ตัวอย่างเช่นaabaaababbbabaจับคู่ได้ดังนี้: aaba aaba b b ba ba กำหนดสตริงที่ไม่ว่างเป็นa's และb' ให้ส่งออกค่า Truthy หากสามารถจับคู่ได้และค่า Falsey หากไม่ใช่ Pairable: aa abaaba bbababbb aabaaababbbaba babababa bbbbbbbbbbbb aaababbabbabbbababbaabaabaababaaba aaaabaab ไม่สามารถจับคู่ได้: a ba baab abaabaaba bbbbbbbbbbbbbbb baababbabaaaab aaaaabbaaaaa ฉันแนะนำให้คุณหาวิธีแก้ปัญหาที่ไม่ใช้ regex แม้ว่าจะมีคำตอบสั้น ๆ ในภาษาของคุณ คุณสามารถทำเครื่องหมายเป็น "no regex" โดย regex ฉันหมายถึงระบบย่อยการจับคู่รูปแบบสตริงในตัว ลีดเดอร์บอร์ด: แสดงตัวอย่างโค้ด var QUESTION_ID=98252,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/98252/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 …

20
จำนวนของ Alk เชนแบบตรง * nes ของความยาวที่กำหนด
ตรง - โซ่ alk * ne ถูกกำหนดให้เป็นลำดับของอะตอมคาร์บอนที่เชื่อมต่อโดยเดี่ยว (อัลเคน), คู่ (อัลคีน), หรือสามพันธะ (อัลไพน์), (ใช้ไฮโดรเจนแบบนัย) อะตอมคาร์บอนสามารถสร้าง 4 พันธะเท่านั้น ไม่บังคับให้อะตอมของคาร์บอนมีพันธะมากกว่าสี่ อัลคาไลน์เส้นตรง * สามารถแสดงเป็นรายการของพันธะคาร์บอน - คาร์บอน นี่คือตัวอย่างบางส่วนของ alk-nes แบบสายตรงที่ถูกต้อง: [] CH4 Methane [1] CH3-CH3 Ethane [2] CH2=CH2 Ethene [3] CH≡CH Ethyne [1,1] CH3-CH2-CH3 Propane [1,2] CH3-CH=CH2 Propene [1,3] CH3-C≡CH Propyne [2,1] CH2=CH-CH3 Propene [2,2] …

17
วาด ASCII-O'-Lantern สำหรับวันฮาโลวีน
วันฮัลโลวีนเกือบจะถึงที่นี่แล้วซึ่งเป็นวันหยุดหลังจากที่คนส่วนใหญ่ต้องการที่จะหย่านมตัวเองด้วยอาหารที่มีน้ำตาลเป็นโพรง เขียนโปรแกรมที่ใช้จำนวนเต็มบวก หากจำนวนเต็มน้อยกว่า 31 (1 ถึง 30) ให้เอาท์พุทแจ็คโอ - ศิลปะโคมไฟ ASCII นี้โดยมองไปทางขวาราวกับว่ากำลังรอวันฮัลโลวีน: _____I_____ | | | | | | | | | |^| |^| | | | | |^| | | | | |VvVvV| | |_|_|_|_|_|_| หากอินพุทเป็น 31 (วันที่เดือนตุลาคมเป็นวันฮาโลวีนเปิดอยู่) ให้ส่งออก ASCII-o'-lantern เดียวกัน แต่มองไปทางซ้าย: _____I_____ | | | | | | …

16
เอาท์พุทหมายเลขออยเลอร์
ได้รับไม่ใช่เชิงลบจำนวนเต็มn,n,n ,เอาท์พุทnthnthn^{\text{th}} จำนวนออยเลอร์ ( OEIS A122045 ) ทั้งหมดคี่จัดทำดัชนีตัวเลขออยเลอร์เป็น00.0.0 .แม้การจัดทำดัชนีตัวเลขออยเลอร์สามารถคำนวณได้จากสูตรดังต่อไปนี้ ( i≡−1−−−√i≡−1i \equiv \sqrt{-1}หมายถึงหน่วยจินตภาพ): E2n=i∑k=12n+1∑j=0k(kj)(−1)j(k−2j)2n+12kikk.E2n=i∑k=12n+1∑j=0k(kj)(−1)j(k−2j)2n+12kikk. E_{2n} = i \sum_{k=1}^{2n+1}{ \sum_{j=0}^{k}{ \left(\begin{array}{c}k \\ j \end{array}\right) \frac{{\left(-1\right)}^{j} {\left(k-2j\right)}^{2n+1}}{2^k i^k k} } } \,. กฎระเบียบ nnn will be a non-negative integer such that the nthnthn^{\text{th}} Euler number is within the representable range of integers …

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