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

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

9
“ คุณต้องสร้างเสาเพิ่มเติม!”
บทนำ ในเกมวางแผนกลยุทธ์ Starcraft 2 มีสาม "เผ่าพันธุ์" ให้เลือก: Terran, Zerg และ Protoss ในการท้าทายนี้เราจะมุ่งเน้นไปที่ Protoss และวลีที่เป็นสัญลักษณ์ "คุณต้องสร้างเสาเพิ่มเติม!" ข้อความนี้มีการระบุไว้เมื่อคุณหมดอุปทานเพื่อสร้างกองทัพของคุณ ดังนั้นเพื่อช่วยชุมชนสตาร์คราฟคุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่บอกผู้เล่นถึงจำนวนเสาที่ต้องการ ความท้าทาย คุณจะได้รับอินพุตของสตริงซึ่งประกอบด้วยรายการจำนวนเต็มเดียวNและรายการที่คั่นด้วยช่องว่าง Nจะเป็นศูนย์หรือเป็นบวกเสมอและรายการของหน่วยจะมีหน่วยที่ถูกต้องหนึ่งหน่วยขึ้นไปเสมอ Nแสดงจำนวนเสาที่ผู้เล่นมีอยู่ในปัจจุบัน งานของคุณคือการคำนวณว่าจำนวนเสาที่ผู้เล่นมีเพียงพอที่จะสร้างหน่วยหรือไม่ โปรแกรมหรือฟังก์ชั่นของคุณจะต้องส่งออก / คืนค่าความจริงหากมีอุปทานเพียงพอหรือหากมีอุปทานไม่เพียงพอคุณจะต้องส่งออกYou must construct ZZZ additional pylonsโดยที่ZZZจำนวนของเสาที่จำเป็นในการสร้างหน่วย โปรดทราบว่าpylon(s)จะต้องเป็นพหูพจน์เมื่อจำเป็นและไม่ได้หลายแบบเมื่อไม่ได้ ( ...1 additional pylon!, ...2 additional pylons!) หน่วย Protoss และต้นทุนการจัดหา นี่คือรายการของทุกหน่วยและต้นทุนการจัดหาที่สอดคล้องกัน เสาให้เพิ่มอีก 8 อุปทาน Unit Supply Cost Probe 1 …

20
ความเข้ากันได้ของแวมไพร์
ข้อเท็จจริงที่ทราบกันเล็กน้อยเกี่ยวกับแวมไพร์คือพวกเขาต้องดื่มเลือดของเหยื่อที่มีกรุ๊ปเลือดของผู้บริจาค เมทริกซ์เข้ากันได้สำหรับแวมไพร์เป็นเช่นเดียวกับปกติสีแดงเม็ดเลือดบริจาค / ผู้รับเมทริกซ์ สามารถสรุปได้ดังต่อไปนี้ตาราง American Red Cross Type You Can Give Blood To You Can Receive Blood From A+ A+, AB+ A+, A-, O+, O- O+ O+, A+, B+,AB+ O+, O- B+ B+, AB+ B+, B-, O+, O- AB+ AB+ everyone A- A+, A-, AB+, AB- A-, O- O- …

9
เคล็ดลับสำหรับการเล่นกอล์ฟใน APL
ฉันเพิ่งเริ่มการแข่งขันกอล์ฟรหัสหนึ่งเมื่อเร็ว ๆ นี้และดูเหมือนว่าผู้ชนะคือ GolfScript (แปลกใจแปลกใจ!) สิ่งที่น่าสนใจคือมีคู่แข่งที่แข็งแกร่งมากคนหนึ่งที่มีโอกาสชนะการแข่งขัน GolfScript ชื่อของมันคือ APL ฉันเห็นคำตอบมากมายที่เขียนใน APL ที่นี่ ดูเหมือนว่าภาษานี้จะค่อนข้างมีประสิทธิภาพสำหรับการเล่นรหัสดังนั้นฉันตัดสินใจที่จะถามเคล็ดลับการเล่นกอล์ฟรหัสที่คุณรู้สำหรับโปรแกรม APL โพสต์ตัวอย่างโค้ดได้ฟรี ปกติแล้วมันน่าสนใจมากที่จะเห็นภาษาที่ใช้งานอยู่
28 code-golf  tips  apl 

10
เล่นเกม Chaos
ความโกลาหลเกมเป็นวิธีที่ง่ายในการสร้าง fractals เมื่อกำหนดจุดเริ่มต้นอัตราส่วนความยาวrและชุดของจุด 2D ให้ทำดังนี้: จากชุดคะแนนของคุณเลือกหนึ่งโดยการสุ่ม (เหมือนกัน) ค่าเฉลี่ยจุดนั้นและจุดดึงสุดท้าย (หรือจุดเริ่มต้น) โดยใช้rและ1 - rเป็นน้ำหนัก (เช่นr = 0หมายถึงคุณได้รับจุดเริ่มต้นr = 1หมายถึงคุณได้รับจุดสุ่มและr = 0.5หมายความว่าคุณ รับจุดกึ่งกลางในระหว่าง.) วาดจุดผลลัพธ์ ตัวอย่างเช่นหากคุณเลือกจุดยอดของรูปสามเหลี่ยมด้านเท่าและr = 0.5จุดที่พล็อตจะแมปสามเหลี่ยม Sierpinski: พบรูปภาพใน Wikipedia คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ "เล่น" เกมความโกลาหลเพื่อสร้างเศษส่วน อินพุต คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและรับอินพุตต่อไปนี้ผ่าน ARGV, STDIN หรืออาร์กิวเมนต์ของฟังก์ชัน: จำนวนคะแนนที่จะพล็อต พิกัดเริ่มต้น (ซึ่งต้องมีการพล็อตด้วย!) น้ำหนักเฉลี่ยRในช่วง[0,1] รายการคะแนนที่จะเลือก เอาท์พุต คุณสามารถแสดงผลบนหน้าจอหรือเขียนไฟล์ภาพ หากผลเป็น rasterised จะต้องมีอย่างน้อย 600 พิกเซลในแต่ละด้านทุกจุดจะต้องอยู่บนผืนผ้าใบและอย่างน้อย 75% ของขอบเขตแนวนอนและแนวตั้งของภาพจะต้องใช้สำหรับจุด (เพื่อหลีกเลี่ยง …

30
การสื่อสารที่ง่ายยิ่งขึ้นหมายถึงการเข้ารหัสที่เร็วขึ้นหมายถึง coders ที่น้อยลงหมายถึง ...
พ่อของฉันซึ่งเป็น APLer ที่ดีมากและสอนฉันเกี่ยวกับพื้นฐานทั้งหมดของ APL (และอื่น ๆ อีกมากมาย) ที่ล่วงลับไปแล้วในวันนี้เมื่อห้าปีก่อน ในการเตรียมตัวเป็นเวลา50 ปีของ APLฉันพบจดหมายสิทธิบัตรฉบับนี้ (แปลเพื่อความสะดวกของผู้ที่ไม่ได้อ่านภาษาเดนมาร์ก) สำหรับโลโก้ที่เขียนด้วยลายมือ มันอธิบายถึงเหตุผลสำคัญสำหรับ APL ที่ไม่เคยมีฐานผู้ใช้จำนวนมากเหตุผลที่แน่นอนก็ใช้กับภาษากอล์ฟที่น่าตื่นตาตื่นใจของชุมชนนี้เช่นกัน: 3497/77 คำร้องขอ 29 THสิงหาคม 1977 วันที่ 13 Henri Brudzewskyบริษัท ที่ปรึกษาด้านวิศวกรรม, Mindevej 28, Søborg, class 9รวมถึงคอมพิวเตอร์โดยเฉพาะคอมพิวเตอร์ที่ใช้รหัส APL รุ่นที่ 42:บริษัท ตัวแทนด้านการบริการด้านไอทีโดยเฉพาะในระหว่างการใช้งานคอมพิวเตอร์ที่ใช้รหัส APL งาน สร้างผลลัพธ์การทำซ้ำของข้อความEASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS โดยไม่ขึ้นบรรทัดใหม่ คุณอาจจะเริ่มต้นด้วยข้อความEASIERหรือหรือFASTERFEWER

30
อัตราส่วนของตัวอักษรตัวพิมพ์ใหญ่ต่อตัวพิมพ์เล็ก
ในการท้าทายนี้คุณและเพื่อนของคุณกำลังถกเถียงกันว่าคดีไหนดีกว่าตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก? หากต้องการค้นหาคุณเขียนโปรแกรมเพื่อทำสิ่งนี้ให้คุณ เนื่องจาก esolangs ทำให้ตกใจเพื่อนของคุณและรหัส verbose ทำให้คุณกลัวรหัสของคุณจะต้องสั้นที่สุด ตัวอย่าง PrOgRaMiNgPuZzLeS & CoDe GoLf 0.52 uppercase DowNGoAT RiGHtGoAt LeFTGoat UpGoAT 0.58 uppercase Foo BaR Baz 0.56 lowercase ข้อมูลจำเพาะ ข้อมูลที่ป้อนจะประกอบด้วยอักขระ ASCII เท่านั้น ควรละเว้นอักขระที่ไม่ใช่ตัวอักษรทั้งหมด แต่ละกรณีจะมีอย่างน้อย 1 ตัว เอาต์พุตควรเป็นปริมาณของเคสที่ปรากฏบ่อยที่สุดเกินจำนวนอักขระทั้งหมด มันควรจะเป็นทศนิยมที่ถูกต้องถึงทศนิยมอย่างน้อย 2 ตำแหน่ง ถ้าพิมพ์ใหญ่ปรากฏขึ้นบ่อยขึ้นการส่งออกควรจะจบลงด้วยหรือuppercaselowercase จะไม่มีตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่ากัน
28 code-golf  string 

4
แบล็คแฮทอยู่ที่ไหน
ท้าทาย เขียนโค้ดที่ให้รูปภาพของพาเนลจากการ์ตูน xkcd แบบสุ่มส่งคืนค่าความจริงหากแบล็กแฮตอยู่ในการ์ตูนหรือเท็จหากไม่ได้ Blackhat คือใคร Blackhatเป็นชื่อทางการที่ให้กับตัวละครในการ์ตูน xkcd ที่สวมหมวกสีดำ: นำมาจากหน้าอธิบาย xkcd บน Blackhat หมวกของแบล็ทแฮทอยู่ในแนวตรงสีดำและดูเหมือนกับภาพด้านบน ตัวละครอื่น ๆ อาจมีหมวกและผม แต่จะไม่มีหมวกที่มีสีดำและด้านตรง อินพุต ภาพอาจถูกป้อนเข้าอย่างไรก็ตามคุณต้องการไม่ว่าจะเป็นเส้นทางไปยังรูปภาพหรือไบต์ผ่าน STDIN คุณไม่จำเป็นต้องใส่ URL เป็นอินพุต กฎระเบียบ การเข้ารหัส Hardcoding ไม่ได้รับอนุญาต แต่ไม่ได้รับการชื่นชม คุณไม่ได้รับอนุญาตให้เข้าถึงอินเทอร์เน็ตเพื่อรับคำตอบ ตัวอย่าง รูปภาพทั้งหมดถูกครอบตัดจากภาพจากhttps://xkcd.com Blackhat อยู่ในแผงควบคุม (คืนสินค้าtruthy) Blackhat ไม่ได้อยู่ในแผงควบคุม (คืนสินค้าfalsey) ทดสอบแบตเตอรี่ 20 ภาพที่มี Blackhat สามารถพบได้ที่นี่: https://beta-decay.github.io/blackhat.zip รูปภาพ 20 รูปที่ไม่มี Blackhat อยู่ที่นี่: https://beta-decay.github.io/no_blackhat.zip …

4
พื้นที่เล็กที่สุดของเครื่องบินที่บรรจุ n-ominoes ฟรีทั้งหมด
ที่ Math Stack แลกเปลี่ยนผมถามคำถามเกี่ยวกับการเป็นภูมิภาคที่เล็กที่สุดที่สามารถมีทั้งหมด n-ominos ฉันต้องการเพิ่มลำดับนี้ลงในสารานุกรมออนไลน์ของลำดับจำนวนเต็มเมื่อฉันมีเงื่อนไขเพิ่มเติม ตัวอย่าง ภูมิภาคเก้าเซลล์เป็นเซตย่อยที่เล็กที่สุดของระนาบที่สามารถบรรจุ5-ominoesฟรีทั้งสิบสองดังแสดงด้านล่าง (โพลีโนมิโนอิสระคือตัวที่สามารถหมุนและพลิกได้) (พื้นที่สิบสองเซลล์เป็นเซตย่อยที่เล็กที่สุดของระนาบที่สามารถบรรจุ6-ominoesฟรี 35 ตัว ) ความท้าทาย คำนวณขอบเขตบนของพื้นที่ที่เล็กที่สุดของระนาบที่มี n-ominoes ทั้งหมดเป็นฟังก์ชันของ n ตารางดังกล่าวเริ่มต้น: n | size --+------- 1 | 1* 2 | 2* 3 | 4* 4 | 6* 5 | 9* 6 | 12* 7 | 37 8 | 50 9 | 65 …

12
พลิกแพนเค้ก
ในการเรียงแพนเค้กการดำเนินการที่อนุญาตเท่านั้นคือการย้อนกลับองค์ประกอบของคำนำหน้าบางส่วนของลำดับ หรือคิดว่าเป็นแพนเค้กกอง: เราใส่ไม้พายเข้าไปในกองและหมุนแพนเค้กทั้งหมดเหนือไม้พาย ยกตัวอย่างเช่นลำดับ6 5 4 1 2 3สามารถจัดเรียงตามพลิกแรกแรก6องค์ประกอบ (ทั้งลำดับ) ผลผลิตผลกลาง3 2 1 4 5 6และจากนั้นพลิกแรกองค์ประกอบที่เดินทางมาถึง31 2 3 4 5 6 เนื่องจากมีการดำเนินการเพียงครั้งเดียวกระบวนการเรียงลำดับทั้งหมดจึงสามารถอธิบายได้ด้วยลำดับของจำนวนเต็มโดยที่จำนวนเต็มแต่ละจำนวนคือจำนวนองค์ประกอบ / แพนเค้กเพื่อรวมการพลิกหน้า ตัวอย่างข้างต้นลำดับการเรียงลำดับ6 3จะเป็น อีกตัวอย่างหนึ่ง: สามารถจัดเรียงด้วย4 2 3 1 4 2 3 2นี่คือผลลัพธ์ระดับกลาง: 4 2 3 1 flip 4: 1 3 2 4 flip 2: 3 1 2 …

3
การซ้อนกล่องอย่างหนัก
คุณมีกล่องจำนวนมากและคุณต้องการกองซ้อนในจำนวนที่น้อยที่สุดที่เป็นไปได้ ปัญหาคือคุณไม่สามารถซ้อนกล่องมากกว่าหนึ่งกล่องบนกล่องรองรับได้ดังนั้นกล่องที่หนักกว่าต้องอยู่ด้านล่างของสแต็ก ความท้าทาย อินพุต : รายการน้ำหนักของกล่องทั้งหมดเป็นกิโลกรัม ผลลัพธ์ : รายการของรายการที่อธิบายถึงสแต็กของกล่อง ต้องใช้จำนวนสแต็กน้อยที่สุดที่เป็นไปได้สำหรับอินพุต ในการเป็นสแต็กที่ถูกต้องน้ำหนักของแต่ละกล่องในสแต็กจะต้องมากกว่าหรือเท่ากับผลรวมของน้ำหนักของกล่องทั้งหมดข้างบน ตัวอย่างของสแต็คที่ถูกต้อง (เรียงลำดับจากล่างขึ้นบน) [3] [1, 1] [3, 2, 1] [4, 2, 1, 1] [27, 17, 6, 3, 1] [33, 32, 1] [999, 888, 99, 11, 1] ตัวอย่างของกองที่ไม่ถูกต้อง (ตามลำดับจากล่างขึ้นบน) [1, 2] [3, 3, 3] [5, 5, 1] [999, 888, 777] [4, …

20
แปลงเป็นตัวเลขซูโจว
ตัวเลขซูโจว (蘇州碼子; และ花碼) เป็นตัวเลขทศนิยมจีน: 0 〇 1 〡 一 2 〢 二 3 〣 三 4 〤 5 〥 6 〦 7 〧 8 〨 9 〩 พวกมันทำงานเหมือนเลขอารบิกยกเว้นว่าเมื่อมีตัวเลขต่อเนื่องที่เป็นของชุด{1, 2, 3}ตัวเลขจะเป็นทางเลือกระหว่างสัญกรณ์จังหวะในแนวดิ่ง{〡,〢,〣}และสัญกรณ์จังหวะในแนวนอน{一,二,三}เพื่อหลีกเลี่ยงความคลุมเครือ ตัวเลขแรกของกลุ่มที่อยู่ติดกันนั้นจะถูกเขียนด้วยสัญกรณ์จังหวะแนวตั้งเสมอ ภารกิจคือการแปลงจำนวนเต็มบวกเป็นตัวเลขซูโจว กรณีทดสอบ 1 〡 11 〡一 25 〢〥 50 〥〇 99 〩〩 111 〡一〡 511 〥〡一 2018 〢〇〡〨 123321 …

13
คะแนนแบดมินตันที่ถูกต้อง?
บทนำ: ผมเห็นมีเพียงหนึ่งที่เกี่ยวข้องกับแบดมินตันท้าทายอื่น ๆ ในขณะนี้ ตั้งแต่ฉันเล่นแบดมินตันด้วยตัวเอง (ในช่วง 13 ปีที่ผ่านมา) ฉันคิดว่าฉันจะเพิ่มความท้าทายเกี่ยวกับแบดมินตัน ที่นี่คนแรก: ท้าทาย: อินพุต: เอาต์พุตจำนวนเต็มสองค่า:หนึ่งในสามของเอาต์พุตที่แตกต่างและไม่ซ้ำใครที่คุณเลือก หนึ่งระบุว่าการป้อนข้อมูลเป็นคะแนนแบดมินตันที่ถูกต้องและชุดได้สิ้นสุดลงด้วยผู้ชนะ; หนึ่งระบุว่าการป้อนข้อมูลเป็นคะแนนแบดมินตันที่ถูกต้องและชุดยังคงอยู่ในการเล่น; หนึ่งระบุว่าการป้อนข้อมูลไม่ได้เป็นคะแนนแบดมินตันที่ถูกต้อง ด้วยแบดมินตันผู้เล่นทั้งคู่ (คู่) เริ่มต้นด้วย 0 คะแนนและคุณจะหยุดเมื่อผู้เล่นหนึ่งในสอง (คู่) มีคะแนนถึง 21 โดยมีความแตกต่างอย่างน้อย 2 คะแนนสูงสุด 30-29 ดังนั้นสิ่งเหล่านี้คืออินพุตคู่ที่เป็นไปได้ (ตามลำดับใด ๆ ) ซึ่งระบุว่าเป็นคะแนนแบดมินตันที่ถูกต้องและชุดได้สิ้นสุดลงแล้ว: [[0,21],[1,21],[2,21],[3,21],[4,21],[5,21],[6,21],[7,21],[8,21],[9,21],[10,21],[11,21],[12,21],[13,21],[14,21],[15,21],[16,21],[17,21],[18,21],[19,21],[20,22],[21,23],[22,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,30]] และนี่คือคู่อินพุตที่เป็นไปได้ทั้งหมด (ตามลำดับใด ๆ ) ซึ่งระบุว่าเป็นคะแนนแบดมินตันที่ถูกต้อง แต่ชุดยังคงเล่นอยู่: [[0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[1,1],[1,2],[1,3],[1,4],[1,5],[1,6],[1,7],[1,8],[1,9],[1,10],[1,11],[1,12],[1,13],[1,14],[1,15],[1,16],[1,17],[1,18],[1,19],[1,20],[2,2],[2,3],[2,4],[2,5],[2,6],[2,7],[2,8],[2,9],[2,10],[2,11],[2,12],[2,13],[2,14],[2,15],[2,16],[2,17],[2,18],[2,19],[2,20],[3,3],[3,4],[3,5],[3,6],[3,7],[3,8],[3,9],[3,10],[3,11],[3,12],[3,13],[3,14],[3,15],[3,16],[3,17],[3,18],[3,19],[3,20],[4,4],[4,5],[4,6],[4,7],[4,8],[4,9],[4,10],[4,11],[4,12],[4,13],[4,14],[4,15],[4,16],[4,17],[4,18],[4,19],[4,20],[5,5],[5,6],[5,7],[5,8],[5,9],[5,10],[5,11],[5,12],[5,13],[5,14],[5,15],[5,16],[5,17],[5,18],[5,19],[5,20],[6,6],[6,7],[6,8],[6,9],[6,10],[6,11],[6,12],[6,13],[6,14],[6,15],[6,16],[6,17],[6,18],[6,19],[6,20],[7,7],[7,8],[7,9],[7,10],[7,11],[7,12],[7,13],[7,14],[7,15],[7,16],[7,17],[7,18],[7,19],[7,20],[8,8],[8,9],[8,10],[8,11],[8,12],[8,13],[8,14],[8,15],[8,16],[8,17],[8,18],[8,19],[8,20],[9,9],[9,10],[9,11],[9,12],[9,13],[9,14],[9,15],[9,16],[9,17],[9,18],[9,19],[9,20],[10,10],[10,11],[10,12],[10,13],[10,14],[10,15],[10,16],[10,17],[10,18],[10,19],[10,20],[11,11],[11,12],[11,13],[11,14],[11,15],[11,16],[11,17],[11,18],[11,19],[11,20],[12,12],[12,13],[12,14],[12,15],[12,16],[12,17],[12,18],[12,19],[12,20],[13,13],[13,14],[13,15],[13,16],[13,17],[13,18],[13,19],[13,20],[14,14],[14,15],[14,16],[14,17],[14,18],[14,19],[14,20],[15,15],[15,16],[15,17],[15,18],[15,19],[15,20],[16,16],[16,17],[16,18],[16,19],[16,20],[17,17],[17,18],[17,19],[17,20],[18,18],[18,19],[18,20],[19,19],[19,20],[20,20],[20,21],[21,21],[21,22],[22,22],[22,23],[23,23],[23,24],[24,24],[24,25],[25,25],[25,26],[26,26],[26,27],[27,27],[27,28],[28,28],[28,29],[29,29]] จำนวนเต็มคู่อื่น ๆ จะเป็นคะแนนแบดมินตันที่ไม่ถูกต้อง กฏท้าทาย: I / O ยืดหยุ่นดังนั้น: คุณสามารถรับอินพุตเป็นรายการของตัวเลขสองตัว …

15
ระบุพิกัดด้วยตนเอง
เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดจำนวนเต็มnสร้างอาร์เรย์ที่มีnขนาดnความยาวโดยที่แต่ละองค์ประกอบเป็นตัวระบุพิกัดของมันเอง นั่นคือเริ่มต้นด้วยหนึ่งอาร์เรย์เติมมันมีnอาร์เรย์ที่แต่ละคนมีอาร์เรย์มากขึ้นถึงความลึกของn n-1องค์ประกอบของอาร์เรย์ที่ลึกที่สุดคือพิกัดที่อธิบายว่าพวกเขาอยู่ที่ไหนในอาเรย์แบบเต็ม ตัวอย่างบางส่วนในกรณีที่คำอธิบายของฉันสับสน n = 1 ["1"] n = 2 [ ["11", "12"], ["21", "22"] ] n = 3 [ [ ["111","112","113"], ["121","122","123"], ["131","132","133"] ], [ ["211","212","213"], ["221","222","223"], ["231","232","233"] ], [ ["311","312","313"], ["321","322","323"], ["331","332","333"] ] ] นี่ "321" หมายถึงมันเป็นองค์ประกอบที่ 1 ขององค์ประกอบที่ 2 ของอาร์เรย์ที่ 3 กฎ: พิกัดและมิติ ( n) สามารถเป็นดัชนี …
27 code-golf 

30
เอาท์พุทรายการโน้ตดนตรี
งานนี้ง่าย: เขียนโปรแกรมหรือฟังก์ชั่นที่ส่งออกรายการโน้ตดนตรีทั้งหมด (ใช้ชื่อโน้ตภาษาอังกฤษ) จาก A ♭ถึงG♯ บันทึกย่อทั้งหมดที่ไม่มีชื่อประกอบด้วยตัวอักษรตัวเดียว (เช่นตัวโน้ตสีดำบนคีย์บอร์ดดนตรี) ควรพิมพ์ชื่อของพวกเขาสองครั้งหนึ่งครั้งเมื่อคมชัดของโน้ตหนึ่งครั้งเมื่อแบนของหนึ่ง โน้ตที่คมหรือแบนที่สามารถอธิบายได้ด้วยตัวอักษรเดียวเช่นB♯ (C) หรือ F ♭ (E) ไม่ควรเอาท์พุท นี่คือตัวอย่างของผลลัพธ์: Ab, A, A#, Bb, B, C, C#, Db, D, D#, Eb, E, F, F#, Gb, G, G# ข้อมูลจำเพาะ โปรแกรมหรือฟังก์ชั่นจะต้องไม่นำเข้าใด ๆ หมายเหตุอาจพิมพ์ในลำดับใด ๆ และในรายการผลลัพธ์ใด ๆ ที่อนุญาตโดยกฎ I / O มาตรฐานของเรา สัญลักษณ์ Unicode ที่คมและแบน (♯ …

16
ระวังพายุทอร์นาโดเมทริกซ์!
ทอร์นาโดเมทริกซ์เหมือนกับพายุทอร์นาโดอื่น ๆ มันประกอบด้วยสิ่งต่าง ๆ ที่หมุนรอบจุดศูนย์กลาง ในกรณีนี้องค์ประกอบของเมทริกซ์แทนอากาศ นี่คือตัวอย่างของทอร์นาโดเมทริกซ์: ก่อนอื่นเราเริ่มจากการแบ่งเมทริกซ์เป็นวงแหวนสี่เหลี่ยมแต่ละส่วนประกอบด้วยองค์ประกอบที่อยู่ห่างจากชายแดนโดยระยะทางเดียวกัน ส่วนเหล่านี้จะหมุนตามเข็มนาฬิการอบศูนย์ ในพายุทอร์นาโดที่แท้จริงความรุนแรงจะเพิ่มขึ้นไปที่กึ่งกลางและขั้นตอนการหมุนในทอร์นาโดเมทริกซ์: ส่วนนอกสุด (สีแดงหนึ่ง) จะถูกหมุนด้วย 1 ขั้นตอนถัดไป (สีเหลือง) อันหนึ่งหมุนด้วย 2 และ บน. ขั้นตอนการหมุน 90 องศารอบศูนย์ งาน: งานของคุณคุณควรยอมรับมันคือการเขียนฟังก์ชั่นหรือโปรแกรมที่ใช้เป็นเมทริกซ์จตุรัสนำเอฟเฟคทอร์นาโดมาใช้กับมันแล้วเอาท์พุทเมทริกซ์ที่ได้ออกมา การป้อนข้อมูล: การป้อนข้อมูลที่ควรจะเป็นเมทริกซ์ตารางของการสั่งซื้อที่n n >= 1ไม่มีข้อสันนิษฐานใด ๆ เกี่ยวกับองค์ประกอบของเมทริกซ์พวกมันอาจเป็นอะไรก็ได้ เอาท์พุท: เมทริกซ์จตุรัสที่มีลำดับเดียวกันซึ่งจะเป็นผลมาจากการใช้เอฟเฟกต์ tronado กับเมทริกซ์อินพุต ตัวอย่าง: เมทริกซ์ของการสั่งซื้อn = 1: [['Hello']] ===> [['Hello']] เมทริกซ์ของการสั่งซื้อn = 2: [[1 , 2], ===> …
27 code-golf  matrix 

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