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

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

9
Code golf ABC's: ASCII Box Challenge
เมื่อรับจำนวนเต็มบวกสองจำนวน 'a' และ 'b' ให้ส่งออกกล่อง "ascii-art" ที่มีความกว้างอักขระและอักขระbสูง ตัวอย่างเช่นด้วย '4' และ '6': **** * * * * * * * * **** ง่ายใช่มั้ย นี่คือการบิด: เส้นขอบของกล่องจะต้องเป็นอักขระของ "a" และ "b" สลับกัน สิ่งนี้เริ่มต้นที่มุมซ้ายบนและหมุนวนเป็นเกลียวตามเข็มนาฬิกา ตัวอย่างเช่นตัวอย่างก่อนหน้าซึ่งมี 4 และ 6 ควรเป็น 4646 6 4 4 6 6 4 4 6 6464 A และ B อาจเป็นตัวเลขสองหลัก ตัวอย่างเช่นอินพุต "10" …

10
ค้นหาตัวเลขทุกตัวจากคอลัมน์ที่ใหญ่ที่สุด
นี่คือความท้าทายที่ค่อนข้างง่ายสำหรับคุณ: รับรายการจำนวนเต็มบวก: จัดเรียงพวกมันในตารางและรวมแต่ละคอลัมน์ ตัวอย่างเช่นถ้าอินพุตเป็น[123, 7, 49, 681]กริดจะมีลักษณะเช่นนี้: 1 2 3 7 4 9 6 8 1 และผลรวมของแต่ละคอลัมน์จะเป็น[18, 19, 4]: 1 2 3 7 4 9 6 8 1 -------- 18 19 4 หาจำนวนเงินสูงสุดเหล่านี้ซึ่งในกรณีนี้จะเท่ากับ 19 แล้ว เอาต์พุตทุกหลักที่อยู่ในดัชนีเดียวกันกับคอลัมน์สูงสุดนี้ ในกรณีนี้ก็จะเป็น 2 9 8 คุณไม่จำเป็นต้องแสดงหมายเลขเหล่านี้ในลำดับใด ๆ โปรดทราบว่ามีเพียงสามเอาต์พุตแม้ว่าเราจะมี 4 อินพุต ในกรณีที่เสมอกันให้เลือกดัชนีที่เร็วที่สุด ตัวอย่างเช่นถ้าอินพุตเป็น[25, 223, 302]กริดของคุณคือ: 2 …
14 code-golf  math  grid 

18
สับเปลี่ยนและจัดการ!
มันเป็นวันศุกร์และฉันก็เหนื่อยดังนั้นเรามาทำเรื่องด่วนกันเถอะ! ไม่มีการป้อนข้อมูล แต่คุณควรส่งออกบัตรหมายเลขที่แตกต่างกันทั้งหมด 13 ใบในสำรับไพ่มาตรฐาน คุณควรเอาต์พุต 2 ถึง Ace (Suit agnostic) บัตรแต่ละคนมีด้านบนที่จะแสดงกับพื้นที่ และสิบและพื้นที่อื่น_ แถวที่สองจากด้านบนแสดงด้วย a /และสิบช่องว่าง และ a\ แถวที่สามนั้นเหมือนกับแถวตรงกลางทั้งหมดยกเว้นอักขระที่แสดงถึงค่าของการ์ดปรากฏว่ามีช่องว่างสองช่องทางด้านขวา (ถ้าอยู่ด้านบน) หรือสองช่องทางด้านซ้าย (ถ้าอยู่ด้านล่าง) ของขอบ แต่ละแถวกลาง ish ง่าย|และสิบช่องว่าง และอีกหนึ่ง| ในที่สุดบรรทัดสุดท้ายคือ\และสิบ_และในที่สุดก็/ หากค่าเป็นตัวเลขหลายหลักความกว้างโดยรวมตามความสูงของการ์ดไม่ควรเปลี่ยนแปลง (เช่น 10 จะไม่ทำให้ด้านกว้างของการ์ด) ตัวอย่าง King: __________ / \ | K | | | | | | | | | | | …

17
พิมพ์เค้กชั้น
ท้าทาย รับอินพุตnพิมพ์เค้กnเลเยอร์ASCII สูงมองจากด้านข้างโดยมีเทียนสองอันอยู่ด้านบน ดูตัวอย่างด้านล่างสำหรับรายละเอียด เอาท์พุต >> cake(1) _|_|_ | | +-----+ >> cake(3) _|_|_ | | +---------+ | | +-------------+ | | +-------------+ ... และต่อไป กฎระเบียบ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต โปรดลองวิธีแก้ปัญหาที่ฉลาด นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ อย่างไรก็ตามคำตอบจะไม่ถูกเลือก มีความสุข!

4
การผจญภัยเล็ก ๆ
เกมผจญภัยข้อความมีสูตรที่ค่อนข้างจะสวยงาม มีโลกที่ประกอบไปด้วยห้อง / พื้นที่หลายชุดผู้เล่นสามารถเดินไปรอบ ๆ ห้องเหล่านี้และมีบางรายการในห้อง ผู้เล่นสามารถหยิบไอเท็มวางลงใช้เพื่อเข้าห้องอื่น (เช่นกุญแจ) และรวมกับไอเท็มอื่น ๆ เพื่อสร้างไอเท็มใหม่ ท้าทาย ความท้าทายของคุณคือการเขียนรันไทม์การผจญภัยข้อความในไบต์ที่น้อยที่สุด (รหัสกอล์ฟ) เพื่อให้ทุกอย่างง่ายขึ้นสิ่งที่คุณต้องทำก็คือเอาท์พุทค่าความจริงหรือความเท็จขึ้นอยู่กับว่าชุดคำสั่งที่กำหนดจะชนะเกมที่กำหนดหรือไม่ (ไม่มีการโต้ตอบไม่มีเอาต์พุตที่เป็นมิตรต่อมนุษย์ ฯลฯ ) กฎของเกม โลกนี้ประกอบด้วยทางเดินที่เชื่อมต่อกัน 10 ห้อง แต่ละห้องต้องใช้กุญแจเพื่อป้อน แต่สามารถออกได้ตลอดเวลาโดยไม่ต้องใช้กุญแจ (ดังนั้นมันจึงเป็นกลอนที่ฉันเดา) ผู้เล่นเริ่มต้นในห้อง 0 และชนะถ้าพวกเขาเข้าห้อง 9 (เมื่อพวกเขามาถึงห้องที่ 9 พวกเขาสามารถทำสิ่งที่พวกเขาต้องการรวมถึงไปที่ห้องอื่นและพวกเขาจะยังคงชนะ); แต่ละห้องสามารถมีจำนวนรายการ มีมากถึง 26 รายการชื่อ AZ และไม่มีรายการใดปรากฏในโลกมากกว่าหนึ่งครั้ง ผู้เล่นสามารถเลือกรายการจากห้องปัจจุบันและวางไว้ในสินค้าคงคลัง (พวกเขายังสามารถวางรายการจากสินค้าคงคลังของพวกเขาเข้าไปในห้องปัจจุบัน); ขนาดสินค้าคงคลังสูงสุดของผู้เล่นมี จำกัด และจะได้รับพร้อมรายละเอียดระดับ ในตอนต้นของเกมคลังของผู้เล่นจะว่างเสมอ ไม่มีการ จำกัด จำนวนรายการสูงสุดในห้อง (แม้ว่าข้อ จำกัด โดยนัยจะเป็น …

14
ลำดับ Piggyback
ฉันสร้างลำดับของตัวเองเมื่อเร็ว ๆ นี้ (เรียกว่าลำดับ Piggyback) และทำงานเช่นนี้: P(1), P(2)และ=P(3)1 สำหรับทุกP(n)ที่n>3ลำดับทำงานดังนี้: P(n) = P(n-3) + P(n-2)/P(n-1) ดังนั้นดำเนินการต่อเนื่องลำดับ: P(4)= 1 + 1/1=2 P(5)= 1 + 1/2= 3/2 =1.5 P(6)= 1 + 2/(3/2)= 7/3 =2.33333... P(7)= 2 + (3/2)/(7/3)= 37/14=2.6428571428... P(8)= 3/2 + (7/3)/(37/14)= 529/222 =2.3828828828... งานของคุณคือเมื่อnคำนวณP(n)ให้เป็นเลขทศนิยมหรือเศษส่วนที่เหมาะสม (im) นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ หากทุกคนสามารถค้นหาชื่อของลำดับได้โปรดแก้ไขโพสต์ตามนั้น ผู้นำปัจจุบัน: MATL และ Jelly …
14 code-golf  math 

12
สร้างลำดับไลนัส
คำนิยาม จากคำอธิบายเกี่ยวกับ OEIS A006345 : เพื่อหาa(n)พิจารณาอย่างใดอย่างหนึ่งหรือ1 2สำหรับแต่ละค้นหาคำต่อท้ายที่ยาวที่สุดซ้ำ, ที่อยู่, สำหรับแต่ละa(n)=1,2ค้นหาลำดับที่ยาวที่สุดsกับทรัพย์สินที่ลำดับปลายด้วยa(1),...,a(n) ssใช้ตัวเลขที่เป็นผลลัพธ์ของคำต่อท้ายที่สั้นกว่า a(1) = 1. ตัวอย่างออกกำลังกาย a(1)=1. ถ้าa(2)=1เราจะมีลำดับที่เท่าย่อยที่ยาวที่สุดจากจุดสิ้นสุดคือ1 1 1ถ้าa(2)=2เป็นเช่นนั้นมันจะเป็นสตริงย่อยว่าง a(2)=2ดังนั้น เมื่อn=6เราเลือกระหว่างและ1 2 1 1 2 1 1 2 1 1 2 2ในตัวเลือกแรก1 2 1เป็นสองเท่าติดต่อกันจากจุดสิ้นสุด ในตัวเลือกที่สองมันเป็น2แทน ดังนั้นa(6)=2. เมื่อn=9เราเลือกระหว่างและ1 2 1 1 2 2 1 2 1 1 2 1 1 2 2 …

14
ตรวจสอบทฤษฎีบทของ Wolstenholme
คำนิยาม ทฤษฎีบทของ Wolstenholmeกล่าวว่า: ที่ aและbเป็นจำนวนเต็มบวกและpเป็นสำคัญและวงเล็บใหญ่ thingy เป็นทวินามค่าสัมประสิทธิ์ งาน เพื่อตรวจสอบว่าคุณจะได้รับสามปัจจัยการผลิต: a, b, pที่aและbเป็นจำนวนเต็มบวกและpเป็นสำคัญ คำนวณ: ที่ aและbเป็นจำนวนเต็มบวกและpเป็นสำคัญและวงเล็บ thingy เป็นทวินามค่าสัมประสิทธิ์ รายละเอียด ตั้งแต่: ที่ไหนและวงเล็บ thingy เป็นทวินามค่าสัมประสิทธิ์ คุณสามารถสันนิษฐานได้ว่า 2b <= a Testcases a b p output 6 2 5 240360 3 1 13 3697053 7 3 13 37403621741662802118325

6
ต้นทุนทรัพยากรพลังงานกริด
ต้นทุนทรัพยากรพลังงานกริด บทนำ ในเกมกระดานPower Gridส่วนหนึ่งของเกมคือการซื้อทรัพยากรเพื่อเติมเชื้อเพลิงให้กับสถานีพลังงานของคุณ มีสี่ประเภทของทรัพยากรที่ใช้ในเกม (ห้าถ้าคุณรวมพลังงานหมุนเวียน แต่แน่นอนคุณไม่สามารถซื้อทรัพยากรสำหรับที่) เหล่านี้คือถ่านหินน้ำมันขยะและยูเรเนียม ตลาดทรัพยากรมีลักษณะดังนี้: 1---- | 2---- | 3---- | 4---- | 5---- | 6---- | 7---- | 8---- | 10 | 12 CCC | CCC | CCC | CCC | CCC | CCC | CCC | CCC | U | U OOO U | …
14 code-golf 

12
Inverting รายการของรายการดัชนี
แรงบันดาลใจจากนี้โพสต์ StackOverflow บทนำ งานของ Bob คือการสร้างสเปรดชีตและจัดระเบียบมัน วิธีที่เขาจัดระเบียบมันมีน้อยมากยกเว้นบ็อบ แต่เขาสร้างรายการสเปรดชีตแต่ละอันที่อยู่ในกลุ่มเดียวกัน มีข้อมูลมากมายในสเปรดชีตที่เขาสร้าง แต่มีข้อมูลเพียงชิ้นเดียวที่เรากำลังดูอยู่ตอนนี้: จำนวนวันระหว่างวันที่เขาเริ่มงานนี้และวันที่เขาสร้างสเปรดชีต ในวันแรกที่เขาสร้างสเปรดชีตสองรายการเขาได้บันทึกพวกเขาทั้งสองเป็น0และจัดเรียงไว้ในตำแหน่งที่เหมาะสม ตอนนี้หัวหน้าของเขากำลังขอให้ตรวจสอบว่าสเปรดชีตชนิดใดที่เกิดขึ้นในแต่ละวันและเป็นหน้าที่ของคุณที่จะเขียนโค้ดที่จะช่วยบอกบ๊อบ; เขามีสเปรดชีตมากเกินไปที่จะทำด้วยมือ อินพุต ข้อมูลของบ๊อบว่าเขาจะช่วยให้คุณมาในรูปแบบของ (0 หรือ 1 จัดทำดัชนี) x = a[i][j]อาร์เรย์หยักที่แต่ละตัวเลขจะอยู่ในรูป aคือสิ่งที่ฉันเรียกอาร์เรย์แบบขรุขระนั้นiเป็นชนิดของสเปรดชีตและxเป็นวันที่ที่อาร์เรย์ถูกสร้างขึ้น jไม่สำคัญ งาน เมื่อกำหนดวันสร้างสเปรดชีตที่มีการจัดเรียงตามประเภทแบบขรุขระให้ส่งคืนอาร์เรย์ประเภทสเปรดชีตที่จัดเรียงตามแนวขรุขระด้วยวันสร้างสเปรดชีต ตัวอย่าง บ๊อบจะไม่ทิ้งคุณไว้กับข้อมูลนามธรรมนี้ เขามอบสเปรดชีตของเขาบางส่วนให้ฉันเพื่อช่วยคุณในการหาว่าทุกสิ่งควรเป็นอะไร ตัวอย่างอินพุต (ดัชนี 0): a = [ [3,2,5,0], # Bob doesn't necessarily sort his lists [1,3], [2,1,0,4], [4,5,3], [6,6] ] ตัวอย่างผลลัพธ์ …

5
พล็อตเตอร์เชิงพีชคณิต
โค้งพีชคณิตเป็นบางอย่าง "1D เซต" ของ "2D เครื่องบิน" ที่สามารถอธิบายเป็นชุดของศูนย์ของพหุนาม{(x,y) in R^2 : f(x,y)=0 } fที่นี่เราพิจารณาระนาบ 2 มิติเป็นระนาบจริงR^2ซึ่งเราสามารถจินตนาการได้อย่างง่ายดายว่าเส้นโค้งดังกล่าวจะมีลักษณะอย่างไรโดยทั่วไปสิ่งที่คุณสามารถวาดด้วยดินสอ ตัวอย่าง: 0 = x^2 + y^2 -1 วงกลมรัศมี 1 0 = x^2 + 2y^2 -1 วงรี 0 = xyข้ามรูปร่างพื้นสหภาพของแกน x และแกน y 0 = y^2 - x พาราโบลา 0 = y^2 - (x^3 - x …

2
เขาวงกตกระดานหมากรุก
ชิ้นหมากรุก (พระมหากษัตริย์พระราชินี rooks บิชอปและอัศวิน) และเบี้ยอยู่บนกระดาน แต่ไม่ได้อยู่บนa1หรือh8ตาราง งานของคุณคือการเดินทางจากช่องว่างa1ไปยังช่องว่างh8 ที่ว่างผ่านช่องว่างเปล่าเพียงช่องเดียว กฎของการเคลื่อนไหวมีดังนี้: คุณสามารถดำเนินการต่อจากจัตุรัสที่ว่างเปล่าไปยังจัตุรัสที่ว่างถัดจากนั้น (อันดับเดียวกัน, ไฟล์ถัดไปหรือก่อนหน้า; หรือไฟล์เดียวกัน, ถัดไปหรือก่อนหน้าอันดับ) คุณสามารถดำเนินการต่อจากสี่เหลี่ยมจัตุรัสที่ว่างเปล่าไปยังจตุรัสที่ว่างใด ๆ ในแนวทแยงมุมถัดจากนั้น (อันดับถัดไปหรือก่อนหน้าไฟล์ถัดไปหรือก่อนหน้า) โดยมีเงื่อนไขว่าสี่เหลี่ยมมุม catty ประกอบด้วย (a) เบี้ยสองตัวหรือ (b) เบี้ย / ชิ้น สี. (สองชิ้นที่ไม่ได้จำนำหรือชิ้นส่วนที่ไม่ได้จำนำและจำนำที่มีสีเดียวกันนั้นแข็งแกร่งพอที่จะขัดขวางความคืบหน้าของคุณข้ามมุมได้ แต่ตัวเบี้ยสองตัวนั้นไม่ได้และชิ้น / เบี้ยที่มีสีตรงกันข้ามไม่ทำงาน คอนเสิร์ตเพื่อกีดกันทางของคุณ) ตัวอย่างเช่นหากคุณอยู่บนc4และd5ว่างเปล่าคุณสามารถดำเนินการต่อได้หากc5และd4มีเบี้ยหรือมีชิ้น / เบี้ยสีตรงข้าม ดูส่วน "ตัวอย่างเส้นทแยงมุม" ด้านล่างสำหรับรูปภาพ อินพุต คำอธิบายกระดานของFEN นั่นคือการป้อนข้อมูลจะเป็นสตริงที่รวมถึงรายละเอียดของการจัดอันดับ8 , เฉือน ( /) รายละเอียดของการจัดอันดับ7 , เฉือน, ... …
14 code-golf  chess  maze 

13
มันเป็นจำนวนสูงสุดหรือไม่
กองยังเป็นที่รู้จักลำดับความสำคัญคิวเป็นชนิดข้อมูลนามธรรม โดยหลักการแล้วมันเป็นต้นไม้ไบนารีที่ลูกของทุกโหนดมีขนาดเล็กกว่าหรือเท่ากับโหนดเอง (สมมติว่าเป็น max-heap.) เมื่อองค์ประกอบถูกผลักหรือผุด heap จะจัดเรียงตัวเองใหม่ดังนั้นองค์ประกอบที่ใหญ่ที่สุดคือถัดไปที่จะถูกตอก มันสามารถนำมาใช้เป็นต้นไม้หรือเป็นอาร์เรย์ได้อย่างง่ายดาย ความท้าทายของคุณถ้าคุณเลือกที่จะยอมรับมันคือการพิจารณาว่าอาร์เรย์เป็นฮีปที่ถูกต้องหรือไม่ อาเรย์อยู่ในรูปแบบฮีปถ้าลูกทุกองค์ประกอบมีขนาดเล็กกว่าหรือเท่ากับองค์ประกอบนั้น ใช้อาร์เรย์ต่อไปนี้เป็นตัวอย่าง: [90, 15, 10, 7, 12, 2] จริงๆนี่คือต้นไม้ไบนารีที่จัดเรียงในรูปแบบของอาร์เรย์ นี่เป็นเพราะทุกองค์ประกอบมีลูก 90 มีลูกสองคน 15 และ 10 15, 10, [(90), 7, 12, 2] 15 มีเด็ก 7 และ 12: 7, 12, [90, (15), 10, 2] 10 มีลูก: 2 [90, 15, (10), 7, 12, ] …

11
ฉันจ่ายด้วยดอลลาร์เท่านั้น
ในฐานะที่เป็นชื่อเรื่อง - ถึงแม้ว่าจะไม่ได้รับคำแนะนำก็ตามฉันจ่ายด้วยดอลลาร์เท่านั้น ความท้าทาย เขียนฟังก์ชัน / โปรแกรมที่รับสตริงเป็นอินพุตซึ่งเป็นค่าเงินนำหน้าด้วยสัญลักษณ์ ex) £4.99. จากนั้นส่งคืนจำนวนเงินเดียวกันที่แปลงเป็น USD อินพุต คุณจะได้รับสตริงเป็นอินพุต มันจะมีสัญลักษณ์สกุลเงินตามด้วยตัวเลขที่มีทศนิยมสองตำแหน่ง (ซึ่งอาจเป็น.00) จะมีจุดทศนิยม.และ / หรือเครื่องหมายจุลภาค,คั่นจำนวน สัญลักษณ์สกุลเงินต่อไปนี้จะเข้ามาในอินพุต: ยูโร: ปอนด์ปอนด์สเตอร์ลิง: ปอนด์หยวนเงินหยวน: ¥ นอกจากนี้จะมีเครื่องหมายจุลภาคหรือจุดทศนิยมขึ้นอยู่กับสกุลเงินเพื่อแยก 'ดอลลาร์' จาก 'เซ็นต์': ยูโร: # .##### ปอนด์สเตอร์ลิง: #, ###. ## หยวนหยวน: #, ###. ## เอาท์พุต คุณจะแปลงอินพุตจากสกุลเงินที่กำหนดโดยสัญลักษณ์เป็น USD ปัดเศษเป็นทศนิยมสองตำแหน่ง เอาต์พุตจะอยู่ในรูปแบบ$#,###.##และแน่นอนว่าจะมีจำนวนมากขึ้นทางด้านซ้ายของเอาต์พุตหากจำเป็นต้องมี ( แก้ไข: นี่หมายถึงว่ามีจำนวนจุลภาคโดยพลการในเอาต์พุตเหมือนกับในอินพุต ) อัตราแลกเปลี่ยนสกุลเงินที่เราจะใช้อยู่ด้านล่าง คุณสามารถสมมติว่าอินพุตมีสัญลักษณ์ที่มีเพียงหนึ่งในข้างบน ( …
14 code-golf  math  string 

19
ตัดตัวอักษรต่อเนื่องยาวเป็น n
ความท้าทาย รับค่าอินพุตสตริงและเลขจำนวนเต็มn - ตัดส่วนที่เหลือของอักขระที่อยู่ติดกันให้เหลือความยาวสูงสุดn ตัวละครสามารถเป็นอะไรก็ได้รวมถึงตัวละครพิเศษ ฟังก์ชันควรคำนึงถึงขนาดตัวพิมพ์และnสามารถอยู่ในช่วงตั้งแต่ 0 ถึงไม่ จำกัด ตัวอย่างอินพุต / เอาท์พุต: f("aaaaaaabbbccCCCcc", 2) //"aabbccCCcc" f("aaabbbc", 1) //"abc" f("abcdefg", 0) //"" f("aaaaaaabccccccccCCCCCC@", 4) //"aaaabccccCCCC@" เกณฑ์การให้คะแนน การให้คะแนนขึ้นอยู่กับจำนวนไบต์ที่ใช้ ดังนั้น function f(s,n){return s.replace(new RegExp("(.)\\1{"+n+",}","g"),function(x){return x.substr(0, n);});} จะ 104 คะแนน มีความสุขในการเล่นกอล์ฟ! แก้ไข: ลบข้อ จำกัด ด้านภาษา แต่ฉันก็ยังอยากเห็นคำตอบจาวาสคริปต์
14 code-golf  string 

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