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

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

9
ตารางขนมเปียกปูน ASCII
เขียนโค้ดที่สั้นที่สุดที่วัดได้ด้วยจำนวนไบต์เพื่อสร้างตาราง ASCII ที่ประกอบด้วย rhombi โดยกำหนดพารามิเตอร์ต่อไปนี้: m - จำนวน rhombi สมบูรณ์ในหนึ่งแถว n - จำนวนแถว s - ด้านของรูปสี่เหลี่ยมขนมเปียกปูนที่เล็กที่สุด r - ระดับของการทำรัง - มีกี่รอมบิที่อยู่ใน "ฐานคน" (ซึ่งเป็นฟอนต์ระหว่างจุดตัดของตาราง) ตัวอย่าง 1. Input: 5 3 1 0 Output: /\/\/\/\/\ \/\/\/\/\/ /\/\/\/\/\ \/\/\/\/\/ /\/\/\/\/\ \/\/\/\/\/ A 5x3 grid of rhombi with side 1, no nesting 2. Input: 3 …

13
ลำดับ Seqindignot
ชื่อเรื่องถูกสร้างขึ้นจาก 'ลำดับดัชนีหลักไม่ใช่' ท้าทาย: ได้รับจำนวนเต็มnซึ่งคือการ>= 0ส่งออกnจำนวน 'th ของลำดับต่อไปนี้ นี่คือ 50 รายการแรกที่มีดัชนี (0 ดัชนี) อยู่ด้านบน: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 …

13
นักผจญภัยในซากปรักหักพัง
คนขับทดสอบ • อภิปรายการท้าทาย • ส่งนักผจญภัย ( แหล่งรูปภาพ ) นักผจญภัยคู่ต่อสู้หลายคนกำลังบุกหาซากปรักหักพังเพื่อหาสมบัติ แต่พวกเขาสามารถบรรทุกได้ครั้งละมากและมีข้อ จำกัด ด้านความอดทน พวกเขาต้องการได้รับสมบัติที่มีค่าที่สุดและออกไปก่อนที่พวกเขาจะเหนื่อยเกินไปที่จะดำเนินการต่อ พวกเขาพยายามที่จะเป็นคนรวยที่สุดเท่าที่จะทำได้จากการขโมยของ shenanigans เพลย์ นักผจญภัยแต่ละคนจะเริ่มในห้องแรกของดันเจี้ยนที่มี 1,000 คะแนนความแข็งแกร่งและพื้นที่ 50 กก. ในกระเป๋าเป้สะพายหลังของพวกเขา เกมดังกล่าวทำงานในแบบเทิร์นเบสโดยผู้เล่นทุกคนสามารถแก้ไขผลัดกันได้ในเวลาเดียวกัน ในแต่ละเทิร์นคุณสามารถทำสิ่งใดสิ่งหนึ่งต่อไปนี้: ย้ายไปที่ห้องถัดไป ย้ายไปที่ห้องก่อนหน้า เสนอราคาความแข็งแกร่งที่จะใช้สมบัติ วางสมบัติ การย้ายระหว่างห้องต้องใช้ความแข็งแกร่ง 10 อย่างบวก 1 สำหรับทุกๆ 5 กิโลกรัมในกระเป๋าเป้ของคุณ ตัวอย่างเช่นนักผจญภัยที่มีสมบัติ 3 กิโลกรัมต้องใช้ความแข็งแกร่ง 11 ระดับในการเคลื่อนย้ายและน้ำหนัก 47 กิโลกรัมหนึ่งตัวต้องใช้ความแข็งแกร่ง 20 ชิ้นในการเคลื่อนย้าย การทิ้งสมบัติต้องใช้ 1 ความแข็งแกร่งโดยไม่คำนึงถึงสมบัติที่ลดลง เมื่อออกจากซากปรักหักพังผู้เล่นจะไม่ถูกเลี้ยวอีกต่อไป หากผู้เล่นไม่สามารถดำเนินการใด ๆ …

14
ระยะทางที่สั้นที่สุดระหว่างสองจุดคือเส้น
กำหนดรหัสโปรแกรมหรือฟังก์ชั่นเพื่อสร้างผืนผ้าใบแบบโต้ตอบบนหน้าจอที่มีขนาดอย่างน้อย 400 พิกเซล x 400 พิกเซล ผ้าใบสามารถเป็นสีใดก็ได้ที่คุณต้องการขอบหรือไม่มีขอบมีหรือไม่มีแถบชื่อเรื่อง ฯลฯ เพียงผ้าใบบางรูปแบบที่ชัดเจน ผู้ใช้จะคลิกบนพื้นที่ที่แตกต่างกันสองส่วนของผืนผ้าใบและโปรแกรมจะต้องส่งออกระยะทางแบบยุคลิด (เป็นพิกเซล) ระหว่างการคลิกสองครั้งในบางแบบ (STDOUT, การแสดงการแจ้งเตือน ฯลฯ ) การคลิกสองครั้งสามารถคลิกซ้ายได้เพียงคลิกขวาคลิกซ้ายสำหรับการคลิกครั้งแรกและคลิกขวาสำหรับการคลิกครั้งที่สองสองครั้งดับเบิลคลิกซ้าย ฯลฯ สามารถใช้ชุดค่าผสมใดก็ได้ หมายเหตุพิเศษ: ไม่อนุญาตให้คลิกและลาก (เช่นใช้ MOUSEUP เป็นจุดที่สอง) โดยเฉพาะ พวกเขาจะต้องคลิกสองครั้งที่แตกต่างกัน ผู้ใช้จะต้องสามารถทำสิ่งนี้ได้หลายครั้งและต้องได้รับผลลัพธ์ในแต่ละครั้งจนกว่าโปรแกรมจะปิด / force-quit / kill / etc คุณสามารถเลือกวิธีการปิด (คลิก X, ctrl-C, ฯลฯ ) สิ่งใดก็ตามที่นักกอล์ฟต้องการรหัสของคุณ กฎระเบียบ ยอมรับได้ทั้งโปรแกรมหรือฟังก์ชั่น หากฟังก์ชั่นอย่างไรก็ตามคุณยังคงต้องแสดงผลให้กับผู้ใช้อย่างใดอย่างหนึ่ง (เพียงแค่คืนค่าไม่เป็นที่ยอมรับ) สามารถส่งออกไปยังคอนโซลแสดงเป็นแจ้งเตือนบรรจุลงบนผืนผ้าใบและอื่น ๆ ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม นี่คือรหัส - กอล์ฟเพื่อให้ใช้กฎการตีกอล์ฟตามปกติทั้งหมดและรหัสที่สั้นที่สุด …

30
การรวมโมดูลัส
ฉันเรียกลำดับนี้ว่า "ลำดับพระเยซู" เพราะเป็นผลรวมของ mod </pun> สำหรับลำดับนี้คุณใช้เวลาทั้งหมดจำนวนเต็มบวกmน้อยกว่าการป้อนข้อมูลที่nและใช้ผลรวมของn modulo แต่ละเมตร ในคำอื่น ๆ : an=∑m=1n−1nmodman=∑m=1n−1nmodma_n = \sum_{m=1}^{n-1}{n\bmod m} ตัวอย่างเช่นใช้เทอม14 : 14 % 1 = 0 14 % 2 = 0 14 % 3 = 2 14 % 4 = 2 14 % 5 = 4 14 % 6 = 2 14 % 7 …

8
คลายสตริง
รับสแควร์สตริงผลิตผลลัพธ์ทั้งหมดสำหรับสายอักขระในทุกขั้นตอนของการคลาย สตริงจะต้องคลี่ออกไปในทิศทางตามเข็มนาฬิกาหนึ่งครั้งในสี่รอบในแต่ละครั้ง ตัวอย่าง อินพุต : A ผลผลิต : A หมายเหตุ : ฉันจะยอมรับอินพุตที่ทำซ้ำสำหรับกรณีทดสอบนี้เฉพาะเมื่อสิ่งนี้ช่วยลดจำนวนไบต์ของคุณ อินพุต : DC AB ผลผลิต : DC AB D ABC ABCD อินพุต : GFE HID ABC ผลผลิต : GFE HID ABC HG IF ABCDE IH ABCDEFG I ABCDEFGH ABCDEFGHI อินพุต : JIHG KPOF LMNE ABCD ผลผลิต : JIHG …

21
ค้นหาช่องว่างที่สำคัญ
ช่องว่างที่สำคัญคือความแตกต่างระหว่างสองช่วงเวลาติดต่อกัน โดยเฉพาะอย่างยิ่งถ้าPและQเป็นช่วงเวลาที่มีP < QและP 1, P 2, ... , คิว -1 ไม่ได้เฉพาะที่เฉพาะPและQกำหนดช่องว่างของn = Q - พี ช่องว่างกล่าวคือจะต้องเริ่มต้นจากหน้าและจะมีความยาว n เป็นที่ทราบกันดีว่ามีช่องว่างขนาดใหญ่ที่ใหญ่มาก นั่นคือเนื่องจากnมีช่องว่างที่สำคัญของความยาวnหรือใหญ่กว่า อย่างไรก็ตามช่องว่างที่สำคัญของความยาวnแน่นอนอาจไม่มีอยู่ (แต่จะมีขนาดใหญ่กว่า) ความท้าทาย กำหนดจำนวนเต็มบวกnเอาท์พุทไพรม์แรกที่เริ่มต้นช่องว่างความยาวnหรือใหญ่กว่า ตัวอย่างเช่นสำหรับอินพุต4เอาต์พุตควรเป็น7เพราะ 7 และ 11 เป็นช่วงเวลาที่ต่อเนื่องกันครั้งแรกที่แตกต่างกันอย่างน้อย 4 (ช่องว่างก่อนหน้าคือ 1 จาก 2 ถึง 3; 2, จาก 3 ถึง 5 และ 2 จาก 5 7) สำหรับ3คำตอบที่ป้อนควรเป็น7(ไม่มีช่องว่างความยาว 3) กฎ Aditional …

20
เคล็ดลับสำหรับการเล่นกอล์ฟในรหัสเครื่อง x86 / x64
ฉันสังเกตเห็นว่าไม่มีคำถามดังกล่าวดังนั้นที่นี่: คุณมีเคล็ดลับทั่วไปสำหรับการเล่นกอล์ฟในรหัสเครื่องหรือไม่? หากเคล็ดลับนี้ใช้กับสภาพแวดล้อมบางอย่างหรือการประชุมที่โทรมาเท่านั้นโปรดระบุในคำตอบของคุณ กรุณาเพียงหนึ่งเคล็ดลับต่อคำตอบ (ดูที่นี่ )

16
ลด Kolakoski
ภาพรวม บางท่านอาจทราบถึงKolakoski Sequence ( A000002 ) ซึ่งเป็นลำดับการอ้างอิงตัวเองที่รู้จักกันดีซึ่งมีคุณสมบัติดังต่อไปนี้: มันเป็นลำดับที่มีเพียง 1 และ 2 และสำหรับแต่ละกลุ่มของ 1 และ 2 ถ้าคุณเพิ่มความยาวของการวิ่งมันเท่ากับตัวเองเพียงครึ่งหนึ่งของความยาว กล่าวอีกนัยหนึ่งลำดับ Kolakoski อธิบายความยาวของการวิ่งในลำดับนั้น เป็นลำดับเดียวที่ทำสิ่งนี้ยกเว้นลำดับเดียวกันโดยลบ 1 ครั้งแรก (สิ่งนี้เป็นจริงเฉพาะในกรณีที่คุณ จำกัด ตัวเองในลำดับที่ประกอบด้วย 1 และ 2 - Martin Ender) ความท้าทาย ความท้าทายคือให้รายการของจำนวนเต็ม: เอาต์พุต-1ถ้ารายการไม่ใช่ส่วนนำหน้าของลำดับ Kolakoski [2]การส่งออกจำนวนซ้ำก่อนที่จะกลายเป็นลำดับ ตัวอย่างการออกกำลังกาย ใช้ภาพที่ให้มาเป็นตัวอย่าง: [1,2,2,1,1,2,1,2,2,1,2,2,1,1,2,1,1] # Iteration 0 (the input). [1,2,2,1,1,2,1,2,2,1,2] # Iteration 1. [1,2,2,1,1,2,1,1] # …

11
ฉันต้องมีจำนวนเท่าใดที่ต้องเพิ่มตัวเลขทั้งสองนี้
งาน กำหนดจำนวนเต็มบวกสองตัวเอาท์พุทจำนวนการถือครองที่ต้องการเพื่อรวมเข้าด้วยกันในการเพิ่มความยาวในฐาน 10 ตัวอย่าง ¹¹¹ <-- carries 999 + 1 ---- 1000 ต้องมีสามอุ้ม ¹ 348 + 91 ---- 439 ต้องพกหนึ่งอัน Testcases 999, 1 -> 3 398, 91 -> 1 348, 51 -> 0 348, 52 -> 2 5, 15 -> 1 999, 999 -> 3 505, 505 -> 2 เกณฑ์การให้คะแนน …

20
มันเป็นเฉินตัวใหญ่หรือไม่?
จำนวนนั้นเป็นค่าเฉพาะสำหรับเฉินถ้าเป็นไปตามเงื่อนไขสองข้อ: มันเป็นนายกตัวเอง ตัวเองบวกสองเป็นได้ทั้งนายกหรือกึ่งนายก จำนวนเฉพาะคือจำนวนที่มีตัวหารสองตัวและตัวหารเหล่านั้นประกอบด้วยตัวของมันเองและอีกตัวหนึ่ง Semi-prime คือตัวเลขซึ่งเป็นผลคูณของสองช่วง (โปรดทราบว่า 12 = 2 * 2 * 3 ไม่ใช่แบบกึ่งนายกรัฐมนตรี แต่ 25 = 5 * 5 คือ) งานของคุณคือการพิจารณาว่าตัวเลขเป็นตัวเอกเฉิน คุณควรส่งออกค่าความจริงใด ๆ สำหรับใช่และค่าเท็จใด ๆ สำหรับไม่ใช่ อินพุตจะเป็นจำนวนเต็มใด ๆ ที่มากกว่าหรือเท่ากับหนึ่ง มันอาจถูกนำมาเป็นสตริงอาร์เรย์อักขระหรืออาร์เรย์หรือตัวเลข ตัวอย่าง: 101 -> truthy 223 -> falsy 233 -> truthy 1 -> falsy นี่คือ OEIS A109611 นี่คือบางส่วนได้รับแรงบันดาลใจจากฉันเป็นนายกของ Sophie …

1
ชุดรถไฟแบบง่าย
มีชุดรถไฟหลายประเภทตั้งแต่แทร็กไม้อย่าง Brio จนถึงการควบคุมแบบดิจิตอลอย่างสมบูรณ์แบบจำลองโลหะเล็ก ๆ ที่สมบูรณ์แบบของรถไฟจริง แต่พวกมันทั้งหมดต้องการแทร็กที่ออกแบบมาโดยใช้ชิ้นส่วนของคุณให้ได้มากที่สุด ดังนั้นงานของคุณคือการพิจารณาว่าได้รับอินพุตของชิ้นส่วนที่มีอยู่หรือไม่สามารถสร้างวงจรปิดที่สมบูรณ์ได้โดยใช้องค์ประกอบทั้งหมดและหากไม่ทำเช่นนั้นจะมีจำนวนชิ้นส่วนที่เหลือจากวงจรที่เป็นไปได้สูงสุด เนื่องจากชุดนี้เป็นชุดรถไฟที่เรียบง่ายจึงมีองค์ประกอบ 3 อย่างเท่านั้น: โค้งใหญ่, โค้งเล็ก ๆ และตรง สิ่งเหล่านี้ล้วนมีพื้นฐานมาจากตารางสี่เหลี่ยม: "Big Curve" เป็นมุม 90 องศาครอบคลุม 2 ยูนิตในแต่ละมิติ "Little Curve" เป็นมุม 90 องศาครอบคลุมหนึ่งยูนิตในแต่ละทิศทาง "เส้นตรง" เป็นองค์ประกอบเส้นตรงยาว 1 หน่วย ซึ่งหมายความว่าวงจรต่ำสุดที่เป็นไปได้จะเกิดขึ้นจาก 4 เส้นโค้งเล็ก ๆ - มันเป็นวงกลมรัศมี 1 หน่วย สิ่งนี้สามารถขยายได้โดยการเพิ่มคู่ขององค์ประกอบตรงในรูปแบบวงรีต่างๆ มีวงจรอื่น ๆ ที่เป็นไปได้โดยการเพิ่มเส้นโค้งมากขึ้นหรือโดยการผสมประเภทของเส้นโค้ง ชุดขบวนรถไฟนี้ไม่มีทางแยกหรือวิธีการข้ามแทร็กดังนั้นจึงไม่ถูกต้องสำหรับองค์ประกอบสองอย่างที่จะเชื่อมต่อกับส่วนอื่น ๆ ขององค์ประกอบอื่น ๆ (ไม่มีการก่อตัว Y) หรือข้ามแบบอื่น …
27 code-golf 

5
สถิติปลอม
หากคุณจะคิดค้นข่าวปลอมคุณจะต้องสร้างข้อมูลเพื่อสำรองข้อมูล คุณต้องมีข้อสรุปไว้ล่วงหน้าแล้วและคุณต้องการสถิติบางอย่างเพื่อเสริมการโต้แย้งของตรรกะที่ผิดพลาดของคุณ ความท้าทายนี้จะช่วยคุณได้! รับตัวเลขสามตัว: N - จำนวนจุดข้อมูล μ - ค่าเฉลี่ยของจุดข้อมูล σ - ส่วนเบี่ยงเบนมาตรฐานของจุดข้อมูลโดยที่μและσกำหนดโดย: ออกรายการเรียงลำดับของตัวเลข𝑥 ฉันซึ่งจะสร้างให้N , μและσ ฉันจะไม่จู้จี้จุกจิกมากเกินไปเกี่ยวกับรูปแบบ I / O แต่ฉันคาดหวังว่าทศนิยมบางประเภทสำหรับμ , σและจุดข้อมูลเอาต์พุต อย่างน้อยที่สุดควรสนับสนุนตัวเลขที่มีนัยสำคัญอย่างน้อย 3 รายการและขนาดอย่างน้อย 1,000,000 การลอยตัวของ IEEE นั้นใช้ได้ Nจะเป็นจำนวนเต็มเสมอโดยที่ 1 ≤ N ≤ 1,000 μสามารถเป็นจำนวนจริงได้ σจะเป็น≥ 0 เสมอ จุดข้อมูลสามารถเป็นจำนวนจริงใด ๆ ถ้าNคือ 1 ดังนั้นσจะเป็น 0 เสมอ โปรดทราบว่าอินพุตส่วนใหญ่จะมีเอาต์พุตที่เป็นไปได้มากมาย คุณจะต้องให้ผลลัพธ์ที่ถูกต้องหนึ่งรายการเท่านั้น …

30
ค้นหาจดหมายที่หายไป
แนวทาง งาน เขียนวิธีการที่ใช้อาร์เรย์ของตัวอักษรต่อเนื่อง (เพิ่มขึ้น) เป็นอินพุตและส่งคืนตัวอักษรที่หายไปในอาร์เรย์ (รายการในบางภาษา) กฎระเบียบ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ! คุณจะได้รับอาร์เรย์ที่ถูกต้องเสมอ จะมีตัวอักษรหนึ่งตัวที่หายไปเสมอ ความยาวของอาร์เรย์จะมีอย่างน้อย 2 เสมอ อาร์เรย์จะมีตัวอักษรเสมอในกรณีเดียว (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) คุณต้องเอาต์พุตในกรณีเดียวกัน (ตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก) ที่อินพุตนั้น อาร์เรย์จะใช้เวลาเพียงหนึ่งตัวอักษรเสมอ (ข้ามตัวอักษรที่หายไป) ความยาวของอาเรย์จะอยู่ระหว่าง 2 ถึง 25 องค์ประกอบแรกหรือสุดท้ายของอาร์เรย์จะไม่หายไป ตัวอย่าง ['a','b','c','d','f'] -> 'e' ['O','Q','R','S'] -> 'P' ['x','z'] -> 'y' ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','x','y','z'] -> 'v'

30
วาด S-Chain
พื้นหลัง เมื่อฉันยังเด็กฉันถูกสอนวิธีการวาดรูปร่าง "S" แปลก ๆ ที่ฉัน (พร้อมกับเพื่อนร่วมชั้น) พบว่ามีเสน่ห์ วันนี้ฉันได้ค้นพบมันอีกครั้งและเนื่องจากวิธีการเขียนแบบสูตรที่เป็นรูปเป็นร่างจึงคิดว่ามันอาจนำไปสู่ความท้าทายที่น่าสนใจ: P การวาด "S" S สามารถวาดได้โดยทำตามขั้นตอนง่าย ๆ เหล่านี้: ก่อนอื่นให้วาด 2 แถวสามบรรทัดในแนวดิ่ง | | | | | | ถัดไปเชื่อมต่อสายซ้ายบนกับเส้นกลางล่างและตรงกลางด้านบนด้วยเส้นล่างขวาเพื่อสร้าง | | | \ \ | | | ในที่สุดก็ให้วาดบนและล่างลงบนภาพที่วาดในปัจจุบันเพื่อให้มันดูเป็นแบบนั้น ^ / \ | | | \ \ | | | \ / v อย่างที่คุณเห็นผลลัพธ์นี้มีรูปร่าง …

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