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

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

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

30
ย้อนกลับสัญกรณ์โปแลนด์
คุณต้องประเมินสตริงที่เขียนในรูปแบบReverse Polishและแสดงผลลัพธ์ โปรแกรมต้องยอมรับอินพุตและส่งคืนเอาต์พุต สำหรับภาษาโปรแกรมที่ไม่มีฟังก์ชั่นในการรับอินพุต / เอาต์พุตคุณสามารถใช้ฟังก์ชันเช่น readLine / print คุณไม่ได้รับอนุญาตให้ใช้ "eval" ใด ๆ ในโปรแกรม เบอร์และผู้ประกอบการจะถูกแยกออกโดยหนึ่งหรือมากกว่าช่องว่าง คุณต้องสนับสนุนอย่างน้อย +, -, * และ / โอเปอเรเตอร์ คุณต้องเพิ่มการรองรับกับจำนวนลบ (เช่น-4ไม่ใช่สิ่งเดียวกับ0 4 -) และหมายเลขทศนิยม คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นถูกต้องและปฏิบัติตามกฎด้านบน กรณีทดสอบ การป้อนข้อมูล: -4 5 + เอาท์พุท: 1 การป้อนข้อมูล: 5 2 / เอาท์พุท: 2.5 การป้อนข้อมูล: 5 2.5 / เอาท์พุท: 2 การป้อนข้อมูล: 5 1 …
41 code-golf  math 

30
ที่นั่นฉันแก้ไขมัน (ด้วยเทป)
ท้าทาย: กำหนดสตริงที่มีตัวอักษรตัวพิมพ์ใหญ่และ / เล็ก (แล้วแต่จำนวนใดก็ได้ที่คุณต้องการ) วางtapeแนวนอนเพื่อแก้ไข เราทำเช่นนี้โดยการตรวจสอบความแตกต่างของทั้งสองตัวอักษรที่อยู่ติดกันในตัวอักษร (ไม่สนใจรอบและมีเพียงก้าวไปข้างหน้า) และกรอกพื้นที่ที่มีมากที่สุดเท่าที่TAPE/ tapeที่เราจะต้อง ตัวอย่าง: อินพุต: abcmnnnopstzra เอาต์พุต:abcTAPETAPETmnnnopTAstTAPETzra ทำไม? ระหว่างcและmควรเป็นdefghijkl(ความยาว 9) ดังนั้นเราจึงเติมด้วยTAPETAPET; ระหว่างpและsควรเป็นqr(ความยาว 2) ดังนั้นเราจึงเติมด้วยTA; ระหว่างtและzควรจะเป็นuvwxy(ความยาว 5) TAPETเพื่อให้เรากรอกข้อมูลนี้กับ กฏท้าทาย: zraแตกต่างเพียงใช้ไปข้างหน้าจึงไม่มีเทประหว่าง เป็นไปได้ที่จะมีตัวอักษรติดกันหลายตัวเหมือนnnnกัน คุณได้รับอนุญาตให้ป้อนข้อมูลในรูปแบบที่เหมาะสม สามารถเป็นสตริงเดี่ยวสตริงอาร์เรย์ / รายการอักขระอาร์เรย์ / รายการ ฯลฯ เอาท์พุทมีความยืดหยุ่นเหมือนกัน คุณได้รับอนุญาตให้ใช้ตัวพิมพ์เล็กและ / หรือพิมพ์ใหญ่ในแบบที่คุณต้องการ TAPEนี้ใช้ได้ทั้งการป้อนข้อมูลส่งออกและ เป็นไปได้ที่ไม่TAPEจำเป็นในกรณีนี้อินพุตยังคงไม่เปลี่ยนแปลง กฎทั่วไป: นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ …
41 code-golf  string 

4
ซอฟต์แวร์รวบรวมข้อมูล Dungeon
อินพุต เมทริกซ์ไบนารีMMMแสดงถึงผนังของดันเจี้ยน ตำแหน่ง( x , y)(x,Y)(x,y)ของผู้เล่นในดันเจี้ยน ทิศทางdddที่ผู้เล่นกำลังเผชิญ (0 = ทิศเหนือ, 1 = ทิศตะวันออก, 2 = ทิศใต้, 3 = ทิศตะวันตก) เอาท์พุต การนำเสนอหลอกแบบ 3 มิติของกำแพงที่อยู่ในมุมมองของผู้เล่นในฐานะศิลปะ ASCII ที่มีอักขระ30 × 1030×1030\times 10ตัว ด้านล่างนี้เป็นเฟรมเอาต์พุตจำนวนมากที่เป็นไปได้พร้อมกับแผนที่และเข็มทิศที่สอดคล้องกันเพื่อช่วยให้แขวนได้ (แต่การวาดแผนที่และเข็มทิศไม่ใช่ส่วนหนึ่งของความท้าทาย) สเปค สาขาดู ผู้เล่นที่มี131313ผนังในด้านของเขาในมุมมองที่มีป้ายกำกับจากเพื่อM ด้านล่างคือตำแหน่งของกำแพงที่สัมพันธ์กับผู้เล่น (เป็นสีเหลือง) ในทุกทิศทางที่เป็นไปได้AAAMMM การวาดกำแพง ผนังควรถูกดึงจากAAAถึงMMMตามลำดับที่แน่นอนนี้เนื่องจากส่วนใดส่วนหนึ่งที่วาดไว้ก่อนหน้านี้อาจถูกเขียนทับโดยกำแพงที่อยู่ใกล้กว่า แน่นอนว่าคุณสามารถนำไปใช้งานต่างกันได้ตราบใดที่ผลลัพธ์สุดท้ายยังเหมือนเดิม การส่งออกทั้งหมดจะถูกวาดด้วย 7 ตัวอักษรที่แตกต่าง: " ", "'", ".", "|", "-", และ"_"":" เนื่องจากรายละเอียดรูปร่างของผนังในเนื้อความของความท้าทายนี้จะทำให้มันยาวเกินไปพวกมันจึงถูกจัดเตรียมไว้ในลิงค์ …

12
ความท้าทายที่เชื่อมโยงกัน
กิจกรรมที่ฉันทำในบางครั้งเมื่อฉันเบื่อคือการเขียนอักขระสองสามตัวในคู่ที่ตรงกัน จากนั้นฉันก็ลากเส้น (บนยอดไม่เกินด้านล่าง) เพื่อเชื่อมต่อตัวละครเหล่านี้ ยกตัวอย่างเช่นผมอาจจะเขียนขคขคแล้วผมจะวาดเส้นเป็น:abcbacabcbacabcbac หรือฉันอาจเขียนขขคคabbcacabbcacabbcac เมื่อฉันวาดเส้นเหล่านี้ฉันพยายามที่จะวาดลูปแบบปิดล้อมรอบชิ้นเพื่อให้วงของฉันไม่ได้ตัดเส้นใด ๆ ที่ฉันเพิ่งวาด ยกตัวอย่างเช่นในวงแรกวงเดียวที่เราวาดได้นั้นอยู่รอบตัวทั้งหมด แต่ในวงที่สองเราสามารถวาดวงรอบ ๆ แค่bbb s (หรือทุกอย่างอื่น) หากเราเล่นกับสิ่งนี้สักครู่ในขณะที่เราจะพบว่าบางสายสามารถวาดเพื่อให้วงปิดมีตัวอักษรทั้งหมดหรือไม่มีตัวอักษร (เช่นตัวอย่างแรกของเรา) เราจะเรียกสตริงดังกล่าวว่าสตริงที่เชื่อมโยงกันดี โปรดทราบว่าบางสายสามารถวาดได้หลายวิธี ตัวอย่างเช่นbbbbbbbbbbbbสามารถวาดได้ทั้งสองวิธีต่อไปนี้ (และไม่รวมอยู่ในรายการที่สาม): หรือ หากหนึ่งในวิธีเหล่านี้สามารถวาดได้ว่าวงรอบปิดสามารถสร้างขึ้นเพื่อให้มีอักขระบางตัวได้โดยไม่ต้องตัดเส้นใด ๆ จากนั้นสตริงจะไม่ถูกเชื่อมโยงกัน (ดังนั้นbbbbbbbbbbbbไม่ได้เชื่อมโยงกัน) งาน งานของคุณคือการเขียนโปรแกรมเพื่อระบุสตริงที่เชื่อมโยงกัน การป้อนข้อมูลของคุณจะประกอบด้วยสตริงที่อักขระทุกตัวปรากฏเป็นจำนวนครั้งและผลลัพธ์ของคุณควรเป็นหนึ่งในสองค่าที่สอดคล้องกันอย่างใดอย่างหนึ่งหนึ่งถ้าสตริงมีการเชื่อมโยงดีและอื่น ๆ นอกจากนี้โปรแกรมของคุณจะต้องมีความหมายของสตริงที่เชื่อมโยงกัน ตัวละครทุกตัวปรากฏเป็นจำนวนครั้งในโปรแกรมของคุณ มันควรส่งออกค่าความจริงเมื่อผ่านตัวเอง โปรแกรมของคุณควรสามารถสร้างเอาต์พุตที่ถูกต้องสำหรับสตริงใด ๆ ที่ประกอบด้วยอักขระจาก ASCII ที่พิมพ์ได้หรือโปรแกรมของคุณเอง ด้วยตัวละครแต่ละตัวปรากฏเป็นจำนวนครั้ง คำตอบจะได้คะแนนตามความยาวเป็นไบต์โดยมีจำนวนไบต์น้อยกว่าซึ่งเป็นคะแนนที่ดีกว่า เปรย สตริงจะไม่ได้รับการเชื่อมโยงอย่างดีถ้ามีสตริงย่อยแบบ จำกัด ที่ไม่ต่อเนื่องที่ไม่ต่อเนื่องกันอยู่ซึ่งอักขระแต่ละตัวจะปรากฏเป็นจำนวนครั้งในสตริงย่อยนั้น กรณีทดสอบ abcbac -> True abbcac -> …

30
ปูพรม
แรงบันดาลใจจากคำถาม SOนี้ ท้าทาย: การป้อนข้อมูล: สตริงsss ตัวละครคcc เอาท์พุท: สร้างรูปสี่เหลี่ยม ASCII รูปสี่เหลี่ยมขนมเปียกปูนของสตริงในทั้งสี่ทิศทางด้วยอักขระตัวแรกของสตริงที่อยู่ตรงกลางและออกไปด้านนอก ซึ่งอยู่ภายในพรมรูปสี่เหลี่ยม ASCII โดยมีตัวละครเป็นสารตัวเติม นี่อาจฟังดูไม่ชัดดังนั้นนี่เป็นตัวอย่าง: อินพุต: = , = เอาท์พุท:sssstringคcc. ..........g.......... ........g.n.g........ ......g.n.i.n.g...... ....g.n.i.r.i.n.g.... ..g.n.i.r.t.r.i.n.g.. g.n.i.r.t.s.t.r.i.n.g ..g.n.i.r.t.r.i.n.g.. ....g.n.i.r.i.n.g.... ......g.n.i.n.g...... ........g.n.g........ ..........g.......... กฏท้าทาย: อินพุตสตริงอาจเป็นรายการของอักขระ เอาท์พุทอาจเป็นรายการของสายอักขระหรือเมทริกซ์ของอักขระ อินพุตสตริงและอักขระรับประกันว่าไม่ว่างเปล่า สตริงรับประกันว่าจะไม่มีตัวอักษร ทั้งสตริงและอักขระจะสามารถพิมพ์ได้เฉพาะ ASCII (ช่วง Unicode [32,126], เว้นวรรค '' ถึงและรวมเครื่องหมายตัวหนอน '~') กฎทั่วไป: นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม …

30
พิมพ์ตารางการคูณทางกายภาพ
รูปสี่เหลี่ยมมีคุณสมบัติที่ดี - รูปสี่เหลี่ยมผืนผ้าประกอบด้วยตัวอักษร !n × mn×mn \times mn × mn×mn \times m A. คุณสมบัติที่น่าสนใจคือสี่เหลี่ยมสามารถจัดเรียงอย่างดีในตารางสูตรคูณ - ตัวอย่างเช่นตาราง :3 × 33×33 \times 3 # ## ### # ## ### # ## ### # ## ### # ## ### # ## ### ความท้าทายของคุณคือกำหนดหมายเลข ( ) เอาท์พุทตารางการคูณที่จัดรูปแบบnnnn > 1n>1 n > 1n × nn×nn …

30
ลบเลขศูนย์โดยรอบของอาร์เรย์ 2d
นี้เป็นรุ่นที่ 2 มิติของคำถามนี้ รับอาร์เรย์ / เมทริกซ์ 2 มิติที่ไม่ว่างเปล่าที่มีจำนวนเต็มไม่ลบเท่านั้น: ⎡⎣⎢⎢⎢⎢⎢⎢0000000000000100101000110⎤⎦⎥⎥⎥⎥⎥⎥[0000000010000010011100000] \begin{bmatrix} {\color{Red}0} & {\color{Red}0} & {\color{Red}0} & {\color{Red}0} & {\color{Red}0} \\ {\color{Red}0} & {\color{Red}0} & 0 & 1 & 0 \\ {\color{Red}0} & {\color{Red}0} & 0 & 0 & 1 \\ {\color{Red}0} & {\color{Red}0} & 1 & 1 & 1 \\ …

30
ในการค้นหาของเนื้อคู่
กำหนดรายชื่อ จำกัด ว่างของจำนวนเต็ม, เอาท์พุทtruthyค่าถ้ามีตรงสองรายการที่เท่าเทียมกันและรายการอื่น ๆ ทั้งหมดที่มีความแตกต่างและfalseyคุ้มค่าเป็นอย่างอื่น ตัวอย่าง truthy: [1,1] [1,2,1] [1,6,3,4,4,7,9] falsey: [0] [1,1,1] [1,1,1,2] [1,1,2,2] [2,1,2,1,2] [1,2,3,4,5]

30
ฉันเป็นอาร์เรย์ที่ไม่มีนัยสำคัญหรือไม่?
อาร์เรย์ที่ไม่มีนัยสำคัญเป็นอาร์เรย์ของจำนวนเต็มบวกที่แตกต่างแน่นอนระหว่างองค์ประกอบติดต่อกันทุกคนที่มีขนาดเล็กกว่าหรือเท่ากับ1 ตัวอย่างเช่นอาร์เรย์ต่อไปนี้ไม่มีนัยสำคัญ: [1, 2, 3, 4, 3, 4, 5, 5, 5, 4] เนื่องจากความแตกต่าง (สัมบูรณ์) ที่สอดคล้องกันคือ: [1, 1, 1, 1, 1, 1, 0, 0, 1] ซึ่งทั้งหมดมีขนาดเล็กกว่าหรือเท่ากับ1 งานของคุณคือการพิจารณาว่าอาร์เรย์จำนวนเต็มที่กำหนดนั้นไม่มีนัยสำคัญหรือไม่ คุณอาจคิดว่าอาร์เรย์มีองค์ประกอบอย่างน้อยสององค์ประกอบเสมอ ใช้กฎอินพุตและเอาต์พุตมาตรฐาน คุณสามารถรับอินพุต (และเอาท์พุท) ในรูปแบบที่สมเหตุสมผล ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม ค่าความจริง / เท็จต้องชัดเจนและสอดคล้องกัน นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ กรณีทดสอบ อินพุต -> เอาท์พุท [1, 2, 3, 4, 3, 4, 5, 5, 5, 4] …

22
ฐานที่ดีที่สุดคือ 10 ... มาถึงกันแล้ว!
การป้อนข้อมูล: เป็นจำนวนเต็มบวกnซึ่งประกอบด้วยตัวเลขในช่วง0-9 ท้าทาย: ถ้าdเป็นหลักที่สูงที่สุดในจำนวนเต็มสมมติฐานของตัวเลขคือ1 + d เช่นถ้าจำนวนเต็ม1256คุณจะถือว่ามันอยู่ในbase-7ถ้ามันคือ10110คุณก็จะสมมุติว่ามันคือbase-2 (ไบนารี) และถ้ามันเป็น159ก็จะเป็นทศนิยม ทีนี้ทำสิ่งต่อไปนี้จนกว่าคุณจะ 1: ถึงจำนวนเต็ม10 ฐานหรือ 2: ถึงจำนวนเต็มหลักเดียว แปลงจำนวนเต็มจากbase- (d + 1)เป็นbase-10 ค้นหาฐานของจำนวนเต็มใหม่นี้ (อีกครั้งฐาน - (d + 1)โดยที่dคือตัวเลขสูงสุดในจำนวนใหม่) ไปยังขั้นตอนที่ 1 ตัวอย่าง: สมมติใส่เป็นn = 413574 ตัวเลขสูงสุดd = 7ดังนั้นนี่คือเบส -8 (ฐานแปด) แปลงนี้เพื่อทศนิยมและได้รับ137,084 หลักสูงสุดd = 8ดังนั้นนี้เป็นฐาน-9 แปลงนี้เพื่อทศนิยมและได้รับ83,911 ตัวเลขสูงสุดคือ9ดังนั้นนี่คือตัวเลขทศนิยมและเราหยุด การส่งออกจะเป็น83,911 สมมติใส่เป็นn = 13552 หลักสูงสุดคือd = 5ดังนั้นนี้เป็นฐาน-6 แปลงนี้เพื่อทศนิยมและได้รับ2156 …

30
ฉันหารด้วยผลรวมของตัวเลขหลักของฉันได้หรือไม่?
รับค่าเป็นจำนวนเต็มบวกเป็นอินพุตงานของคุณคือส่งออกค่าจริงถ้าจำนวนหารด้วยผลรวมของตัวเลขสองหลักและค่าเท็จเป็นอย่างอื่น ( OEIS A134516 ) ในคำอื่น ๆ : (sum_of_digits)*2 | number แทนค่าความจริง / เท็จสำหรับกรณีจริงและเท็จคุณอาจระบุชุดของค่า จำกัด สำหรับกรณีจริง / เท็จและเติมเต็มค่าอื่น ๆ สำหรับตัวอย่างง่ายๆคุณสามารถใช้0สำหรับกรณีจริงและตัวเลขอื่น ๆ ทั้งหมดสำหรับคดีเท็จ (หรือกลับกันหากคุณต้องการ) ใช้กฎอินพุตและเอาต์พุตมาตรฐาน ช่องโหว่เริ่มต้นยังใช้ คุณสามารถรับอินพุตเป็นจำนวนเต็มหรือแทนสตริงของจำนวนเต็มนั้นได้ นี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ! ฉันใหม่สำหรับ PPCG ดังนั้นฉันต้องการให้คุณโพสต์คำอธิบายหากเป็นไปได้ กรณีทดสอบ อินพุต - เอาต์พุต - (เหตุผล) 80 - Truthy - (16 หาร 80) 100 - ความจริง - (2 หาร 100) …

30
การย้ายขั้นต่ำที่เจียมเนื้อเจียมตัว
ได้รับแรงบันดาลใจจากคำถามที่ Stack Overflow ชื่อที่นี่เป็นความผิดทั้งหมดของฉัน ความท้าทาย รับรายการจำนวนเต็มบวกที่มีอย่างน้อยสองรายการแทนที่แต่ละตัวเลขด้วยจำนวนต่ำสุดของรายการทั้งหมดยกเว้นตัวเอง กรณีทดสอบ [4 3 2 5] -> [2 2 3 2] [4 2 2 5] -> [2 2 2 2] [6 3 5 5 8] -> [3 5 3 3 3] [7 1] -> [1 7] [9 9] -> [9 9] [9 8 9] -> …

6
ตรวจจับปราสาทที่ล้มเหลว
หนึ่งในแง่มุมที่น่าสนใจของแรงโน้มถ่วงคือเท่าที่ฉันทราบคุณไม่สามารถมีสิ่งของที่ลอยอยู่กลางอากาศ อย่างไรก็ตามดูเหมือนว่าทุกคนในสมาคมผู้สร้างปราสาทสุ่มจะไม่ตระหนักถึงความจริงนี้นำไปสู่ปราสาทเช่นนี้: # # # # # # ### #### #### # # #### # # #### ### ############## ### ###### ###### ### ##### ##### ### ### `````````````````````````````` และอันนี้: # # # # # # ############## ### #### ### # # # # # # # # ### #### ### …

30
จำนวนเต็มมากมาย!
จำนวนมากมายเป็นจำนวนใด ๆ ที่ผลรวมของตัวหารที่เหมาะสมของมันมีค่ามากกว่าจำนวนเดิม ตัวอย่างเช่นตัวหารที่เหมาะสมของ 12 คือ: 1, 2, 3, 4, 6 และการรวมผลลัพธ์เหล่านี้ใน 16 เนื่องจาก 16 มีขนาดใหญ่กว่า 12, 12 จึงอุดมสมบูรณ์ โปรดทราบว่าสิ่งนี้ไม่รวม "Perfect numbers" เช่นตัวเลขที่เท่ากับผลรวมของตัวหารที่เหมาะสมเช่น 6 และ 28 งานของคุณในวันนี้คือการเขียนโปรแกรมหรือฟังก์ชั่นที่พิจารณาว่ามีจำนวนมากหรือไม่ โปรแกรมของคุณควรใช้จำนวนเต็มเดียวเป็นอินพุทและเอาท์พุทค่าความจริง / ผิดพลาดขึ้นอยู่กับว่ามันมีอยู่มากมายหรือไม่ คุณสามารถสันนิษฐานได้ว่าอินพุตนั้นจะถูกต้องเสมอและมากกว่า 0 ดังนั้นสำหรับอินพุตที่ไม่ดีพฤติกรรมที่ไม่ได้กำหนดนั้นดี คุณสามารถนำเข้าและส่งออกของคุณในรูปแบบที่เหมาะสมเช่น STDIN / STDOUT ไฟล์หรือค่าอาร์กิวเมนต์ / ค่าส่งคืนจะยอมรับได้ สำหรับการอ้างอิงต่อไปนี้เป็นจำนวนที่มากถึง 100: 12, 18, 20, 24, 30, 36, 40, 42, …

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