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

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

8
กี่หลุม
ท้าทาย กำหนดอินพุตกราฟิกของรูปร่างพิจารณาจำนวนหลุมที่มีอยู่ในนั้น ไม่ซ้ำ คำถามนี้ถูกทำเครื่องหมายว่าซ้ำกันเป็นไปได้ของหมู่เกาะจำนวน ฉันเชื่อว่าความท้าทายนี้แตกต่างจากการท้าทาย Count Island เพราะในเกมนี้คุณต้องหาวิธีกำจัดบล็อกที่สัมผัสกับเส้นขอบ อินพุต อินพุตจะได้รับเป็นรูปแบบการป้อนข้อมูลแบบ 2D บางรูปแบบทั้งสตริงหลายชั้นอาร์เรย์ของสตริงหรืออาร์เรย์ของอักขระอาร์เรย์ นี่แสดงให้เห็นถึงรูปร่าง รูปร่างรับประกันว่าจะมีเพียงชิ้นเดียวเชื่อมต่อด้วยขอบ โปรดระบุวิธีการป้อนข้อมูลของคุณ เอาท์พุต เอาท์พุทเป็นจำนวนเต็มเดียวที่ระบุจำนวนหลุมที่มีในรูปร่าง ขึ้นบรรทัดใหม่ที่ได้รับอนุญาต แต่ไม่มีช่องว่างนำหน้าหรือต่อท้ายอื่น ๆ ในคำอื่น ๆ ^\d+\n?$ที่ส่งออกจะต้องตรงกับการแสดงออกปกติ รูคืออะไร? เหล่านี้เป็นหลุมเดียว: #### # # # # #### #### # # # ## ### ##### # # # # # ##### นี่ไม่ใช่หลุม: ######## ######## # #### # …

13
เลขจำนวนเต็มของ Arithmetic-Tables
ท้าทาย: เอาท์พุท 'จำนวนเต็มตัวเลข' ของหนึ่งในหกคณิตศาสตร์ต่อไปนี้ตารางตามการป้อนข้อมูล: - นอกจากนี้ ( +); - การลบ ( -); - การคูณ ( *); - แผนก ( /); - การยกกำลัง ( ^); - การทำงานแบบโมดูโล ( %) กฎ: ฉันจะทำอะไรกำหนดเป็น 'จำนวนเต็มหลัก': ทุกผลมาจากการดำเนินการทางคณิตศาสตร์ซึ่งเป็นสิ่งหนึ่งต่อไปนี้: 0, 1, 2, 3, 4, 5, 6, 7, ,8 9ซึ่งหมายความว่าคุณจะแยกผลลัพธ์ทั้งหมด10หรือสูงกว่าทุกผลลัพธ์ของ-1หรือต่ำกว่าและผลลัพธ์ที่ไม่ใช่จำนวนเต็มทุกรายการ เราจะคำนวณผลลัพธ์ทางคณิตศาสตร์ได้อย่างไร: โดยใช้เลขตัวแรกสุดแล้วใช้ตัวถูกดำเนินการด้วยตัวเลขทางซ้าย คุณได้รับอนุญาตให้ทำเช่นนี้ในทางกลับกัน (เช่นy/xแทนที่จะเป็นx/y) ตราบใดที่คุณสอดคล้องกับเอาท์พุททั้งหก! (ดังนั้นคุณจะไม่ได้รับอนุญาตให้ใช้y-xและx/yในคำตอบเดียวกัน) † เราจะไม่เอาท์พุทอะไรเลยสำหรับหารด้วย …

10
เข้าสู่ระบบการเปลี่ยนแปลงวงและจอแสดงผลที่มีการขยายน้อยที่สุด
การป้อนข้อมูล: จำนวนเต็มสองค่า: ค่าลบหนึ่งค่า, ค่าบวกหนึ่งค่า เอาท์พุท: ในบรรทัดแรกเอาท์พุทต่ำสุดไปหาสูงสุด ในบรรทัดที่สองเราได้ลบตัวเลขที่สูงที่สุดและต่ำสุดและเปลี่ยนแปลงเครื่องหมายทุกหมายเลข ในบรรทัดที่สามเราได้ลบหมายเลขสูงสุดและต่ำสุดอีกครั้งและลงชื่อเปลี่ยนหมายเลขส่วนตัวทั้งหมดอีกครั้ง เป็นต้น (ตัวอย่างด้านล่างควรทำให้การท้าทายชัดเจนขึ้น) สำคัญ:นอกจากนี้เรายังเพิ่มช่องว่างเพื่อให้ตัวเลขในคอลัมน์ทั้งหมดจัดเรียง (ทางด้านขวา) การจัดตำแหน่งที่น้อยที่สุดเป็นส่วนสำคัญของความท้าทายนี้ซึ่งหมายความว่าคุณไม่สามารถสร้างความกว้างเท่ากันทุกหมายเลข ความกว้างของคอลัมน์ขึ้นอยู่กับจำนวนความกว้างที่ใหญ่ที่สุดของคอลัมน์นั้น ๆ (และลำดับที่มีการเปลี่ยนเครื่องหมายคือการให้ตัวเลขที่หลากหลายในความกว้างต่อคอลัมน์) ตัวอย่างเช่น: Input: -3,6 Output: -3,-2,-1, 0, 1, 2, 3, 4,5,6 // sequence from lowest to highest 2, 1, 0,-1,-2,-3,-4,-5 // -3 and 6 removed; then all signs changed -1, 0, 1, 2, 3, 4 …

11
ค้นหาซ้ำนายกซ้ำ
นายกรัฐมนตรีซ้ำเป็นลำดับของช่วงเวลาเช่นนั้น p(1) = 2 p(n) = the p(n-1)th prime นี่คือตัวอย่างของวิธีที่หนึ่งอาจคำนวณ Prime Prime แบบเรียกซ้ำครั้งที่ 4 p(4) = the p(3)th prime p(3) = the p(2)th prime p(2) = the p(1)th prime p(1) = 2 p(2) = the 2nd prime p(2) = 3 p(3) = the 3rd prime p(3) = 5 p(4) = …

5
กำหนดประเภทของทรงลูกบาศก์
บทนำ: ฉันเป็นนักสะสมจิ๊กซอร์ ที่นี่คุณสามารถดูคอลเล็กชั่นปัจจุบันของฉันของปริศนา± 300 ฉันคิดว่าทุกคนรู้ Cube ของ Rubik ปกติ (3x3x3 Cube) ซึ่งเป็นCube NxNxN นอกจากนี้ยังมี Cuboids (ปริศนารูปบล็อค) ซึ่งมาในรูปแบบที่แตกต่างกันอาจอธิบายได้ดีกว่าโดย SuperAntionioVivaldi ที่นี่ : ปกติ Cuboids Domino (เช่น2x2x3 ; 2x3x3 ; 3x3x4 ; ฯลฯ ) - พวกเขามาในรูปแบบของNxNx (N + O)หรือNx (N + O) x (N + O)ซึ่งมีทั้งสองมิติแปลกและ คู่หรือสองคู่และคี่ Shapeshifter Cuboids (เช่น2x2x4 ; 3x3x5; 3x3x9 …

8
เห็นภาพอัลกอริทึมแบบยุคลิด
อัลกอริทึมแบบยุคลิดเป็นอัลกอริทึมที่รู้จักกันอย่างกว้างขวางสำหรับการคำนวณตัวหารสามัญที่ยิ่งใหญ่ที่สุด (GCD) ของจำนวนเต็มบวกสองตัว อัลกอริทึม สำหรับจุดประสงค์ของการท้าทายนี้มีการอธิบายอัลกอริทึมดังต่อไปนี้: แสดงอินพุตสองตัวเป็นบรรทัดที่อยู่ติดกันของอักขระบางตัว เช่นอินพุตของ3,4สามารถแสดงด้วยบรรทัดที่อยู่ติดกัน000และ0000 เปลี่ยนlength(short_line)อักขระตัวแรกในบรรทัดที่ยาวขึ้นไปเป็นอีกตัวหนึ่งแล้วพูดว่า- มันดูเหมือน000และ---0 กำจัดlength(short_line)อักขระตัวแรกในบรรทัดที่ยาวขึ้น ตอนนี้000,0 ทำซ้ำขั้นตอนที่ 2 และ 3 จนกระทั่งทั้งสองมีความยาวเท่ากันโดยใช้สายสั้นและยาวหลังจากที่แต่ละซ้ำเช่น 000, 0 -00, 0 00, 0 -0, 0 0,0 คุณสามารถเลือกว่าจะหยุดที่นี่หรือทำซ้ำต่อและเปลี่ยนหนึ่งบรรทัดเป็นบรรทัดว่าง แต่ละขั้นตอนเหล่านี้ควรคั่นด้วยช่วงเวลาระหว่าง 0.3s ถึง 1.5s ความท้าทาย เขียนโปรแกรมที่ให้ตัวเลขธรรมชาติสองตัวเป็นอินพุตสร้างเอาต์พุตที่มีลักษณะเหมือนกับเอาต์พุตของอัลกอริทึมด้านบน คุณสามารถใช้อักขระ ASCII ที่ไม่ใช่แบบไวท์สเปซอื่นที่พิมพ์ได้0และและ-ให้สอดคล้องกันและใช้อักขระเพียงสองตัว นอกจากนี้คุณยังสามารถใช้อัลกอริธึมทางเลือกที่ให้ผลลัพธ์รวมถึงเวลาได้เช่นเดียวกับที่อัลกอริทึมข้างต้นสร้างขึ้น ตัวอย่าง นี่คือตัวอย่างของอินพุต24,35ซึ่งเป็น coprimes ดังนั้น GCD ของพวกเขาคือ 1 นี่คือตัวอย่างของอินพุต16,42ซึ่งมี GCD 2 กฎระเบียบ นี่คือรหัสกอล์ฟดังนั้นไบต์ที่สั้นที่สุดจึงชนะ ช่องโหว่มาตรฐานใช้ คุณสามารถสมมติว่าอินพุตเป็นจำนวนเต็มฐานสิบบวก …

5
ประโยคที่บิด
กฎระเบียบ โปรแกรมควรรับสตริง / อาร์เรย์ของคำเป็นอินพุต สำหรับแต่ละคำในสตริง / อาเรย์มันจะสร้างคำใหม่โดยการใช้ตัวอักษรในการสลับแฟชั่นจากด้านหน้าและด้านหลังของคำ 12345 678 9 -> 15243 687 9 จากนั้นจะจัดเรียงคำใหม่ในลักษณะสลับระหว่างคำแรกสุดและคำที่เกิดขึ้นล่าสุดในสตริง 15243 687 9 -> 15243 9 687 ในที่สุดมันจะสร้างสตริงขึ้นใหม่โดยการวางช่องว่างแท็บและการขึ้นบรรทัดใหม่ที่ดัชนีซึ่งเป็นตำแหน่งเริ่มต้นก่อนที่จะแสดงผลลัพธ์ 12345 678 9-> 15243 687 9 -> 15243 9 687 -> 15243 968 7 เอาต์พุตควรเป็นประเภทข้อมูลเดียวกับอินพุต ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม ตัวอย่าง อินพุต: สุนัขจิ้งจอกสีน้ำตาลอย่างรวดเร็วกระโดดข้ามสุนัขขี้เกียจ ผลลัพธ์: Teh d.ogq kucil yaz bnrwo tehf xoo …

23
สร้างตัวเลขธรรมชาติด้วยชุด
การก่อสร้างนี้เป็นวิธีการแสดงตัวเลขธรรมชาติ ในการแทนค่านี้ 0 หมายถึงชุดว่างและสำหรับตัวเลขอื่น ๆ ทั้งหมด n คือค่ารวมของ {0} และ {n-1} เช่นสร้าง 3 เราสามารถทำตามอัลกอริทึม: 3 = {ø, 2} = {ø, {ø, 1}} = {ø, {ø, {ø}}} งาน ในขณะที่คุณอาจเดาได้ว่างานของคุณคือการใช้จำนวนธรรมชาติ (รวมถึงศูนย์) และเอาท์พุทก่อสร้าง คุณอาจส่งออกเป็นสตริงหรือเป็นวัตถุชุดหากภาษาที่คุณเลือกรองรับวัตถุดังกล่าว หากคุณเลือกที่จะแสดงผลเป็นสตริงคุณควรแสดงชุดด้วยเครื่องหมายปีกกา ( {}) คุณอาจเลือกที่จะแสดงชุดเปล่าเป็นø(มิฉะนั้นมันควรจะเป็นชุดที่ไม่มีรายการ{}) คุณอาจเลือกที่จะเพิ่มจุลภาคและช่องว่างระหว่างและหลังรายการในชุด คำสั่งไม่สำคัญ แต่คุณอาจไม่มีองค์ประกอบซ้ำในชุดที่คุณส่งออก (เช่น{ø,ø}) นี่คือโค้ดกอล์ฟดังนั้นเป้าหมายคือมีไบต์น้อยที่สุด กรณีทดสอบ ต่อไปนี้เป็นกรณีทดสอบบางตัวอย่างที่มีเอาต์พุตตัวอย่าง 0 -> {} 1 -> {{}} 2 -> …

9
ปูพรมที่สนามบิน
ในปี 2015 สนามบินนานาชาติพอร์ตแลนด์เริ่มเปลี่ยนพรมที่โดดเด่นของพวกเขา ฉันต้องการให้คุณเขียนโปรแกรมเพื่อวาดพรมเก่าแก่ของพวกเขาในเวลาไม่กี่ไบต์เท่าที่จะทำได้ พรม: ข้อมูลจำเพาะ ที่นี่คือลิงค์ไปยังภาพ PDF ที่ปรับขนาดได้ของไทล์เดียว ผลลัพธ์ของคุณควรตรงกับขนาดและตำแหน่งของภาพนั้น สีทั้งหมดในภาพสุดท้ายของคุณควรอยู่ภายใน 15 ของทุกค่า RGB ในภาพที่ระบุ เหล่านี้มีการระบุไว้ด้านล่างเพื่อความสะดวกของคุณ Red Green Blue Teal: 0, 168, 142 Magenta: 168, 108, 185 Orange: 247, 58, 58 Light Blue: 90, 166, 216 Dark Blue: 0, 77, 117 เอาต์พุตของคุณต้องมีอย่างน้อย 150x150 พิกเซลและควรเป็นสี่เหลี่ยมจัตุรัส หากคุณเลือกที่จะส่งออกในรูปแบบที่ปรับขนาดได้เช่นภาพเวกเตอร์คุณควรจับคู่ภาพให้ตรงกัน คุณสามารถส่งออกภาพในรูปแบบภาพใด ๆ ที่มีอยู่ก่อนหน้า นี่คือโค้ดกอล์ฟดังนั้นคุณควรตั้งเป้าที่จะลดจำนวนไบต์ในรหัสของคุณ

1
Hold'em หรือ Fold'em
เพื่อนของคุณเชิญคุณเข้าร่วมการแข่งขันโปกเกอร์ขั้นสูงในนาทีสุดท้ายและในฐานะนักวิทยาศาสตร์คอมพิวเตอร์คุณตัดสินใจที่จะใช้ทักษะของคุณเพื่อสร้างความได้เปรียบให้กับเกม งานของคุณจะได้รับ2 cards(มือของคุณ) และ0, 3, 4 or 5 cards(ไพ่ที่แจก) คุณต้องตัดสินใจว่ามือที่ดีที่สุดที่คุณจะได้รับคืออะไร หากได้รับไพ่ทั้งหมด 7 ใบเป็นอาร์กิวเมนต์คำตอบนั้นค่อนข้างชัดเจน หากได้รับน้อยปัญหาจะซับซ้อนมากขึ้น อย่างไรก็ตามมันไม่เพียงพอที่จะให้คุณได้เปรียบคุณต้องคำนวณมือที่ดีที่สุดที่เป็นไปได้จากไพ่ที่เหลือเพื่อให้เข้าใจว่าฝ่ายตรงข้ามของคุณจะมีอะไรบ้าง Hold'em Refresher หากคุณไม่รู้จัก Hold'em ผู้เล่นแต่ละคนในเกมจะเริ่มด้วยไพ่ 2 ใบในมือของพวกเขา ในช่วงระยะเวลา 3 รอบจะมีการเปิดเผยการ์ดเพิ่มเติมเพื่อแบ่งปันระหว่างผู้เล่นทุกคน เทิร์นแรกไพ่ 3 ใบถูกเปิดเผย ครั้งที่สองอีก 1 และครั้งที่สามมีการเปิดเผยไพ่ใบสุดท้าย ไพ่สองใบแรกที่มอบให้แสดงถึงมือของคุณในขณะที่ไพ่หลังนั้นเป็น 0, 3, 4 หรือ 5 ใบที่ได้รับจากการเปลี่ยนต่อเนื่อง ตัวเลขที่เป็นไปได้: [2,3,4,5,6,7,8,9,T(10),J,Q,K,A] ชุดที่เป็นไปได้: [S,C,H,D] เด็คเต็มรูปแบบ: [2S,3S,4S,5S,6S,7S,8S,9S,TS,JS,QS,KS,AS, # Spades. 2C,3C,4C,5C,6C,7C,8C,9C,TC,JC,QC,KC,AC, # Clubs. 2H,3H,4H,5H,6H,7H,8H,9H,TH,JH,QH,KH,AH, …

3
ASCII Dandelions
เหล่านี้เป็นดอกแดนดิไล ASCII: \|/ \ / | /|\ | \|/ | | | | _\|/_ | | | /|\ ดอกแดนดิไลต์ ASCII มีสามพารามิเตอร์: ความยาวของก้าน (จำนวนบวกระหว่าง 1 ถึง 256, จำนวนเมล็ด (จำนวนบวกระหว่าง 0 และ 7), และการวางแนว (^ หรือ v) ดอกแดนดิไลอันเหนือมีความยาว, เมล็ดและทิศทาง, ( 3,5, ^), (3,2, ^), (2,3, ^) และ (3,7, v) ตามลำดับ เมล็ดจะถูกเติมในลำดับต่อไปนี้ (พลิกคว่ำสำหรับหัว …

12
กราฟิคลำดับนี้หรือไม่
ลำดับกราฟิกเป็นลำดับของจำนวนเต็มบวกแต่ละ denoting จำนวนขอบสำหรับโหนดในเป็นกราฟที่เรียบง่าย ตัวอย่างเช่นลำดับ2 1 1หมายถึงกราฟที่มี 3 โหนดหนึ่งมี 2 ขอบและ 2 กับการเชื่อมต่อหนึ่ง ไม่ใช่ลำดับทั้งหมดที่เป็นลำดับกราฟิก ตัวอย่างเช่น2 1ไม่ใช่ลำดับกราฟิกเนื่องจากไม่มีวิธีการเชื่อมต่อสองโหนดดังนั้นหนึ่งในนั้นมีสองขอบ งาน คุณจะใช้ลำดับของจำนวนเต็มด้วยวิธีการที่สมเหตุสมผล ซึ่งรวมถึงแต่ไม่ จำกัด เฉพาะอาร์เรย์ของจำนวนเต็มและขนาดรายการเชื่อมโยงของจำนวนเต็มที่ไม่ได้ลงนามและเวกเตอร์ของคู่ คุณอาจคิดว่าจะไม่มีเลขศูนย์ในอินพุต คุณอาจสมมติว่าอินพุตถูกเรียงลำดับจากน้อยไปหามากที่สุดหรือมากที่สุดไปน้อยที่สุด คุณต้องแสดงผลว่าลำดับนั้นเป็นลำดับกราฟิกหรือไม่ ค่าความจริงถ้ามันเป็นค่าเท็จอย่างอื่น เป้าหมาย นี่คือโค้ดกอล์ฟเป้าหมายคือการลดจำนวนไบต์ในโปรแกรมของคุณ Testcases เรียงลำดับมากที่สุดไปหาน้อยที่สุด -> True 3 3 3 2 2 2 1 1 1 -> True 3 3 2 2 1 1 -> True 3 …

5
ใบเสนอราคาที่ปลอดภัย
งานของคุณง่ายมาก: เขียนโปรแกรม (หรือฟังก์ชั่น) ที่ไม่มีอินพุตและเอาต์พุต (หรือส่งคืน) ซอร์สโค้ดของมัน สิ่งที่จับได้คือเมื่อโปรแกรมถูกห่อ"quotes"(อักขระ Unicode 34) มันควรจะส่งออกซอร์สโค้ด (ตอนนี้อ้างถึง) อีกครั้ง ใช้กฎมาตรฐานสำหรับควิน นี่คือรหัสกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุด (เป็นไบต์) จะชนะ

4
2017 ใกล้จะถึงแล้ว!
ท้าทาย ความท้าทายนั้นง่าย: ไม่รับอินพุตและเอาต์พุตข้อความต่อไปนี้: _ __ __ | | | | | |_ |__| | | จำนวนครั้งเท่ากับจำนวนชั่วโมงก่อนหรือหลังเที่ยงคืน UTC ในวันที่ 31 ธันวาคม 2016 ตัวอย่าง ตัวอย่างเช่นถ้าเป็น 19:01 UTC 31 ธันวาคมคุณควรส่งออก: _ __ __ | | | | | |_ |__| | | _ __ __ | | | | | |_ |__| | …

11
ฟังก์ชันผกผัน Pi
ฟังก์ชั่น Pi เป็นส่วนเสริมของแฟกทอเรียลเหนือ reals (หรือจำนวนที่ซับซ้อน) สำหรับจำนวนเต็มn , Π (n) = n! แต่เพื่อให้ได้คำจำกัดความเหนือ reals เรากำหนดมันโดยใช้อินทิกรัล: ในการท้าทายนี้เราจะสลับฟังก์ชันΠ รับจำนวนจริงZ ≥ 1ค้นหาบวกxดังกล่าวว่าΠ (x) = Z คำตอบของคุณจะต้องแม่นยำอย่างน้อย 5 หลัก ตัวอย่าง: 120 -> 5.0000 10 -> 3.39008 3.14 -> 2.44815 2017 -> 6.53847 1.5 -> 1.66277
17 code-golf  math 

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