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

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

5
ทำตัวเอียงศิลปะ ASCII
เมื่อกำหนดอินพุตของรูปภาพศิลปะ ASCII ให้ส่งออกศิลปะ ASCII ที่ทำเป็นตัวเอียง หากต้องการเอียงศิลปะ ASCII ให้ทำดังนี้: แทรกศูนย์เว้นวรรคก่อนบรรทัดสุดท้ายหนึ่งช่องว่างก่อนบรรทัดที่สองสุดท้ายช่องว่างสองช่องก่อนบรรทัดที่สามสุดท้าย ฯลฯ ลบช่องว่างนำหน้าพิเศษใด ๆ ที่อาจสร้างขึ้น นั่นคือถ้าแต่ละบรรทัดมีnช่องว่างก่อนหน้านั้นอย่างน้อยให้ลบnช่องว่างออกจากจุดเริ่มต้นของแต่ละบรรทัด แทนที่ทั้งหมด\s กับ|ทุก|วินาทีที่มี/และทุกวินาทีกับ/ _รักษาที่มีอยู่_เดิม อินพุตรับประกันว่ามีเฉพาะอักขระ\|/_และช่องว่าง ตัวอย่างเช่นการป้อนข้อมูล /\/\/\ /\/\/\ /\/\/\ /\/\/\ /\ /\ /\ /\ /\ /\ /\/\/\ /\/\/\ /\ /\ /\/\ /\ /\ /\ /\ /\ /\ /\ /\/\/\ /\/\/\ จะต้องส่งออก _|_|_| _|_|_| _|_|_| _|_|_| _| _| …

13
เห็นภาพการทอผ้าบิต
ความชั่วร้ายของการเขียนโปรแกรมภาษาลึกลับมีการดำเนินการที่น่าสนใจเกี่ยวกับค่าไบต์ซึ่งเรียกว่า "การทอผ้า" มันคือการเปลี่ยนรูปแบบของบิตที่แปดของไบต์ (มันไม่สำคัญว่าเราจะเริ่มนับจากจุดสิ้นสุดเนื่องจากรูปแบบสมมาตร): บิต 0 ถูกย้ายไปที่บิต 2 บิต 1 ถูกย้ายไปที่บิต 0 ย้ายบิต 2 ไปเป็นบิต 4 บิต 3 ถูกย้ายไปยังบิต 1 บิต 4 ถูกย้ายไปยังบิต 6 ย้ายบิต 5 ไปเป็นบิต 3 บิต 6 ถูกย้ายไปยังบิต 7 ย้ายบิต 7 ไปเป็นบิต 5 เพื่อความสะดวกนี่เป็นอีกสองแนวทางของการเปลี่ยนแปลง เป็นวงจร: (02467531) และเป็นรายการคู่ของแผนที่: [[0,2], [1,0], [2,4], [3,1], [4,6], [5,3], [6,7], [7,5]] งานของคุณคือเพื่อให้มองเห็นการเปลี่ยนแปลงนี้โดยใช้ตัวอักษรที่กล่องวาดภาพ─, │, …

30
ตัวแปลงไบนารีเป็นทศนิยม
ตัวแปลงไบนารีเป็นทศนิยม เท่าที่ฉันเห็นเราไม่มีการแปลงเลขฐานสองเป็นทศนิยมแบบธรรมดา เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มเลขฐานสองบวกและส่งออกค่าทศนิยม คุณไม่ได้รับอนุญาตให้ใช้ฟังก์ชันการแปลงฐานในตัวใด ๆ ฟังก์ชันจำนวนเต็มถึงทศนิยม (เช่นฟังก์ชันที่เปลี่ยน101010เป็น[1, 0, 1, 0, 1, 0]หรือ"101010") ได้รับการยกเว้นจากกฎนี้และอนุญาตให้ใช้ กฎ: รหัสจะต้องรองรับตัวเลขไบนารี่ถึงค่าตัวเลขสูงสุดที่ภาษาของคุณรองรับ คุณอาจเลือกที่จะมีศูนย์นำหน้าในการเป็นตัวแทนไบนารี เอาต์พุตทศนิยมอาจไม่มีศูนย์นำหน้า รูปแบบอินพุตและเอาต์พุตเป็นตัวเลือก แต่จะไม่มีตัวคั่นใด ๆ ระหว่างตัวเลข (1,0,1,0,1,0,1,0)ไม่ใช่รูปแบบอินพุตที่ถูกต้อง แต่ทั้งสองอย่าง10101010และ(["10101010"])เป็น คุณจะต้องป้อนข้อมูลในทิศทาง "ปกติ" 1110คือไม่ได้147 กรณีทดสอบ: 1 1 10 2 101010 42 1101111111010101100101110111001110001000110100110011100000111 2016120520371234567 ความท้าทายนี้จะเกี่ยวข้องกับความท้าทายอื่น ๆ ไม่กี่เช่นนี้ , นี้และนี้

30
ฉันจะได้รับ repdigit ได้อย่างไร
เพื่อเป็นเกียรติแก่ตัวแทนเท่าที่ฉันมีหลายชั่วโมงที่ผ่านมาเมื่อฉันคิดถึงความท้าทายนี้เป็นครั้งแรก: เบอร์เช่นนี้ที่จะทำขึ้นของตัวเลขหลักเดียวซ้ำจะเรียกว่าrepdigits Repdigits สนุก! ร่างกายทุกคนจะมีความสุขมากขึ้นถ้าปริมาณของตัวแทนพวกเขามีความเป็น repdigit ¹แต่ผมใจร้อนดังนั้นคุณจึงจำเป็นที่จะช่วยฉันหาวิธีที่เร็วที่สุดที่จะได้รับ repdigit นี่คือความท้าทายของคุณ: รับจำนวนเต็มบวกที่เป็นตัวแทนของชื่อเสียงส่งออกจำนวนตัวแทนขั้นต่ำที่พวกเขาต้องการเพื่อรับไปยัง repdigit ตัวอย่างเช่นในขณะที่เขียนความท้าทายนี้ผู้ใช้Martin Enderมีตัวแทน 102,856 คน หมายเลขตัวแทนที่ใกล้ที่สุดคือ 111,111 ดังนั้นเขาจะต้องได้รับ: 8255 ตัวแทนจะต้องเป็น repdigit เนื่องจากคนไม่ชอบการสูญเสียตัวแทนเราจะพิจารณาเฉพาะการเปลี่ยนแปลงที่ไม่เป็นลบ ซึ่งหมายความว่าตัวอย่างเช่นหากใครบางคนอยู่ที่ 12 ตัวแทนแทนที่จะเสีย 1 ตัวแทนโซลูชันจะได้รับ 10 ตัวแทน สิ่งนี้อนุญาตให้ '0' เป็นเอาต์พุตที่ถูกต้องเนื่องจากใครก็ตามที่มี 111 rep อยู่ที่ repdigit แล้ว อินพุตและเอาต์พุตสามารถอยู่ในรูปแบบที่เหมาะสมและเนื่องจากเป็นไปไม่ได้ที่จะมีน้อยกว่า 1 ตัวแทนในไซต์ Stack Exchange ใด ๆ คุณจึงสามารถสรุปได้ว่าไม่มีอินพุตใดจะน้อยกว่า 1 หนึ่ง Cornercase ที่ควรทราบ: หากผู้ใช้มีตัวแทนน้อยกว่า …
32 code-golf  math  number 

5
ปฏิกิริยาลูกโซ่ของระเบิด
บทนำ: ก่อนงานนี่คือสิ่งที่ทุกองค์ประกอบทำบนแผนที่: ที่ดินเปล่า ( X): มันไม่ทำอะไรเลย Destroyed ที่ดิน ( -): นี่เป็นดินแดนเดียวกัน แต่ถูกทำลายด้วยระเบิด The bomb ที่ใช้งานอยู่ ( !): บนแผนที่สิ่งนี้จะทำลายทุกอย่างในพื้นที่ 3x3: XXXXX XXXXX XXXXX X---X XX!XX > will become > X---X XXXXX X---X XXXXX XXXXX The Passive bomb ( @): ไม่ทำอะไรเลยจนกว่าจะมีการระเบิดด้วยระเบิดอีกครั้ง นี่ก็มีรัศมีการระเบิด 3 x 3 : XXXXX XXXXX XXXXX XXXXX XX@XX > …

9
ลบวงเล็บที่ไม่จำเป็นออก
0123456789+*()คุณจะได้รับสตริงประกอบกับตัวละคร คุณสามารถสันนิษฐานได้ว่าสตริงนั้นเป็นนิพจน์ทางคณิตศาสตร์ที่ถูกต้องเสมอ งานของคุณคือการลบวงเล็บที่ไม่จำเป็นโดยสมมติว่าการคูณนั้นมีลำดับความสำคัญสูงกว่าการเพิ่ม ควรลบวงเล็บออกเฉพาะเมื่อไม่จำเป็นต้องมีโครงสร้าง : เนื่องจากการคูณมีลำดับความสำคัญสูงกว่า: 3+(4*5)=>3+4*5 เนื่องจากการคูณหรือการเพิ่มการเชื่อมโยง: 3*(4*5)=>3*4*5 เมื่อพวกเขาซ้ำซ้อนรอบการแสดงออก: 3*((4+5))=>3*(4+5) ควรเก็บวงเล็บไว้เมื่อสามารถทำให้ง่ายขึ้นเนื่องจากค่าตัวเลขเฉพาะ: 1*(2+3) ไม่ควรทำให้ง่ายขึ้น 1*2+3 0*(1+0) ไม่ควรทำให้ง่ายขึ้น 0*1+0 ตัวอย่าง: (4*12)+11 ==> 4*12+11 (1+2)*3 ==> (1+2)*3 3*(4*5) ==> 3*4*5 ((((523)))) ==> 523 (1+1) ==> 1+1 1*(2*(3+4)*5)*6 ==> 1*2*(3+4)*5*6 1*(2+3) ==> 1*(2+3) 0*(1+0) ==> 0*(1+0) (((2+92+82)*46*70*(24*62)+(94+25))+6) ==> (2+92+82)*46*70*24*62+94+25+6

30
มันเป็นชุดฟรี
ชุดไม่มีผลรวมหากไม่มีองค์ประกอบสอง (ไม่จำเป็นต้องแตกต่างกัน) เมื่อรวมเข้าด้วยกันเป็นส่วนหนึ่งของชุดตัวเอง ตัวอย่างเช่นไม่มี{1, 5, 7}ผลรวมเนื่องจากสมาชิกทั้งหมดเป็นเลขคี่และสองเลขคี่เมื่อรวมเข้าด้วยกันจะเป็นเลขคู่เสมอ ในทางกลับกัน{2, 4, 9, 13}ไม่มีผลรวมเป็น2 + 2 = 4หรือ4 + 9 = 13เพิ่มเข้าด้วยกันเป็นสมาชิกของชุด เขียนโปรแกรมหรือฟังก์ชั่นที่รับชุดเป็นอินพุตและส่งออกค่า Truthy หากชุดนั้นไม่มีผลรวมและเป็นเท็จอย่างอื่น ตัวอย่าง: Sum-free: {} {4} {1, 5, 7} {16, 1, 4, 9} Not sum-free: {0} {1, 4, 5, 7} {3, 0} {16, 1, 4, 8}

6
โอเอกซ์ด้วยการข้ามเท่านั้น
บทนำ ทุกคนรู้เกมโอเอกซ์ แต่ในความท้าทายนี้เราจะแนะนำการบิดเล็กน้อย เราจะใช้ไม้กางเขนเท่านั้น คนแรกที่ข้ามสามในแถวแพ้ ข้อเท็จจริงที่น่าสนใจคือจำนวนข้ามสูงสุดก่อนที่ใครบางคนจะสูญเสียเท่ากับ6 : X X - X - X - X X นั่นหมายความว่าสำหรับบอร์ด 3 x 3 จำนวนสูงสุดคือ 6 ดังนั้นสำหรับ N = 3 เราต้องเอาท์พุท 6 อีกตัวอย่างหนึ่งสำหรับ N = 4 หรือบอร์ด 4 x 4: X X - X X X - X - - - - X X …

9
หมุนตัวต้านเส้นทแยงมุม
พื้นหลัง ในภาษาการเขียนโปรแกรมที่เหมาะสมที่สุดมันง่ายมากที่จะหมุนแถวหรือคอลัมน์ของอาร์เรย์ 2D ในการท้าทายนี้งานของคุณคือหมุนตัวต้านเส้นทแยงมุมแทน โปรดจำไว้ว่าการต้านเส้นทแยงมุมของอาเรย์ 2 มิตินั้นเป็น 1D สไลซ์ในทิศทางตะวันออกเฉียงเหนือ↗ อินพุต อาร์เรย์ 2D สี่เหลี่ยมที่ไม่ว่างเปล่าของตัวเลขหลักเดียวในรูปแบบที่เหมาะสม โปรดทราบว่าอาเรย์อาจจะไม่ใช่รูปสี่เหลี่ยมจัตุรัส เอาท์พุต อาเรย์เดียวกัน แต่มีการต่อต้านในแนวทแยงหมุนหนึ่งขั้นตอนไปทางขวา ตัวอย่าง พิจารณา3x4อินพุตอาร์เรย์ 0 1 2 3 4 5 6 7 8 9 0 1 การต่อต้านแนวทแยงมุมของอาเรย์นี้คือ 0 4 1 8 5 2 9 6 3 0 7 1 เวอร์ชันที่หมุนได้ของพวกเขาคือ 0 1 4 2 8 …

4
ป้อนชื่อของคุณผ่าน D-pad
ปริศนา: พิจารณาเกมคอนโซล / มือถือที่มี d-pad ที่คุณจะต้องป้อนชื่อแปลก ๆ สิ่งนี้ปรากฏในเกมรุ่นเก่าหลายเกมก่อนที่จะใช้ QWERTY เป็นที่นิยมในคอนโซล (เช่นฉันเชื่อว่า Wii ใช้รูปแบบแป้นพิมพ์ QWERTY สำหรับป้อนข้อมูล) โดยทั่วไปแป้นพิมพ์บนหน้าจอจะมีผลกับ *: ค่าเริ่มต้น: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V …
32 code-golf 

4
สลับคณะกรรมการเรือกวาดทุ่นระเบิด
Minesweeperเป็นเกมคอมพิวเตอร์ยอดนิยมที่คุณอาจเสียเวลาในการเล่นซึ่งคุณพยายามที่จะเปิดเผยเซลล์ที่ทำเหมืองในตารางสี่เหลี่ยมโดยคำแนะนำของจำนวนเหมืองที่อยู่ใกล้เคียงแต่ละเซลล์ที่ไม่ใช่ของเหมืองมี และในกรณีที่คุณไม่ได้เล่นมันทำที่นี่ ข้อเท็จจริงทางคณิตศาสตร์ที่ดีเกี่ยวกับ Minesweeper grid (aka board) คือ: กระดานและส่วนประกอบของมันมีจำนวนเหมืองทั้งหมดเท่ากัน ( พิสูจน์ ) กล่าวคือถ้าคุณมีตาราง Minesweeper ที่เปิดเผยทั้งหมดผลรวมจำนวนทั้งหมดบนกริดนั้นคือผลรวมของเหมืองจะเท่ากับผลรวมทั้งหมดของส่วนเสริมของกริดซึ่งเป็นตารางที่ทุก ๆ เหมืองถูกแทนที่ กับไม่ใช่ของฉันและทุกไม่ใช่ของฉันถูกแทนที่ด้วยของฉัน ตัวอย่างเช่นสำหรับตาราง Minesweeper **1.. 34321 *2**1 จำนวนเหมืองทั้งหมดคือ 1 + 3 + 4 + 3 + 2 + 1 + 2 + 1 = 17 ส่วนประกอบของกริดคือ 24*** ***** 3*44* ซึ่งมีจำนวนของฉันทั้งหมด 2 + 4 + …

9
ยอดคงเหลือชุดน้ำหนักบนกระดานหก
พระราชบัญญัติการปรับสมดุล ภาพรวม กำหนดอินพุตของจำนวนเต็มบวกจำนวนเต็ม 3 หลักซึ่งเป็นตัวแทนของชุดตุ้มน้ำหนักเอาท์พุทเป็นตัวแทน ASCII ของกระดานหกด้วยน้ำหนักที่วางไว้เพื่อให้อยู่ในสมดุลรอบเดือยกลางโดยคำนึงถึงผลกระทบของคาน แต่ละหมายเลขมีน้ำหนักเท่ากับค่าของมัน แรงบิดของแต่ละหมายเลขคือน้ำหนักคูณระยะทางจากศูนย์กลางเป็นตัวอักษร สำหรับกระดานหกที่จะอยู่ในความสมดุลแรงบิดผลรวมของน้ำหนักบนด้านซ้ายของกระดานหกที่ต้องเท่ากับว่าผู้ที่อยู่ในที่เหมาะสมเช่นนี้ อินพุต 3 จำนวนเต็มในช่วง 1-9 คุณสามารถป้อนจำนวนเต็มอย่างไรก็ตามสะดวกเช่น tuple, 3 ค่าคั่นด้วยเครื่องหมายจุลภาคเป็นต้นอย่างไรก็ตามโปรแกรมของคุณจะต้องสามารถจัดการกับตัวเลขที่ป้อนในลำดับใด ๆ (เช่นไม่มีการสมมติว่าค่าจะถูกเรียงลำดับ) ตัวเลขที่ซ้ำกันอาจเป็นอินพุต (เช่น 2,3,2) อินพุตจะให้ผลลัพธ์ที่ถูกต้องทางคณิตศาสตร์เสมอมิฉะนั้นอินพุตไม่ถูกต้อง เอาท์พุต เอาต์พุตควรเป็นตัวแทน ASCII แบบ 2 บรรทัดของกระดานหกด้วยน้ำหนักที่วางไว้ ในบรรทัดแรกคือตัวเลขเว้นระยะเพื่อให้สมดุลกับกระดานหก ตัวเลขอาจไม่ถูกวางไว้ที่กึ่งกลางของเครื่องชั่งซึ่งระยะห่างและแรงบิดจะเป็นศูนย์ ระยะทางที่ถูกต้องจากช่วงกลางจาก 1-10 ตัวรวมไปทางซ้ายหรือขวาของเดือย ในช่องว่างที่ว่างโดยตัวเลขคืออักขระขีดล่าง 18 ตัว (ขีดกลางตรงกลางและ 10 แต่ละด้านลบลบตำแหน่งที่ว่างโดยตัวเลข 3 ตำแหน่ง) ในบรรทัดสุดท้ายเป็นคาเร็ตตัวเดียวที่อยู่ตรงกลางของสเกลแทนการหมุน ตัวอย่าง การป้อนข้อมูล: 4,7,2 เอาท์พุท: ________7___42_______ ^ …

11
คุณสามารถทำพายผลไม้สามลูกได้กี่ก้อน
พายสามผลไม้ทำจากผลไม้สามแบบ พายสามผลไม้ที่คุณสามารถทำได้มากที่สุดจากปริมาณผลไม้ 5 ชนิดที่คุณมีคืออะไร ตัวอย่างเช่นด้วย 1 apple 1 banana 4 mangoes 2 nectarines 0 peaches คุณสามารถทำ 2 พาย: apple, mango, nectarine banana, mango, nectarine อินพุต:ห้าจำนวนเต็มที่ไม่เป็นลบหรือรายการของพวกเขา เอาท์พุท:จำนวนสูงสุดของพายสามผลไม้ที่คุณสามารถทำได้จากปริมาณของผลไม้เหล่านั้น ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ กรณีทดสอบ: 1 1 4 2 0 2 2 2 2 2 2 3 0 6 0 6 0 0 12 5 3 2 …
32 code-golf 

3
FizzBuzz Reverse Solver
เรื่องย่อ:จากผลลัพธ์ของโปรแกรม FizzBuzz ทั่วไปให้ส่งคืนรายการปัจจัยและคำที่ใช้สำหรับโปรแกรม คำอธิบายการท้าทาย ลองนึกภาพโปรแกรม FizzBuzz ทั่วไปที่ป้อนข้อมูลรายการปัจจัยและคำที่ใช้และจำนวนที่จะเริ่ม ตัวอย่างเช่นหากอินพุตของโปรแกรมนี้คือ 3 2,Ninja 5,Bear 7,Monkey โปรแกรมจะพิมพ์ออกมาจากตัวเลข3ที่จะ100เปลี่ยนหมายเลขหารด้วย2กับNinjaตัวเลขหารด้วย5กับBearและตัวเลขหารด้วยกับ7 Monkeyสำหรับตัวเลขที่หารแล้วมากกว่าหนึ่งของคำเหล่านั้นโปรแกรมจะเชื่อมคำพิมพ์สิ่งต่างๆเช่นNinjaBearหรือBearMonkeyหรือหรือNinjaMonkey NinjaBearMonkeyนี่คือผลลัพธ์ของอินพุตนั้น: 3 Ninja Bear Ninja Monkey Ninja 9 NinjaBear 11 Ninja 13 NinjaMonkey Bear Ninja 17 Ninja 19 NinjaBear Monkey Ninja 23 Ninja Bear Ninja 27 NinjaMonkey 29 NinjaBear 31 Ninja 33 Ninja BearMonkey Ninja 37 …
32 code-golf 

20
คุณได้รับของขวัญคริสต์มาสมากแค่ไหน
ใช่เท่าไหร่เท่าไหร่ ... อย่างที่เราทราบกันดีว่าของขวัญชิ้นใหญ่นั้นดีกว่าของเล็ก ดังนั้นมูลค่าของของขวัญควรวัดในปริมาณรวมเสมอไม่ใช่จำนวนของขวัญน้ำหนักหรือแม้แต่ราคารวม ในขณะที่มันขมวดคิ้วเมื่อเปรียบเทียบจำนวนของของขวัญที่ได้รับคุณไม่ต้องการสคริปต์ยาว ๆ ที่คนอื่นเห็นได้ง่ายและอ่านได้ในปาร์ตี้คริสมาสต์ ดังนั้นคุณต้องเก็บจำนวนไบต์ในสคริปต์ของคุณอย่างน้อย งานของคุณเป็นเรื่องง่าย: สร้างโปรแกรมที่รับรายการส่วนข้อมูลเป็นอินพุตในรูปแบบที่เหมาะสมและแสดงผลปริมาณรวมของงานนำเสนอของคุณ ขนาดของแต่ละของขวัญจะเป็นชุดของตัวเลขสามตัวหรือตัวเลขเดียว ถ้าใส่เป็นเลขสาม ( L, W, H) L x W x Hปัจจุบันเป็นทรงสี่เหลี่ยมขนาด ถ้ามันเป็นหมายเลขเดียว ( R) Rปัจจุบันเป็นรูปทรงกลมของรัศมี กฎ: สามารถเป็นได้ทั้งโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบ อินพุตสามารถอยู่ในรูปแบบที่สะดวก ถ้าเป็นที่ต้องการทรงกลมอาจแสดงด้วยตัวเลขตามด้วยศูนย์สองศูนย์ ทรงลูกบาศก์จะมีมิติที่ไม่ใช่ศูนย์ทั้งหมดเสมอ ผลลัพธ์ควรเป็นตัวเลขทศนิยมเดียว เอาต์พุตเพิ่มเติมได้รับการยอมรับตราบใดที่เห็นได้ชัดว่าคำตอบคืออะไร เอาต์พุตต้องมีอย่างน้อยสองหลักหลังจุดทศนิยม เอาต์พุตสามารถอยู่ในรูปแบบมาตรฐาน / สัญกรณ์วิทยาศาสตร์หากจำนวนมากกว่า 1,000 ในกรณีที่ภาษาของคุณไม่มีค่าคงที่ Pi คำตอบควรแม่นยำถึง 9999.99 ตัวอย่าง: ((1,4,3),(2,2,2),(3),(4,4,4)) 197.0973 // (1*4*3 + 2*2*2 + 4/3*pi*3^3 …

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