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

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

30
กรองและเพิ่ม
งาน งานง่ายมาก กำหนดสตริงไม่ว่างเปล่าที่มีตัวเลข , ตัวพิมพ์ใหญ่และพิมพ์เล็กตัวอักษร , การส่งออกผลรวมของตัวเลขที่ยังเหลืออยู่ ตัวอย่างเช่น: a1wAD5qw45REs5Fw4eRQR33wqe4WE การกรองจดหมายทั้งหมดจะส่งผลให้: 1 5 45 5 4 33 4 1 + 5 + 45 + 5 + 4 + 33 + 4 = 97ผลรวมของตัวเลขเหล่านี้คือ 97ดังนั้นการส่งออกจะเป็น กรณีทดสอบ a > 0 0 > 0 5 > 5 10 > 10 a0A > 0 1a1 …

12
ลบแถวที่ไม่ใช่ตัวเลขที่ระบุ
ในกรณีที่มีข้อสงสัยใด ๆ : Nan = Non-numeric datatypeสำหรับวัตถุประสงค์ของการท้าทายนี้ เขียนโปรแกรมหรือฟังก์ชั่นที่รับเมทริกซ์ / อาร์เรย์เป็นอินพุตเช่นเดียวกับรายการดัชนีคอลัมน์ Nanความท้าทายคือการลบแถวที่องค์ประกอบทั้งหมดในคอลัมน์ที่ระบุเป็น มันไม่สำคัญว่าองค์ประกอบอื่น ๆ ในแถวจะเป็นตัวเลขหรือไม่ ตัวอย่างต่อไปนี้หวังว่าจะทำให้ชัดเจนยิ่งขึ้น (เป็นดัชนีเดียว): Input array: 16 NaN 3 13 5 11 NaN 8 NaN 7 NaN 12 4 14 -15 1 Input column index: [1 3] Output array: 16 NaN 3 13 5 11 NaN 8 4 …

4
ตลาดหุ้นโง่
รับสตริงที่มีข้อมูลการลงทุนของหลาย ๆ คนค้นหาว่าพวกเขาบันทึกกำไร / ขาดทุนจำนวนเท่าใด สตริงมีเพียงตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเช่นนี้ AABaBbba ตัวอักษรแต่ละตัวแสดงถึงบุคคล - ตัวพิมพ์ใหญ่หมายถึงซื้อตัวอักษรตัวเล็กหมายถึงขาย ราคาหุ้นที่พวกเขาลงทุน (CGLF) เริ่มต้นที่ $ 50 หลังจากมีคนซื้อราคาก็สูงขึ้น 5% หลังจากมีคนขายราคาก็ลดลง 5% คุณต้องคิดออกว่าแต่ละคนที่เข้าร่วมทำ / แพ้จะต้องใช้เงินเท่าไหร่ หมายเหตุ: สตริงจะใช้ได้ตลอดไม่มีการขายโดยไม่ต้องซื้อครั้งแรก ทุกคนที่ซื้อหุ้นจะขายมันในที่สุด การคำนวณของคุณควรแม่นยำถึงตำแหน่งทศนิยมอย่างน้อย 6 ตำแหน่ง อย่างไรก็ตามคำตอบสุดท้ายควรปัดเศษเป็นทศนิยมสองตำแหน่ง กรณีทดสอบ: การป้อนข้อมูล: AABaBbba A: ซื้อ - $ 50 A: ซื้อ - $ 52.50 B: ซื้อ - $ 55.125 a: ขาย - …
16 code-golf 

10
แยกพลิกและรวบรวมจำนวนเต็มอีกครั้ง
พื้นหลัง เป็นที่รู้จักกันดีในวิชาคณิตศาสตร์ที่สามารถใส่จำนวนเต็มลงในการติดต่อแบบหนึ่งต่อหนึ่งกับคู่ของจำนวนเต็ม มีหลายวิธีที่เป็นไปได้ในการทำเช่นนี้และในการท้าทายนี้คุณจะใช้หนึ่งในนั้นและการดำเนินการแบบผกผัน งาน n > 0ข้อมูลของคุณเป็นจำนวนเต็มบวก เป็นที่ทราบกันว่ามีอยู่จำนวนเต็มไม่ซ้ำกันที่ไม่ใช่เชิงลบดังกล่าวว่าa, b ≥ 0 การส่งออกของคุณเป็นรุ่น "พลิก" ของที่จำนวนเต็มบวกn == 2a * (2*b + 1)n2b * (2*a + 1) คุณสามารถสันนิษฐานได้ว่าอินพุตและเอาต์พุตเหมาะสมกับประเภทข้อมูลจำนวนเต็มแบบไม่ได้ลงนามมาตรฐานของภาษาของคุณ กฎและการให้คะแนน คุณสามารถเขียนโปรแกรมเต็มหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ สิ่งเหล่านี้ถูกกำหนดในรูปแบบin <-> outเนื่องจากฟังก์ชั่นที่จะใช้งานนั้นเป็นค่าผกผันของตัวเอง: หากคุณป้อนข้อมูลกลับคืนคุณควรรับอินพุตต้นฉบับ 1 <-> 1 2 <-> 3 4 <-> 5 6 <-> 6 7 <-> 8 9 <-> …

2
Chess-olition Derby
สิ่งที่อาจจะเป็นขั้วตรงข้ามมากกว่าหมากรุกและดาร์บี้รื้อถอน คุณจะคิดว่าไม่มีใครที่สนุกกับคนหนึ่งจะเพลิดเพลินไปกับคนอื่น ... จนกระทั่งวันนี้ กฎระเบียบ ตำแหน่งเริ่มต้นคือกระดานหมากรุกมาตรฐาน: RNBQKBNR PPPPPPPP PPPPPPPP RNBQKBNR ดูปกติพอจนกว่าคุณจะพบว่ามันเป็นชิ้นส่วนของตัวเองทุกชิ้นสุดท้ายการแข่งขันยืนอยู่ : ในทุกเทิร์นแต่ละชิ้นบนกระดานจะทำการสุ่มหนึ่งครั้ง * - เลือกที่ถูกต้อง (โดยใช้กฎการย้ายแบบมาตรฐาน) อย่างไรก็ตามการเรียงลำดับชิ้นส่วนจะถูกสุ่มทุกเทิร์น ชิ้นส่วนสามารถจับภาพชิ้นใดก็ได้ก็ได้แม้ว่าจะเป็นสีเดียวกันกับมันแม้กระทั่งราชา ผู้รับจำนำสามารถจับภาพไปข้างหน้าเช่นเดียวกับในแนวทแยง ยิ่งไปกว่านั้นเช่นเดียวกับปกติหากมีช่องว่างด้านหน้าตัวรับจำนำสามารถย้ายช่องว่างสองช่องในการเคลื่อนไหวครั้งแรก (พวกเขาสามารถจับได้ด้วยวิธีนั้น) นอกจากนี้การจำนำจะเลื่อนไปที่ชิ้นส่วนสุ่ม (รวมถึงกษัตริย์) นอกเหนือจาก จำนำ. ผู้ชนะคือชิ้นสุดท้ายที่ยืน อย่างไรก็ตามหากหลังจาก1,000 รอบมีมากกว่าหนึ่งชิ้นส่วนที่เหลือทั้งหมดเป็นผู้ชนะ ไม่มีผู้โดยสาร, ตรวจสอบ, ปราสาท ฯลฯ เอาท์พุต ทุกเทิร์นจะแสดงหมายเลขเทิร์นตามที่คณะกรรมการกำหนด หลังจากชิ้นส่วนถูกฆ่ามันจะถูกลบออกจากกระดาน หลังจากรอบแรกคณะกรรมการอาจมีลักษณะเช่นนี้: 1. K RBQ N BR NP P P PP P P R PP …

9
การแปลงฐานด้วยสตริง
บทนำ เรามีความท้าทายในการแปลงฐานสองสามที่นี่ในอดีต แต่ไม่มากที่ออกแบบมาเพื่อจัดการกับความยาวโดยพลการ ซับซ้อน. ฉันอยากรู้ว่าการเปลี่ยนแปลงของรหัสฐานแบบนี้จะเป็นอย่างไร ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นในภาษาที่คุณเลือกซึ่งสามารถแปลงสตริงของฐานหนึ่งเป็นสตริงของฐานอื่นได้ อินพุตควรเป็นตัวเลขที่จะถูกแปลง (สตริง), จากฐาน (หมายเลขฐาน 10), เป็นฐาน (หมายเลขฐาน 10) และชุดอักขระ (สตริง) เอาต์พุตควรเป็นตัวเลขที่แปลง (สตริง) รายละเอียดและกฎเพิ่มเติมบางประการมีดังนี้: จำนวนที่จะแปลงจะเป็นจำนวนเต็มไม่เป็นลบ (ตั้งแต่-และ.อาจอยู่ในชุดอักขระ) ดังนั้นก็จะเป็นผลลัพธ์ เลขศูนย์นำหน้า (อักขระแรกในชุดอักขระ) ควรถูกตัดออก หากผลลัพธ์เป็นศูนย์เลขศูนย์จะยังคงอยู่ ช่วงฐานขั้นต่ำที่รองรับคือ 2 ถึง 95 ซึ่งประกอบด้วยอักขระ ascii ที่พิมพ์ได้ อินพุตสำหรับหมายเลขที่จะถูกแปลงชุดอักขระและเอาต์พุตทั้งหมดต้องเป็นประเภทข้อมูลสตริง ฐานจะต้องเป็นประเภทข้อมูลจำนวนเต็มฐาน 10 (หรือจำนวนเต็มลอย) ความยาวของสตริงหมายเลขอินพุตอาจมีขนาดใหญ่มาก เป็นการยากที่จะนับจำนวนขั้นต่ำที่เหมาะสม แต่คาดว่าจะสามารถจัดการอย่างน้อย 1,000 ตัวอักษรและป้อนตัวอักษร 100 ตัวในเวลาน้อยกว่า 10 วินาทีในเครื่องที่เหมาะสม (ใจกว้างมากสำหรับปัญหาแบบนี้ แต่ฉันไม่ต้องการ ความเร็วในการโฟกัส) …

5
เพิ่มและเพิ่มจำนวนน่างง
ตัวเลขที่มีการแบ่งซับซ้อนซึ่งรู้จักกันว่า "ตัวเลขที่น่ารำคาญ" นั้นคล้ายกับจำนวนเชิงซ้อน แทนที่จะแต่เรามีi^2 = -1 ตัวเลขแต่ละตัวจะใช้รูปแบบของj^2 = 1; j != +/-1z = x + j*y ในความพยายามหนึ่งที่จะจำกัดความซับซ้อนของการท้าทายนี้ฉันจะใช้สัญลักษณ์-เพื่อแสดงถึงการปฏิเสธเนื่องจากไม่มีการลบใด ๆ นี่คือตัวอย่างบางส่วนเพื่อความสุขในการรับชมของคุณ: 6 * 9 = 54 // real numbers still act normally 5 + -7 = -2 j*1 + j*1 = j*2 // two `j`s added together make a j*2 7 * …

3
จัดรูปแบบรายการคำ
ความท้าทายของคุณคือการจัดรูปแบบรายการคำในหลายบรรทัดที่ไม่เกินจำนวนอักขระที่กำหนดเพื่อให้แต่ละบรรทัดมีจำนวนคำมากที่สุดเท่าที่จะทำได้และไม่มีคำใดถูกตัดออกโดยไม่จำเป็น อินพุต อินพุตจะเป็นรายการคำที่คั่นด้วยช่องว่างแล้วตามด้วยหมายเลขอย่างน้อย 4 เอาท์พุต เอาต์พุตควรเป็นคำอินพุตที่จัดกลุ่มเป็นบรรทัดเพื่อให้ไม่มีบรรทัดใดที่มีอักขระมากกว่าจำนวนอินพุต คำควรจะถูกส่งออกในลำดับที่พวกเขากำลังป้อน คำควรคั่นด้วยเครื่องหมายจุลภาคแล้วเว้นวรรคยกเว้นท้ายบรรทัดแต่ละบรรทัดโดยไม่จำเป็นต้องเว้นวรรค หากคำยาวเกินกว่าที่จะพอดีกับบรรทัดคำนั้นควรถูกตัดออกให้น้อยที่สุดเท่าที่จะเป็นไปได้ในขณะที่ทำตามกฎอื่น ๆ และควรเพิ่ม "... " ในตอนท้าย กรณีทดสอบ Input: foo bar baz qux 12 Output: foo, bar, baz, qux Input: foo bar baz qux 5 Output: foo, bar, baz, qux Input: strength dexterity constitution intelligence wisdom charisma 10 Output: strength, dexterity, consti..., intell..., …
16 code-golf  string 

1
ฉันอยู่ที่นี่ได้ไหม
ในTerrariaเกมหนึ่งในกลไกของเกมเกี่ยวข้องกับการสร้างบ้านเพื่อให้ NPC สามารถเข้าได้มีกฎที่เข้มงวดสำหรับสิ่งที่นับว่าเป็นเฮ้าส์ที่ถูกต้องหรือไม่ นี่คือรายการของกฎ: พื้นที่ทั้งหมดในบ้านจะต้องมีอย่างน้อย 60 ตารางกระเบื้อง แต่น้อยกว่า 750 นอกจากนี้ขนาดของบ้านรวมถึงกรอบด้านนอกจะต้องมีอย่างน้อยหนึ่งอย่างต่อไปนี้: 5x12 6x10 7x9 8x8 9x7 10x6 12x5 15x4 เพื่อความเรียบง่ายคุณสามารถสันนิษฐานได้อย่างปลอดภัยว่า: ก) บ้านอินพุตทั้งหมดจะเป็นรูปสี่เหลี่ยมผืนผ้าและข) ไม่มีกระเบื้องทึบ#อยู่ภายในบ้าน นี่คือเฟรม 12x6 ของเรา (วาดด้วย ASCII ที่สวยงาม): ############ # # # # # # # # ############ บ้านจะต้องถูกปกคลุมในผนังพื้นหลัง สิ่งเหล่านี้ไม่ใช่กระเบื้องแข็ง แต่เป็นผนังด้านหลังบ้านในมิติที่สาม อนุญาตให้เจาะได้ แต่ไม่มีรูใดที่ใหญ่กว่า 4x4 ได้ หากมีแถวหรือคอลัมน์ที่มีอักขระเว้นวรรค 5 ตัวขึ้นไปในแถวนี้จะเป็นรูที่มีขนาดใหญ่กว่า 4x4 และเฮ้าส์นั้นไม่ถูกต้อง …
16 code-golf  string  game  grid 

11
วันปี่, นาทีพี่หรือปี่ที่สอง
ในการท้าทายนี้คุณจะต้องตรวจสอบว่าเป็นวัน Pi, นาทีนาทีหรือ Pi วินาที เนื่องจาก Pi ไม่มีเหตุผลจึงต้องการให้รหัสของคุณสั้นที่สุด ตัวอย่าง ไม่มีอินพุตให้โปรแกรมของคุณควรใช้เวลาของระบบ ฉันเพิ่งเพิ่มมันเพื่อความชัดเจน March 14, 2016 0:00:00 Pi Day December 25, 2015 3:14:45 Pi Minute December 29, 2015 0:03:14 Pi Second January 1, 2016 0:00:00 <No Output> Pi วัน / นาที / วินาทีคืออะไร Pi Day คือเมื่อเดือนมีนาคมและวันที่คือวันที่ 14 Pi Minute คือเมื่อชั่วโมงคือ 3 และนาทีคือ …
16 code-golf  date  pi 

28
สะกด Revu'a
ที่จริงไม่ได้รับแรงบันดาลใจจากค่าAtbash เอง Palindromesหรือโดยทั่วไป Gematria เครื่องคิดเลข รับสตริงsของความยาวn , ส่งออกลำดับ Revu'aซึ่งเป็นอักขระตัวแรกของs , อักขระสองตัวแรกของs , ... อักขระn –2 ตัวแรกของs , อักขระn –1 ตัวแรกของsทั้งs สตริงจะประกอบด้วยอักขระ Unicode (การเข้ารหัสใด ๆ ที่คุณต้องการ) เท่านั้นที่มีทิศทางที่แข็งแกร่งและพบได้ในช่วง 0x0000 ถึง 0xFFFF อย่างไรก็ตามจะไม่มีตัวควบคุมทิศทาง อักขระทั้งหมดในสตริงที่กำหนดจะมีทิศทางเดียวกัน คุณอาจกลับมาเป็นสัญกรณ์อาเร["t","te","tes","test"]ย์เป็นสตริงที่คั่นด้วยช่องว่าง"t te tes test"เช่นข้อความหลายบรรทัดttetestestอาเรย์ที่จัดรูปแบบไว้ล่วงหน้าเสื้อ เต้ TES ทดสอบหรืออะไรก็ตามที่คล้ายกัน จำนวนของการเว้นวรรคนำหน้าการแยกและการติดตามไม่สำคัญและไม่ขึ้นบรรทัดใหม่ ถามถ้ามีข้อสงสัย อินพุตจากขวาไปซ้ายจะต้องส่งออกเป็นเอาต์พุตจากขวาไปซ้ายตามลำดับที่ถูกต้อง: อินพุต: "נחמן" เอาต์พุต: "נ נח נחמ נחמן"หรือנ נח נחמ …

5
ค้นหา XOR Primes
ในความท้าทายนี้เกิดจาก xnor เราถูกขอให้ใช้การคูณด้วย XOR ในการท้าทายนี้เป้าหมายคือการค้นหาnช่วงเวลา XOR แรก ช่วงเวลา XOR คล้ายกับช่วงเวลาปกติอย่างที่คุณเห็นตามคำจำกัดความต่อไปนี้: คำจำกัดความของจำนวนเฉพาะ: จำนวนบวกที่มากกว่า 1 ซึ่งไม่สามารถเกิดขึ้นได้จากการคูณสองจำนวนยกเว้นผ่านการคูณ 1 และตัวของมันเอง คำจำกัดความของ XOR Prime:จำนวนบวกมากกว่า 1 ซึ่งไม่สามารถเกิดขึ้นได้จากการคูณด้วย XOR ของตัวเลขสองตัวยกเว้นผ่านการคูณ XOR ที่ 1 และตัวของมันเอง โปรดทราบว่าแฮคเกอร์ช่วงเวลาที่เขียน OEIS ลำดับA014580 การคูณ XOR หมายถึงการคูณแบบยาวไบนารีโดยไม่ต้องดำเนินการ คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับแฮคเกอร์คูณในความท้าทายของ XNOR การป้อนข้อมูล: nจำนวนเต็ม เอาท์พุท: ครั้งแรกที่nแฮคเกอร์ นี่คือช่วงเวลา XOR ต่ำกว่า 500: 2 3 7 11 13 19 25 …

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

3
ทอยลูกเต๋า
ทอยลูกเต๋า ดังนั้นฉันจึงทอยลูกเต๋าเมื่อไม่นานมานี้และคิดถึงความท้าทาย รับลูกบาศก์ด้วยตาข่ายที่นำมาจากอินพุทและรายการการเคลื่อนไหวหาสี่เหลี่ยมที่ด้านล่างสุด ฉันจะใช้ภาพนี้สำหรับตัวอย่างที่นี่ อินพุต คุณใช้สายอักขระพร้อมรายการการเคลื่อนไหว สตริงมีเฉพาะตัวอักษร ASCII ตัวใหญ่ N, S, W และ E สิ่งเหล่านี้สอดคล้องกับการหมุนคิวบ์หนึ่งขั้นในทิศทางนั้น ในภาพหนึ่งตัว N จะทำให้ใบหน้าด้านล่างเป็น 6 ในภาพนี้ทิศเหนืออยู่ห่างจากกล้องทิศใต้อยู่ทางทิศตะวันออกและทิศตะวันตกอยู่ทางซ้าย คุณยังใช้สตริงในรูปแบบต่อไปนี้: 1P 2P 3P 4P 5P 6P โดยที่แต่ละ P คือตำแหน่งจาก N, S, W, E, T และ B T & B อยู่ด้านล่างและด้านบน ตัวเลขคือใบหน้าที่มีหมายเลขนั้นและตัวอักษรแสดงถึงตำแหน่งที่ใบหน้าอยู่ในกรณีที่ไม่ชัดเจนสุทธิจะถูกเรียงตามจำนวนเสมอดังนั้น 1P 2P 3P 4P 5P 6P ไม่เคย 2B …

2
แบ่งพาร์ติชันเป็นลำดับที่เพิ่มขึ้น
สเปค ความท้าทายนี้ง่ายต่อการระบุ: อินพุตของคุณเป็นอาร์เรย์ที่ไม่ว่างของจำนวนเต็มที่ไม่ติดลบและงานของคุณคือแบ่งพาร์ติชันให้เป็นองค์ประกอบที่เพิ่มขึ้นน้อยที่สุดเท่าที่จะทำได้ อย่างเป็นทางการมากขึ้นถ้าอาร์เรย์อินAพุทคือเอาท์พุทเป็นอาร์เรย์ของอาร์เรย์Bดังกล่าว: แต่ละอาร์เรย์ในBรูปแบบพาร์ติชันของการเรียงAกัน (ไม่จำเป็นต้องต่อเนื่องกัน) Inductively นี่หมายความว่าอย่างใดอย่างหนึ่งBเป็นอาร์เรย์เดี่ยวที่มีAหรือองค์ประกอบแรกของBเป็นลำดับของAและส่วนที่เหลือเป็นรูปแบบพาร์ทิชันที่Aมีการลบออกเรียงลำดับ ทุกแถวในBนั้น (ไม่จำเป็นต้องเพิ่ม) จำนวนของอาร์เรย์Bมีค่าน้อยที่สุด ทั้งอินพุทและเอาท์พุทสามารถใช้รูปแบบอาเรย์ดั้งเดิมของภาษาของคุณ โปรดทราบว่าอาจมีผลลัพธ์ที่ถูกต้องหลายอย่าง ตัวอย่าง A = [1,2,1,2,5,4,7,1]พิจารณาอาร์เรย์การป้อนข้อมูล B = [[1],[1,2,4,7],[1,2,5]]การส่งออกที่เป็นไปได้คือ เงื่อนไขของพาร์ติชันนั้นเห็นได้จากแผนภาพนี้: A 1 2 1 2 5 4 7 1 B[0] 1 B[1] 1 2 4 7 B[2] 1 2 5 นอกจากนี้แต่ละอาร์เรย์Bยังเพิ่มมากขึ้น ในที่สุดAไม่สามารถแบ่งออกเป็นสองส่วนที่เพิ่มขึ้นดังนั้นความยาวของBมันก็น้อยมาก ดังนั้นมันเป็นผลลัพธ์ที่ถูกต้อง กฎและการให้คะแนน คุณสามารถเขียนฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต ไม่มีเวลาผูกมัด แต่คุณควรทำการแก้ปัญหาของคุณในทุกกรณีทดสอบก่อนที่จะส่ง กรณีทดสอบ …

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