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

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

10
สร้าง N-Dimensional Simplex (Tetrahedron)
รูปร่าง N-Dimension ที่ง่ายที่สุดที่สามารถสร้างสำหรับมิติใด ๆ คือSimplexและนี่คือชุดของ N + 1 จุดที่อยู่ห่างกันเท่ากัน สำหรับ 2 มิตินี่คือสามเหลี่ยมด้านเท่าสำหรับ 3 มิตินี่คือจัตุรมุขปกติโดยที่ 4 มิติคือ5-Cellเป็นต้น ความท้าทาย กำหนดขนาด Integer N เป็นอินพุทเอาท์พุทอาร์เรย์ / ลิสต์ / สแต็ค / อะไรก็ตามที่มีมิติมิติที่แสดงถึง Simplex ของมิตินี้ นั่นคือจุดยอด N + 1 ที่มีระยะทางเท่ากันและไม่เป็นศูนย์จากแต่ละคน การดำเนินการอ้างอิงใน Lua ตัวอย่าง 1 -> [[0], [1]] 2 -> [[0, 0], [1, 0], [0.5, 0.866...]] 4 …

14
ลดจำนวนปัจจัยหลักให้เล็กที่สุดด้วยการแทรก
ได้รับสองจำนวนเต็มบวกและBกลับมาที่ตำแหน่งPที่ลดขนาดจำนวนของปัจจัยที่สำคัญ (multiplicities ขึ้นเรื่อย ๆ ) เลขที่ส่งผลให้เมื่อBถูกแทรกในที่หน้า ตัวอย่างเช่นเมื่อกำหนดA = 1234และB = 32สิ่งเหล่านี้คือการแทรกที่เป็นไปได้ (โดยที่pถูกทำดัชนี 0) และข้อมูลที่เกี่ยวข้องเกี่ยวกับปัจจัยสำคัญของพวกเขา: p | ผลลัพธ์ | ปัจจัยสำคัญ Ω (N) / จำนวน 0 | 321234 | [2, 3, 37, 1447] | 4 1 | 132234 | [2, 3, 22039] | 3 2 | 123234 | [2, 3, 19, 23, …

3
สินเชื่อจำนวนเงิน "ใจกว้าง"
บทนำ คุณมีเพื่อนที่คอยขอสินเชื่อและคุณเบื่อมัน วันนี้เขามาเพื่อขอสินเชื่ออีกครั้ง แทนที่จะเปลี่ยนข้อเสนอของเขาคุณจะได้รับความคิดที่ดี: หมุนรอบเพื่อนของคุณโดยให้เหรียญ / ธนบัตรให้มากที่สุด ท้าทาย คุณจะใช้เป็นอินพุต: จำนวนเงินที่เพื่อนของคุณต้องการเงินกู้และจำนวนเหรียญ / ตั๋วเงินที่คุณมี สำหรับความท้าทายนี้สกุลเงินที่เป็นไปได้คือ $ 20.00, $ 10.00, $ 5.00, $ 2.00, $ 1.00, $ 0.25, $ 0.10, $ 0.05, และ $ 0.01 ตัวอย่างของการป้อนข้อมูลคือ5.67, [5, 3, 4, 5, 5, 9, 8, 1, 2]ถ้าเพื่อนของคุณต้องการ $ 5.67 และคุณมีตั๋ว 5 $ 20, ตั๋วเงิน 3 …
12 code-golf  math 

18
เข้ารหัสเป็นตัวเลข!
ปัญหา: ตัวแทนลับของศัตรูสองคนได้คิดค้นวิธีการสื่อสารที่ยอดเยี่ยม (สำหรับคุณ)! นี่คือวิธีการทำงานของการเข้ารหัส: 1) ใช้การเปรียบเทียบ ASCII ของตัวอักษรแต่ละตัว (ไม่มีการเว้นวรรคตัวเลขหรือเครื่องหมายวรรคตอน) 2) สำหรับตัวอักษรแต่ละตัวในข้อความจำนวน ascii ที่เท่ากันของมันและตัวอักษรที่อยู่ด้านหลัง (หากมีอยู่หากไม่เป็นเช่นนั้นควรถือว่าเป็น 0) จะถูกคูณ (ผลิตภัณฑ์นี้จะถูกเก็บไว้ในอาร์เรย์ / รายการ) และสรุป (หมายเลขนี้ถูกจัดเก็บในรายการอื่นด้วย) 3) ทั้งสองรายการ (จากผลรวมและผลิตภัณฑ์) ถูกรวมเข้าด้วยกัน (รายการผลรวมจากนั้นรวมรายการหลายรายการเข้าไปในอาร์เรย์เดียวกัน) และส่ง คุณต้องเขียนโปรแกรมที่เล็กที่สุดที่สามารถย้อนกลับกระบวนการนี้และถอดรหัสข้อความที่ส่งในรูปแบบนี้! ตัวอย่างอินพุตและเอาต์พุตคู่: [173, 209, 216, 219, 198, 198, 225, 222, 208, 100, 7272, 10908, 11664, 11988, 9657, 9657, 12654, 12312, 10800, 0] -> …

10
ปิดการเชื่อมโยงข้อมูลทวีคูณ
รายการที่เชื่อมโยงเป็นทวีคูณเป็นโครงสร้างข้อมูลที่แต่ละโหนดมีvalue"ลิงก์" รวมถึงทั้งสองpreviousและถัดไปnodesในรายการ ตัวอย่างเช่นพิจารณาโหนดต่อไปนี้ที่มีค่า 12, 99 และ 37: นี่โหนดที่มีค่า12และ99ชี้ไปที่ของตนnextโหนดที่มีค่า99และ37 โหนดที่มีค่า37ไม่มีnextตัวชี้เนื่องจากเป็นโหนดสุดท้ายในรายการ ในทำนองเดียวกันโหนดที่มีค่า99และ37ชี้ไปที่previousโหนดที่เกี่ยวข้อง12และ99แต่12ไม่มีpreviousตัวชี้เนื่องจากเป็นโหนดแรกในรายการ การตั้งค่า ในทางปฏิบัติ "ลิงก์" ของโหนดนั้นถูกนำไปใช้เป็นตัวชี้ไปยังตำแหน่งของโหนดก่อนหน้าและถัดไปในหน่วยความจำ สำหรับวัตถุประสงค์ของเรา "หน่วยความจำ" จะเป็นอาเรย์ของโหนดและตำแหน่งของโหนดจะเป็นดัชนีในอาเรย์ โหนดสามารถจะคิดว่าเป็น 3 ( prev value next )อันดับของแบบฟอร์ม ตัวอย่างด้านบนอาจมีลักษณะเช่นนี้: แต่มันอาจเป็นแบบนี้แทน: เริ่มต้นที่โหนดใด ๆ คุณสามารถติดตามpreviousลิงก์ (แสดงเป็นจุดกำเนิดของลูกศรสีแดง) เพื่อไปยังโหนดที่อยู่ก่อนหน้าและnextลิงก์ (ลูกศรสีเขียว) เพื่อค้นหาโหนดลำดับถัดไปเพื่อรับค่าโหนดทั้งหมดตามลำดับ: [12, 99, 37]. แผนภาพแรกด้านบนสามารถแสดงเป็นอาร์เรย์[[null, 12, 1], [0, 99, 2], [1, 37, null]]ได้ [[2, 99, 1], [0, 37, …

2
ซานต้าต้องใช้เวลานานแค่ไหนในการส่งมอบของขวัญของเขา?
ฉันโพสต์ความท้าทายนี้เมื่อไม่นานมานี้ซึ่งเกี่ยวข้องกับจำนวนเอลฟ์ซานต้าที่ต้องส่งของขวัญ เนื่องจากจำนวนประชากรที่เพิ่มขึ้นซานต้าจึงค่อนข้างกดดันมากขึ้นในปีนี้ แม้ว่าในอดีตเราดำเนินการแบบอะซิงโครนัสมากเราเริ่มทำการทดลองด้วยการซิงโครไนซ์มากขึ้นเรื่อย ๆ ดังนั้นซานต้าต้องรู้ว่าจะต้องใช้เวลานานแค่ไหนในการส่งของขวัญให้กับแต่ละภูมิภาคด้วยจำนวนเอลฟ์ที่กำหนด น้ำหนักของถ่านหินไม่เปลี่ยนแปลงในช่วงสองปีที่ผ่านมา - มันยังหนักกว่าของขวัญดังนั้นซานต้าต้องการสามเอลฟ์ต่อคนซนในบ้านและอีกสองเอลฟ์ต่อคนดีในบ้าน เอลฟ์ใช้เวลาตลอดทั้งปีในการฝึกซ้อมคริสต์มาสดังนั้นพวกเขาจึงไม่ต้องการพักผ่อนระหว่างการส่งมอบ พวกเขาสามารถจัดส่งของขวัญไปที่บ้านหนึ่งหลังเท่านั้นและต้องกลับไปเลื่อนซานต้าและรวบรวมของขวัญถัดไปก่อนที่จะไปบ้านหลังถัดไป ด้วยเหตุผลที่ฉันไม่ได้มีอิสระในการแบ่งปันเอลฟ์ไม่ได้ใช้เวลาเดินทางระหว่างเลื่อนของซานต้าและบ้าน (แต่สามารถเดินทางได้เฉพาะเมื่อเลื่อนของซานต้าอยู่บนหลังคา) และเลื่อนของเขาใช้เวลาย้ายจากบ้านไปที่บ้าน (เลื่อนซานต้าจะตอบสนองความต้องการที่จะย้ายจากบ้านไปที่บ้านเพื่อเก็บน้ำมันเชื้อเพลิง แต่ฉันแล้วพูดมากเกินไป) เอลฟ์ที่ส่งมอบของขวัญจะต้องใช้เวลาสี่วินาที*แต่ละครั้งที่ส่งมอบและเอลฟ์ที่ส่งมอบต้องใช้เวลาห้าวินาที*ในการส่งแต่ละครั้ง (ตามระเบียบของ Santa Aviation Administration ถุงมือที่มีฝุ่นถ่านหินจะต้องถูกเผาทันทีเมื่อ ขึ้นเลื่อนซึ่งใช้เวลาพอสมควร) นอกจากนี้บ้านต้องเข้าเยี่ยมชมตามลำดับที่อยู่บนแผนที่จากซ้ายไปขวาและเอลฟ์ไม่สามารถเริ่มส่งของขวัญไปยังบ้านอื่น ๆ ได้จนกว่าของขวัญทั้งหมดจะถูกส่งไปยังบ้านที่พวกเขาอยู่ในปัจจุบัน หากเราสันนิษฐานว่าซานต้ามีเอลฟ์มากพอสำหรับภูมิภาคนี้จะใช้เวลาเพียงตราบเท่าที่ส่งมอบของขวัญให้ใครบางคนในรายการที่ซุกซน 5 วินาทีต่อบ้านหรือ 4 วินาทีต่อบ้านถ้าทุกคนดี แต่เมื่อเทียบกับฤดูกาลที่ผ่านมาคริสต์มาสซานต้าที่มาถึงนี้อาจมีเอลฟ์ไม่มากพอสำหรับแต่ละภูมิภาคดังนั้น 4 วินาทีจึงเป็นเวลาขั้นต่ำ*ที่จะส่งมอบของขวัญให้บ้านใด ๆ เว้นแต่ว่ามี 0 คนดีและ 0 คนซนซึ่งในกรณีนี้จะใช้เวลา 0 วินาที นอกจากนี้หากแม้แต่บ้านหลังหนึ่งมีคนอยู่ในรายชื่อที่ซุกซนซานต้าจะต้องการเอลฟ์อย่างน้อยสาม ถ้าอย่างน้อยหนึ่งในบ้านมีใครสักคนอยู่ในรายชื่อที่ดีและไม่มีใครอยู่ในรายชื่อที่ซุกซนซานต้าจะต้องมีเอลฟ์อย่างน้อยสองคน หากไม่มีบ้านอยู่ในจิตวิญญาณคริสต์มาสเอลฟ์จำนวนใด (รวมถึง 0) จะใช้เวลา 0 วินาที บนแผนที่ของซานต้าบ้านเป็นตัวแทนจากและบ้านแต่ละหลังถูกแบ่งออกโดย* …
12 code-golf  string 

2
เล่นเกม Dice Cricket
Dice Cricket เป็นเกมที่ฉันได้รับการแนะนำให้รู้จักกับเด็กและได้ใช้เป็นวิธีในการผ่านเวลาหลายปีตั้งแต่ ฉันไม่พบหน้า Wikipedia ดังนั้นฉันจะอธิบายกฎด้านล่าง กฎของคริกเก็ตลูกเต๋า หลักฐาน Dice Cricket เป็นเกมที่คล้ายกับการให้คะแนนเกมคริกเกตในขณะที่คุณดู แต่แทนที่จะดูและบันทึกผลคุณจะกลิ้งลูกเต๋าและบันทึกผล ผลลัพธ์จะถูกบันทึกในตารางตามที่ปรากฏที่ด้านล่าง แสดง Dice Cricket ใช้หน้าจอเฉพาะเพื่อแสดงข้อมูลทั้งหมดที่เกิดขึ้น ตารางมี 11 แถว แต่ละแถวแสดงถึงการปะทะ โครงร่างของแถวอธิบายไว้ด้านล่าง +------+------------------------------+---------+-----+ | Name | Runs | How Out |Score| +------+------------------------------+---------+-----+ ชื่อ: ชื่อจะต้องเป็นสตริงที่ประกอบด้วยตัวอักษรทั้งหมดตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก วิ่ง: ปะทะสามารถเผชิญ 30 ลูก 1 2 4 6 . /ลูกแต่ละคนสามารถเป็นหนึ่งใน นี้จะอธิบายในรายละเอียดเพิ่มเติมด้านล่าง How Out: วิธีการปะทะออก สามารถใด ๆ …

3
Advent Challenge 4: Present Assembly Line!
<< ก่อนหน้า ถัดไป >> ซานต้าสามารถผลิตของขวัญทั้งหมดที่เอลฟ์ขโมยคืนได้! ตอนนี้เขาต้องส่งพวกเขาไปยังสายการประกอบบรรจุภัณฑ์ เขามักจะมีกล้องเพื่อควบคุมสายการประกอบทั้งสองเพื่อให้แน่ใจว่าพวกเอลฟ์ทำงานได้ดีและเนื่องจากรูปภาพไลน์ประกอบดูดีบนโปสเตอร์โฆษณา[จำเป็นต้องมี] น่าเสียดายที่กล้องของเขาพังดังนั้นเขาอยากให้คุณวาดแบบจำลองของสายการประกอบว่าจะเป็นอย่างไร! เพื่อให้สายการประกอบทำงานอย่างมีประสิทธิภาพสูงสุดและเพื่อลดความเสี่ยงของข้อผิดพลาดหรือความล้มเหลวกล่องที่มีอยู่ทั้งหมดจะมีความกว้างเท่ากันเพื่อให้พอดีกับสายพานลำเลียงอย่างสมบูรณ์ ท้าทาย รับรายการของขวัญที่แสดงตามขนาดของมันเอาท์พุทสายพานลำเลียงพร้อมของนำเสนอทั้งหมด ของขวัญถูกดึงออกมาเช่น: +----+ / /| +----+ | | | + | |/ +----+ ของขวัญนี้มีความกว้าง 1 ความสูง 2 และความยาว 4 โปรดทราบว่าเครื่องหมายบวกจะไม่นับสำหรับความยาวด้านดังนั้นของขวัญที่มีความยาว 4 จะครอบคลุมตำแหน่งจริง 6 ตำแหน่ง ของขวัญทั้งหมดจะถูกวาดติดกันโดยมีช่องว่างหนึ่งช่องระหว่างอักขระสองตัวที่ใกล้เคียงที่สุด นั่นคือมุมซ้ายล่างของของขวัญถูกเว้นระยะเช่นถ้ากล่องของขวัญมีความยาวlและความกว้างwมุมซ้ายล่างของกล่องของขวัญถัดไปจะเป็นl + w + 4ตำแหน่งที่ถูกต้องของมุมซ้ายล่างของกล่องก่อนหน้า หลังจากดึงกล่องที่มีอยู่ทั้งหมดแล้วสายพานลำเลียงจะถูกดึงโดยแทนที่ช่องว่างระหว่างกล่องในแต่ละwidth + 2บรรทัดสุดท้ายด้วยขีดล่าง ผลลัพธ์สุดท้ายสำหรับกล่องปัจจุบันที่มี(l, w, h)ของ[(4, 1, 2), (8, 1, …

22
การสลับบิตละเลง
บทนำ ความท้าทายนี้ต้องการให้คุณตั้งค่าศูนย์ต่อท้ายของการแสดงเลขฐานสองจำนวนเต็ม010101…เป็นตัวอย่างนี้อธิบายได้ดีที่สุดด้วย: รับจำนวนเต็ม400ขั้นตอนแรกคือการแปลงเป็นไบนารี: 110010000 เนื่องจากเราสามารถเห็นบิตที่ห้าเป็นบิตที่มีนัยสำคัญน้อยที่สุด1ดังนั้นเริ่มจากตรงนั้นเราแทนค่าศูนย์ล่างโดย0101: 110010101 ในที่สุดเราแปลงกลับเป็นทศนิยม: 405 ท้าทาย รับคืนจำนวนเต็มบวก / ค่าผลลัพธ์ที่สอดคล้องกันของกระบวนการที่กำหนดไว้ข้างต้น กฎระเบียบ ลำดับนี้ถูกกำหนดไว้สำหรับเลขจำนวนเต็มอย่างน้อยหนึ่ง1บิตดังนั้นอินพุตจะเป็น≥ 1 เสมอ คุณอาจจะใส่เป็นสตริงรายการของตัวเลข (ทศนิยม) แทน คุณไม่ต้องจัดการอินพุตที่ไม่ถูกต้อง Testcases ต่อไปนี้เป็นบททดสอบเพิ่มเติมที่มีขั้นตอนตัวกลาง (คุณไม่ต้องพิมพ์ / ส่งคืนสิ่งเหล่านี้): In -> … -> … -> Out 1 -> 1 -> 1 -> 1 2 -> 10 -> 10 -> 2 3 -> 11 -> …

16
หมายเลขเฉพาะและหมายเลขสุดท้ายที่มีจำนวนเฉพาะของช่วง
ท้าทาย สำหรับช่วงจำนวนเต็มบวกที่กำหนดให้หาจำนวนเฉพาะและหมายเลขสุดท้ายที่ประกอบด้วยตัวเลขจำนวนเฉพาะทั้งหมดโดยเฉพาะอย่างยิ่งรวมถึง 0 (สำหรับตัวเลขช่วง 0-2 ควรส่งออก 2-2) ช่วงนี้รวม หากไม่พบจำนวนผลลัพธ์ที่คาดหวังคือ 0 หากมีเพียงหมายเลขเดียวดังกล่าวเอาต์พุตที่คาดหวังคือหมายเลขนั้นสองครั้ง ตัวอย่าง สำหรับช่วง 1-100 จำนวนเฉพาะตัวแรกคือ 2 และตัวสุดท้ายคือ 73 (7 และ 3 เป็นหมายเลขเฉพาะ) สำหรับช่วง 70-80 หมายเลขเฉพาะแรกคือ 73 และสุดท้ายคือ 73 (เนื่องจากมีหมายเลขที่ถูกต้องเพียงหนึ่งหมายเลขในช่วงที่กำหนดเราจึงส่งกลับสองครั้ง) สำหรับช่วง 190–200 ไม่มีคำตอบที่ถูกต้องดังนั้นคุณส่งคืน 0 สำหรับช่วง 2000-2100 จำนวนเฉพาะตัวแรกคือ 2003 และอันสุดท้ายคือ 2053 (เราไม่ใส่ตัวเลข 0 แต่หลักอื่น ๆ ทั้งหมดเป็นจำนวนเฉพาะ) นี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะชนะ! ช่องโหว่มาตรฐานทั้งหมดใช้ อินพุต คุณมีอิสระที่จะรับจำนวนเต็มสองจำนวนเป็นอินพุตได้ แต่คุณอาจเห็นว่าเหมาะสม, สแต็ค, …

5
ธนาคารที่มีเพื่อนที่น่าเชื่อถือน้อยกว่า
บทนำ คุณได้งานเป็นรัฐมนตรีว่าการกระทรวงการคลังในประเทศที่ทำขึ้นในสนามหลังบ้านของคุณ คุณตัดสินใจที่จะสร้างธนาคารของคุณเองในประเทศของคุณเพื่อคุณและเพื่อนที่ไม่ค่อยไว้ใจ เนื่องจากคุณไม่เชื่อใจเพื่อน ๆ ของคุณคุณได้ตัดสินใจที่จะเขียนโปรแกรมเพื่อตรวจสอบการทำธุรกรรมทั้งหมดเพื่อหยุดเพื่อนของคุณจากการใช้สกุลเงินที่เกินกำหนดและทำลายเศรษฐกิจของคุณ งาน กำหนดยอดเริ่มต้นและธุรกรรมทั้งหมดให้กรองธุรกรรมทั้งหมดที่มีคนพยายามติดลบและบล็อกใครก็ตามที่พยายามติดลบ (รวมถึงการพยายามติดลบบัญชีที่ปิด) จากการใช้ธนาคารของคุณอีกครั้งโดยกรองธุรกรรมในอนาคตไปยังหรือจาก / บัญชีธนาคารของเธอ Input / Output สองรายการAและBเป็นอินพุตและรายการCเป็นเอาต์พุต เป็นยอดเงินเริ่มต้นของแต่ละบัญชีที่มีรูปแบบA คือรายการธุรกรรมที่มีรูปแบบซึ่งหมายความว่า Bob ต้องการจ่ายหน่วยสกุลเงิน Alice 3 ควรมีรูปแบบเดียวกับ , และอาจจะอยู่ในรูปแบบที่เหมาะสมใด ๆ[["Alice", 5], ["Bob", 8], ["Charlie", 2], ...]B[["Bob", "Alice", 3], ["Charlie", "Bob", 5], ...]["Bob", "Alice", 3]CBABC กรณีทดสอบ A: [["Alice", 5], ["Bob", 2]] B: [["Alice", "Bob", 5], …
12 code-golf 

4
ค้นหารหัสผ่าน
รหัสล็อคแบบ N หลักทั่วไปประกอบด้วยดิสก์หมุน N ตัว แผ่นดิสก์แต่ละแผ่นมีตัวเลข 0-9 ตามลำดับและคุณต้องเปลี่ยนเป็นรหัสผ่านที่ถูกต้องเพื่อเปิด แน่นอนถ้าคุณไม่ทราบว่ารหัสผ่านที่คุณจะต้องพยายามที่มากที่สุด 10 Nครั้งก่อนที่จะปลดล็อคมัน นั่นไม่น่าสนใจ ลองพิจารณาชุดตัวล็อคที่แตกต่างกันลองตั้งชื่อตัวล็อคการเปิดเผยระยะทาง ในความพยายามทุกครั้งที่ไม่ประสบความสำเร็จในการเปิดล็อคระยะห่างมันจะตอบสนองจำนวนการเคลื่อนไหวขั้นต่ำเพื่อปลดล็อก หนึ่งการเคลื่อนไหวถูกกำหนดให้เป็นหมุนโดยตำแหน่งหนึ่งเช่นจะต้องเคลื่อนไหว 1 จาก890ไป899และ 9 การเคลื่อนไหวจากการ137952 ความท้าทาย เมื่อไม่ทราบรหัสล็อคให้ลองเปิดล็อคด้วยจำนวนครั้งน้อยที่สุด(ไม่ใช่การเคลื่อนไหว) ขณะที่โปรแกรมไม่ให้ยาวเกินไป กฏและสกอร์ คุณควรเขียนโปรแกรมเต็มรูปแบบซึ่งอินพุตจาก stdin และเอาต์พุตไปยัง stdout โปรแกรมควรทำอินพุต / เอาต์พุตดังต่อไปนี้: Start Input an integer N (number of digits) from stdin Do Output a line containing decimal string of length N …

7
แปลงระหว่าง Music clefs
ก่อนออกเดินทางคุณไม่จำเป็นต้องเข้าใจสัญลักษณ์ทางดนตรีมากมายในการทำสิ่งนี้ คำอธิบาย ในแผ่นโน้ตเพลงมาตรฐาน clefs สองครั้งจะข้ามหน้าที่ทำหน้าที่เป็นจุดอ้างอิงไปยังโน้ตทำให้คุณรู้ว่าควรเล่นโน้ตใด หากคุณยังไม่คุ้นเคยกับเสียงแหลมและเสียงแหลม clef นี่คือคำอธิบายจากWikipedia: clef เป็นสัญลักษณ์ดนตรีที่ใช้เพื่อระบุระดับเสียงของโน้ตที่เขียน วางอยู่บนหนึ่งในบรรทัดที่จุดเริ่มต้นของขั้นบันไดก็ระบุชื่อและระดับเสียงของบันทึกในบรรทัดนั้น บรรทัดนี้ทำหน้าที่เป็นจุดอ้างอิงที่อาจมีการกำหนดชื่อของบันทึกย่อในบรรทัดหรือช่องว่างอื่นของเสา ในภาพด้านบนครึ่งบนของเส้นคือ Treble clef ซึ่งแสดงด้วย ครึ่งล่างคือเบสกุญแจเสียงเขียนด้วย ที่คุณสามารถดูได้ที่เสียงแหลมโน๊ตโน้ตที่ด้านล่างสุดบรรทัดเป็นE (ผมไม่ได้นับบันทึกนอกของเส้นโน๊ตสำหรับความท้าทายนี้) เมื่อวันที่โน๊ตเบสสายต่ำสุดเป็นG เพื่อให้การท้าทายนี้คุณต้องทำสิ่งต่อไปนี้: ท้าทาย ให้ข้อมูลในรูปแบบใดรูปแบบหนึ่งต่อไปนี้ (ตัวเลือกของคุณ) ให้แปลงเป็นรูปตัวโน๊ตตรงกันข้าม ไม่ว่าจะเป็น Treble หรือ Bass clef สามารถเป็นค่า Truthey / Falsey ในภาษาของคุณ (ไม่ใช่แค่สองค่าใด ๆ ) เช่น F # T หรือ F # True หรือ F # Treble …

6
เล่นกอล์ฟ“ pre-golfed” ของฉัน
พื้นหลัง สำหรับการส่งโค้ดกอล์ฟของฉันใน C ฉันต้องการเครื่องมือประมวลผล เช่นเดียวกับในหลายภาษาอื่น ๆ ช่องว่างส่วนใหญ่ไม่เกี่ยวข้องในซอร์ส C (แต่ไม่เสมอไป!) - ยังทำให้โค้ดสามารถเข้าใจได้ง่ายขึ้นสำหรับมนุษย์ โปรแกรม C ที่เล่นกอล์ฟอย่างเต็มที่ที่ไม่มีช่องว่างซ้ำซ้อนเดียวมักจะอ่านไม่ได้ ดังนั้นฉันชอบที่จะเขียนรหัสของฉันใน C สำหรับการส่งรหัสกอล์ฟรวมถึงช่องว่างและบางครั้งความคิดเห็นดังนั้นโปรแกรมเก็บโครงสร้างที่เข้าใจได้ในขณะที่เขียน ขั้นตอนสุดท้ายคือการลบความคิดเห็นทั้งหมดและช่องว่างที่ซ้ำซ้อน นี้เป็นงานที่น่าเบื่อและไม่สนใจซึ่งจริงๆควรจะทำโดยนักศึกษาฝึกงานโปรแกรมคอมพิวเตอร์ งาน เขียนโปรแกรมหรือฟังก์ชั่นที่กำจัดความคิดเห็นและช่องว่างที่ซ้ำซ้อนจากบางแหล่ง "pre-golfed" C ตามกฎต่อไปนี้: \(ทับขวา) เป็นตัวสุดท้ายในสายเป็นความต่อเนื่องบรรทัด หากคุณพบสิ่งนี้คุณต้องถือว่าบรรทัดต่อไปนี้เป็นส่วนหนึ่งของสายตรรกะเดียวกัน(ตัวอย่างเช่นคุณสามารถลบ\และต่อไปนี้\n(ขึ้นบรรทัดใหม่) อย่างสมบูรณ์ก่อนที่จะทำสิ่งอื่นใด) //ความคิดเห็นที่จะใช้รูปแบบหนึ่งบรรทัดที่เริ่มต้นด้วย ดังนั้นเมื่อต้องการลบออกคุณจะไม่สนใจส่วนที่เหลือของบรรทัดโลจิคัลที่ใดก็ตามที่คุณพบ//นอกสตริงตัวอักษร (ดูด้านล่าง) อักขระช่องว่างคือ(ช่องว่าง), \t(แท็บ) และ\n(ขึ้นบรรทัดใหม่ดังนั้นนี่คือจุดสิ้นสุดของบรรทัดตรรกะ) เมื่อคุณค้นหาลำดับของช่องว่างให้ตรวจสอบอักขระที่ไม่ใช่ช่องว่างที่ล้อมรอบ ถ้า ทั้งคู่เป็นตัวอักษรและตัวเลขหรือขีดล่าง (ช่วง[a-zA-Z0-9_]) หรือ ทั้งสอง+หรือ ทั้งสอง-หรือ สิ่งที่มาก่อนคือ/และสิ่งที่ตามมาคือ* จากนั้นแทนที่ลำดับด้วยอักขระช่องว่าง ( ) มิฉะนั้นให้กำจัดลำดับทั้งหมด กฎนี้มีข้อยกเว้นบางประการ : คำสั่งของโปรเซสเซอร์ล่วงหน้าจะต้องปรากฏในบรรทัดของตัวเองในผลลัพธ์ของคุณ สั่ง …
12 code-golf  c 

2
ฉันจะย่อรหัสหลามนี้ได้อย่างไร
นี่คือรหัสที่ฉันต้องการย่อ n=input() while n: s=raw_input() x,r,g,b=(int(x) for x in s.split()) a=x/r%2 c=x/g%2 d=x/b%2 r=((a*10+c)*10)+d if r==0:e="black" elif r==100:e="red" elif r==1:e="blue" elif r==10:e="green" elif r==101:e="magenta" elif r==11:e="cyan" elif r==110:e="yellow" else:e="white" print(e) n-=1 อินพุต: 3 4643 5913 4827 9752 5583 5357 5120 9400 2025 5475 4339 8392 เอาท์พุท: black yellow black
12 code-golf  tips  python 

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