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

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

14
อัตโนมัติ OEIS
เรามาดูกันเป็นจำนวนมากของความท้าทายที่นี่ขอฟังก์ชั่นเพื่อสร้างลำดับจากที่OEIS แม้ว่าความท้าทายเหล่านี้จะสนุก แต่ในฐานะโปรแกรมเมอร์ฉันเห็นโอกาสสำหรับระบบอัตโนมัติ ความท้าทายของคุณคือการสร้างโปรแกรมที่ใช้ดัชนีของลำดับ (เช่นA172141 ) และจำนวนเต็ม n (เช่น 7) และดึงค่าที่เหมาะสมจากหน้าเว็บที่เหมาะสม I / O ดังที่กล่าวไว้โปรแกรมของคุณควรใช้ดัชนีลำดับและค่าบางค่าเป็นอินพุตและเอาต์พุตคำที่ n ในลำดับนั้น คุณยอมรับดัชนีใด ๆ ในลำดับของB-ไฟล์ หากดัชนีมากกว่าดัชนีที่ใหญ่ที่สุดที่ระบุไว้ในไฟล์ B คุณอาจส่งข้อยกเว้นหรือส่งออกสิ่งที่คุณเลือก (สิ่งเหล่านี้ไม่ได้อยู่ในกรณีทดสอบ) อนุญาตวิธีการอินพุตและเอาต์พุตมาตรฐาน ข้อ จำกัด ในการใช้งานเว็บ คุณไม่ควรเข้าถึงเว็บไซต์ใด ๆ นอกเหนือจากhttps://oeis.orgและhttp://oeis.org ซึ่งรวมถึงตัวย่อ URL เว็บไซต์ส่วนตัวของคุณและคำถามนี้เอง หากคุณต้องการเข้าถึงเว็บไซต์อื่นและคุณเชื่อว่ามันไม่ยุติธรรมที่จะอนุญาตให้คุณทำเช่นนั้นคุณสามารถแสดงความคิดเห็นและฉันจะตัดสิน เกณฑ์การให้คะแนน นี่เป็นความท้าทายของโปรแกรมกอล์ฟดังนั้นโปรแกรมที่มีจำนวนไบต์น้อยที่สุดที่ใช้ในซอร์สโค้ดจะเป็นผู้ชนะ ช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ สมมติว่าเครื่องของคุณมีการเชื่อมต่ออินเทอร์เน็ตที่เหมาะสมและเซิร์ฟเวอร์ OEIS ทำงานและใช้งานอินพุตและเอาต์พุตต่อไปนี้ควรสอดคล้องกัน A172141, 7 -> 980 A173429, 4 -> 276 …

9
คำนวณแบบถาวรให้เร็วที่สุด
ความท้าทายคือการเขียนรหัสที่เร็วที่สุดที่เป็นไปได้สำหรับการคำนวณถาวรของเมทริกซ์ ถาวรของn-by- nmatrix A= ( ai,j) ถูกกำหนดเป็น นี่แสดงให้เห็นถึงชุดของพีชคณิตทั้งหมดของS_n[1, n] เป็นตัวอย่าง (จาก wiki): ในเมทริกซ์คำถามนี้เป็นสี่เหลี่ยมจัตุรัสทั้งหมดและจะมีค่า-1และ1อยู่ในนั้นเท่านั้น ตัวอย่าง การป้อนข้อมูล: [[ 1 -1 -1 1] [-1 -1 -1 1] [-1 1 -1 1] [ 1 -1 -1 1]] ถาวร: -4 การป้อนข้อมูล: [[-1 -1 -1 -1] [-1 1 -1 -1] [ 1 -1 -1 -1] [ …

21
Mirror, Mirror ในรหัส
ภาษาโปรแกรมสองมิติมักจะมีคำสั่งมิรเรอร์เช่น/และ\เปลี่ยนเส้นทางตัวชี้คำสั่งในตาราง: >>>>\ v v <<<</ ในความท้าทายนี้คุณจะได้รับทิศทางขาเข้าและกระจกเงาและคุณต้องกำหนดทิศทางขาออก กฎระเบียบ ทิศทางเข้ามาจะได้รับเป็นหนึ่งในตัวละครNESWและกระจกจะได้รับเป็นอย่างใดอย่างหนึ่งหรือ/ \คุณอาจได้รับสิ่งเหล่านี้ในลำดับใดก็ได้ คุณต้องใช้ตัวอักษรตัวพิมพ์ใหญ่ คุณสามารถป้อนข้อมูลในรูปแบบที่สะดวกรวมถึงสตริงอักขระสองตัวสตริงที่ใช้ตัวคั่นระหว่างอักขระอักขระคู่ในรายการหรือแม้แต่สตริงเดี่ยว หากคุณใช้สตริงที่มีตัวคั่นตัวคั่นจะไม่สามารถใช้อักขระใด ๆNWSE\/ได้ เอาต์พุตควรเป็นอักขระจากNESWหรือสตริงอักขระเดี่ยว คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานของเราในการรับอินพุตและให้เอาต์พุต คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ กรณีทดสอบ มีเพียง 8 อินพุตที่เป็นไปได้ที่คุณต้องจัดการดังนั้นจึงไม่มีข้อแก้ตัวใด ๆ ที่จะไม่ทดสอบโค้ดของคุณกับพวกเขาทั้งหมด: N / --> W N \ --> E E / --> S E \ --> N S / --> E S \ …

22
หมายถึง Interquartile
งาน ที่กำหนด (โดยวิธีใด ๆ ) ที่จัดเรียงลอยชุดข้อมูลที่จุดกลับ (โดยวิธีการใด ๆ และภายใน 1 ‰ของค่าที่ถูกต้อง) เดอะinterquartile เฉลี่ย หนึ่งอัลกอริทึมที่เป็นไปได้ ทิ้งจุดข้อมูลต่ำสุดและสูงสุดของจุดข้อมูล คำนวณค่าเฉลี่ย (ผลรวมหารด้วยจำนวน) ของจุดข้อมูลที่เหลือ หมายเหตุ:หากขนาดชุดข้อมูลไม่สามารถแบ่งออกเป็นสี่ส่วนเท่า ๆ กันคุณจะต้องชั่งน้ำหนักชุดข้อมูลที่ใช้ร่วมกันโดยชุดย่อย ดูตัวอย่างการประเมินผล 2ด้านล่าง ตัวอย่างการประเมินผล 1 รับ {1, 3, 4, 5, 6, 6, 7, 7, 8, 8, 9, 38} การนับข้อมูลคือ 12 ดังนั้นเราจึงลบดาต้าพอยน์ต่ำสุดและสูงสุด 3 รายการ: { 1, 3, 4, 5, 6, 6, …

21
เก็บค่าที่ไม่ใช่ศูนย์และเพื่อนบ้าน
นำมาจากคำถามนี้ที่ Stack Overflow ขอขอบคุณ @miles และ @Dada สำหรับการแนะนำอินพุตทดสอบที่กล่าวถึงบางกรณี ความท้าทาย รับอาร์เรย์ของค่าจำนวนเต็มลบศูนย์ทั้งหมดที่ไม่ได้ขนาบข้างด้วยค่าที่ไม่ใช่ศูนย์ รายการควรถูกเก็บไว้อย่างใดอย่างหนึ่งหากเป็นค่าที่ไม่ใช่ศูนย์หรือหากเป็นศูนย์ที่อยู่ใกล้กับค่าที่ไม่ใช่ศูนย์ทันที รายการที่เก็บไว้ควรเก็บไว้ในเอาท์พุทตามลำดับที่มีในอินพุต ตัวอย่าง ป.ร. ให้ไว้ [2 0 4 -3 0 0 0 3 0 0 2 0 0] ค่าที่ควรลบจะถูกทำเครื่องหมายด้วยx: [2 0 4 -3 0 x 0 3 0 0 2 0 x] และผลลัพธ์ควรเป็น [2 0 4 -3 0 0 3 …

30
ตัวอักษรเป็นตัวเลขและตัวเลขเป็นตัวอักษร
ท้าทาย ในการท้าทายนี้คุณจะต้องใช้ตัวเลขเป็นตัวอักษรอินพุทและเอาท์พุทที่สอดคล้องกันและในทางกลับกัน (1 <=> A, 2 <=> B) เป็นต้น 1 -> A 2 -> B ... 26 -> Z A -> 1 B -> 2 ... Z -> 26 กฎระเบียบ นี่คือcode-golfดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ ข้อมูลที่ป้อนจะประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่จากAถึงZหรือจำนวนเต็มตั้งแต่1ถึง26รวมเท่านั้น อนุญาตให้ใช้ช่องว่างต่อท้าย (เว้นวรรคและขึ้นบรรทัดใหม่)

29
ชุดผลรวมย่อย
บทนำ [3, 2, 4, 1, 1, 5, 1, 2]ลองสังเกตอาร์เรย์นี้: แต่ละองค์ประกอบจะแสดงความยาวของสตริงย่อยซึ่งจะต้องสรุปรวม ลองดูที่องค์ประกอบแรกของอาร์เรย์ด้านบน: [3, 2, 4, 1, 1, 5, 1, 2] ^ องค์ประกอบที่ดัชนีแรกคือ3ดังนั้นตอนนี้เรารับสตริงย่อยของความยาวสามด้วยดัชนีเดียวกันกับตำแหน่งเริ่มต้น: [3, 2, 4] เมื่อสรุปผลนี้ใน9ดังนั้นองค์ประกอบแรกของชุดย่อยรวม9เป็น เราทำสิ่งนี้สำหรับองค์ประกอบทั้งหมดในอาร์เรย์: 3 -> [3, 2, 4] 2 -> [2, 4] 4 -> [4, 1, 1, 5] 1 -> [1] 1 -> [1] 5 -> [5, …

6
การต่อเชื่อมช่วงเวลา
ท้าทาย: คุณจะได้รับสตริงที่มีตัวเลขเท่านั้น งานของคุณคือการส่งออกจำนวนขั้นต่ำที่ต้องเชื่อมต่อกันในรูปแบบสตริง ถ้าเรื่องนี้เป็นไปไม่ได้, 0เอาท์พุท กรณีทดสอบ: อินพุต -> เอาต์พุต: 252 -> 3 235 -> 2 92 -> 0 31149 -> 2

30
ถอดรหัส chmod
ท้าทาย กำหนดหมายเลขการอนุญาตเลขฐานแปดสามหลักให้ส่งออกการอนุญาตที่ได้รับ chmod บน UNIX OS การอนุญาตของไฟล์จะเปลี่ยนไปโดยใช้chmodคำสั่ง มีวิธีการใช้ chmod ที่แตกต่างกันเล็กน้อย แต่วิธีที่เราจะเน้นในวันนี้คือการใช้การอนุญาตแบบฐานแปด ตัวเลขสามหลักในหมายเลขสิทธิ์แสดงถึงบุคคลอื่น: ตัวเลขตัวแรกแสดงถึงการอนุญาตสำหรับผู้ใช้ ตัวเลขตัวที่สองหมายถึงการอนุญาตสำหรับกลุ่ม ตัวเลขสุดท้ายแสดงสิทธิ์ของผู้อื่น ถัดไปแต่ละหลักหมายถึงสิทธิ์ที่แสดงด้านล่างใน: Key: number | permission 7 | Read Write and Execute 6 | Read and Write 5 | Read and Execute 4 | Read only 3 | Write and Execute 2 | Write only 1 …

12
ความแตกต่าง 7 ส่วน
ฉันคิดว่าคนส่วนใหญ่ที่นี่รู้ว่าการแสดงผล 7 หลักสำหรับตัวเลขคืออะไร: _ _ _ _ _ _ _ _ | | | _| _| |_| |_ |_ | |_| |_| |_| | |_ _| | _| |_| | |_| _| เราสามารถกำหนดความแตกต่าง 7 เซกเมนต์ (7SD) ระหว่างสองหลักเป็นจำนวนของเซกเมนต์ที่ต้องสลับเพื่อสลับจากหนึ่งไปยังอีก เช่น 7SD ระหว่าง1และ2เป็น5 (สามส่วนแนวนอนและต่ำกว่าสองส่วนในแนวตั้งจะต้องมีการสลับ) และ 7SD ระหว่าง 6 และ 8 เป็น1 นอกจากนี้เราสามารถกำหนด 7SD …

29
การสั่งซื้อรายการ
สรุป รับรายการจำนวนเต็มคืนค่าดัชนีแต่ละจำนวนเต็มท้ายเมื่อเรียง ตัวอย่างเช่นถ้ารายการเป็นคุณควรกลับ[0,8,-1,5,8] [1,3,0,2,4]โปรดทราบว่าทั้งสอง8รักษาลำดับของพวกเขาสัมพันธ์กับแต่ละอื่น ๆ (เรียงลำดับมีเสถียรภาพ) ใส่วิธีอื่น: สำหรับแต่ละองค์ประกอบในรายการให้คืนจำนวนองค์ประกอบในรายการที่มีขนาดเล็กกว่าองค์ประกอบที่เลือกหรือ (เท่ากับองค์ประกอบและปรากฏขึ้นก่อนองค์ประกอบที่เลือก) ดัชนีจะต้องเริ่มต้นด้วย 0 (ไม่ใช่ 1)แก้ไข: จากการกดย้อนกลับครั้งใหญ่ฉันจะอนุญาตการบ่งชี้ที่อิง 1 รายการ กรณีทดสอบ: 0 -> 0 23 -> 0 2,3 -> 0,1 3,2 -> 1,0 2,2 -> 0,1 8,10,4,-1,-1,8 -> 3,5,2,0,1,4 0,1,2,3,4,5,6,7 -> 0,1,2,3,4,5,6,7 7,6,5,4,3,2,1,0 -> 7,6,5,4,3,2,1,0 4,4,0,1,1,2,0,1 -> 6,7,0,2,3,5,1,4 1,1,1,1,1,1,1,1 -> 0,1,2,3,4,5,6,7 1,1,1,1,1,1,1,0 -> 1,2,3,4,5,6,7,0

21
สลับบิตกับเพื่อนบ้าน
คำอธิบายงาน ได้รับจำนวนเต็มสลับมัน(2k-1) -th และ2k -th น้อยบิตที่สำคัญสำหรับจำนวนเต็มทั้งหมดk> 0 นี่คือลำดับA057300ใน OEIS (ตัวเลขจะถือว่ามีเลขศูนย์นำหน้าเป็น "จำนวนอนันต์" ในทางปฏิบัตินี่หมายถึงการเตรียมตัวเลขบิตความยาวคี่ 0 บิตหนึ่งครั้ง) นี่คือโค้ดกอล์ฟดังนั้นรหัสที่สั้นที่สุด (เป็นไบต์) ชนะ กรณีทดสอบ 0 -> 0 1 -> 2 9 -> 6 85 -> 170 220 -> 236 1827 -> 2835 47525 -> 30298

24
การจัดเรียงอาร์เรย์ที่กำหนดไว้แล้ว
การป้อนข้อมูล: อาร์เรย์สามจำนวนเต็ม: 0, 1และ2ในลำดับใด ๆ (เช่น[2, 0, 1]) และสตริงที่มีความยาว> = 2 เท่านั้นที่มีตัวอักษรตัวอักษร (ทั้งตัวพิมพ์เล็กและใหญ่) และตัวเลข (เช่นa1B2c3) เอาท์พุท: ขึ้นอยู่กับอาร์เรย์ที่เราเรียงลำดับและส่งออกสตริง มันทำงานอย่างไร อาร์เรย์ชี้ให้เห็นความสำคัญของการสั่งซื้อa-z, A-Zและ0-9ตัวแรก0; เป็นอันดับสอง1; 2และความเป็นอยู่ที่สาม อักขระแต่ละตัวของสตริงนั้นสามารถสั่งซื้อได้ตามนั้น ตัวอย่าง: อาร์เรย์: [2, 0, 1] สตริง: a1B2c3 0-9a-zA-Zขึ้นอยู่กับอาร์เรย์เรารู้ว่ามีความสำคัญของเราคือการสั่งซื้อ ขึ้นอยู่กับว่าเราสามารถแปลงและผลผลิตสตริง: 123acB กฏท้าทาย: สำหรับอาร์เรย์คุณสามารถเลือกที่จะใช้อินพุต 0 ดัชนีหรือดัชนี 1 ดัชนีดังนั้นจึง[3, 1, 2]เป็นอินพุตที่ถูกต้องหากคุณต้องการใช้อาร์เรย์ 1 ดัชนี สตริง (ทั้ง input และ output) abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789มีเพียงตัวละครที่ถูกต้อง: ถ้าภาษาของคุณไม่สนับสนุนอาร์เรย์ …

6
คำนวณเวลาประทับ RFC 2550
RFC 2550เป็นข้อเสนอเชิงเสียดสี (เผยแพร่เมื่อวันที่ 1 เมษายน 1999) สำหรับการเป็นตัวแทน ASCII ที่มีประสิทธิภาพในอวกาศของการประทับเวลาที่สามารถรองรับวันใด ๆ (แม้กระทั่งก่อนที่จะถึงจุดเริ่มต้นของจักรวาล อัลกอริทึมสำหรับการคำนวณเวลาประทับที่สอดคล้องกับ RFC 2550 มีดังต่อไปนี้ (หมายเหตุ: ทุกช่วงรวมถึงจุดเริ่มต้น แต่ไม่รวมจุดสิ้นสุด - 0 ถึง 10,000 หมายถึงทุกnตำแหน่ง0 <= n < 10000): รูปแบบปี ปีที่ 0 ถึง 10,000: ตัวเลขทศนิยม 4 หลักพร้อมเบาะซ้ายด้วยเลขศูนย์ ปี 10,000 ถึง 100,000: ตัวเลขทศนิยม 5 หลักนำหน้าด้วยอักขระ A ปีที่ 100,000 ถึง 10 30 : จำนวนทศนิยมสำหรับปีนำหน้าด้วยตัวอักษร …
26 code-golf  string  date 

2
รอบในการเข้ารหัสความยาว
พิจารณาลำดับเลขฐานสองบางส่วนโดยใช้1และ2ตัวอย่าง: 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1 ... ลองเขียนความยาววิ่งของ: 1, 2, 1, 1, 2, 2, 1, 2, 1, 2, 2, 1 ... _ _ ____ ____ _ _ _ ____ 1, 1, 2, 2, 1, 1, 1, 2, ... ในกรณีนี้เราได้รับลำดับไบนารี่อีกอัน แน่นอนว่าไม่รับประกัน (เช่นถ้าเราทำซ้ำขั้นตอนที่สามจะเป็น3) แต่เราคิดเอาเอง ตอนนี้คำถามคือเราสามารถหาลำดับที่ใช้การเข้ารหัสแบบ …

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