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

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

4
คำนวณค่า p-adic norm ของจำนวนตรรกยะ
คำนวณค่า p-adic norm ของจำนวนตรรกยะ เขียนฟังก์ชั่นหรือโปรแกรมที่ใช้จำนวนเต็ม 3 จำนวนm,n,p(ซึ่งpเป็นจำนวนเฉพาะที่เป็นค่าบวก) เป็นอินพุตซึ่งส่งเอาต์พุต p-adic norm (แทนด้วย|m/n|_p) เป็นส่วน (ลดลงอย่างสมบูรณ์) แฟร์มาต์เป็นที่รู้จักกันว่ามีกำไรเพียงเล็กน้อยเท่านั้น แต่สิ่งที่ไม่เป็นที่รู้จักคือเขามีหน้าจอคอมพิวเตอร์ขนาดเล็กมาก ดังนั้นพยายามทำให้รหัสสั้นที่สุดเท่าที่จะเป็นไปได้เพื่อให้พอดีกับหน้าจอของแฟร์มาต์! คำนิยาม กำหนดที่สำคัญpทุกส่วนm/nสามารถเขียนได้โดยไม่ซ้ำกัน (ไม่สนใจสัญญาณ) เป็น(a/b)* p^eเช่นที่eเป็นจำนวนเต็มและpแบ่งค่ามิได้a บรรทัดฐาน p- อำนวยการของการมี มีกรณีพิเศษคือถ้าส่วนเป็น 0:bm/np^-e|0|_p = 0 รูปแบบผลลัพธ์จะต้องx/y(เช่น1/3สำหรับจำนวนเต็มทั้งสอง10หรือเท่ากัน10/1ได้รับอนุญาตสำหรับจำนวนลบจะต้องมีเครื่องหมายลบนำหน้าเช่น-1/3) รายละเอียด โปรแกรมจะต้องใช้ stdin / stdout หรือเพียงแค่ประกอบด้วยฟังก์ชั่นที่ส่งกลับจำนวนเหตุผลหรือสตริง คุณต้องสมมติว่าอินพุตm/nไม่ได้ลดลงอย่างสมบูรณ์ คุณสามารถสันนิษฐานว่าpเป็นนายก โปรแกรมจะต้องสามารถประมวลผลจำนวนเต็มตั้งแต่-2^28ถึง2^28และไม่ควรใช้เวลามากกว่า 10 วินาที ไม่อนุญาตให้สร้างการแยกตัวประกอบและฟังก์ชันตรวจสอบเฉพาะเช่นเดียวกับที่สร้างขึ้นในการแปลงฐานและฟังก์ชันในตัวที่คำนวณค่า p-adic หรือบรรทัดฐาน ตัวอย่าง (ถูกขโมยจากวิกิพีเดีย ): x = m/n = …

1
ประกบท่อ
เจ้านายของคุณพบว่าพนักงานของเขา (รวมถึงคุณ) ชอบขโมยรหัสจากผู้อื่น เขาสั่งให้คุณเขียนโปรแกรมที่เขาสามารถใช้เพื่อค้นหาคนที่ขโมยรหัสจากคนอื่น งาน: เขียนโปรแกรม / ฟังก์ชั่นที่ตรวจพบว่ามีคนคัดลอก (บางส่วน) รหัสของเขาจากที่อื่น โปรแกรมจะได้รับทุกโปรแกรมที่มีอยู่และโปรแกรมที่ว่ามันควรทดสอบจากสองปัจจัยการผลิตที่แยกต่างหาก แก้ไข:เนื่องจากยังไม่มีคำตอบคุณอาจใช้การแสดงออกปกติ! เอาท์พุต จากนั้นโปรแกรมควรแสดงโค้ดที่ถูกขโมยทั้งหมดโดยคั่นด้วยช่องว่างหรือขึ้นบรรทัดใหม่ (อาจมีช่องว่างหรือขึ้นบรรทัดใหม่ในตอนท้าย) ชิ้นส่วนของรหัสจะถูกพิจารณาว่าถูกขโมย / คัดลอกถ้ามันประกอบด้วย 10 หรือมากกว่าไบต์ต่อเนื่องกัน (ขออภัยแฟน ๆ Java!) คุณต้องเอาท์พุทให้มากที่สุดเท่าที่จะทำได้ แต่หากมีการซ้อนทับกันคุณอาจเพิกเฉยต่อสิ่งใดสิ่งหนึ่งหรือเอาท์พุททั้งคู่ บิด: ดังที่ได้กล่าวไว้ก่อนหน้านี้คุณยังรักการเข้ารหัสเทปพันสายไฟ ซึ่งหมายความว่าทุกอย่างในรหัสของคุณจะถูกคัดลอกวางจากไซต์แลกเปลี่ยนสแต็ก! คุณสามารถคัดลอกสิ่งที่คุณต้องการ (ไม่ จำกัด รหัสในบล็อกรหัส) และมากเท่าที่คุณต้องการ (แต่อย่างน้อย 10 ไบต์) (เหมือนกฎข้างต้นเกี่ยวกับสิ่งที่ถูกพิจารณาว่าถูกขโมย / คัดลอก) (โปรดทราบว่าคำตอบใด ๆ ที่โพสต์หลังจากคำถามนี้อาจไม่ถูกใช้) โปรดระบุลิงก์ไปยังที่ที่คุณได้รับ รหัสจาก ตัวอย่าง: อินพุต: x = document.getElementById("ninja'd"); (อินพุตแรก) …

5
ติดตั้งแมโครเน้นเสียงของ LaTeX
บทนำ ระบบเรียงพิมพ์ LaTeX ใช้มาโครในการกำหนดสำเนียง ยกตัวอย่างเช่นตัวอักษร E \hat{e}ผลิตโดย ในความท้าทายนี้งานของคุณคือการใช้เวอร์ชัน ASCII ของฟังก์ชั่นนี้ อินพุต ข้อมูลที่คุณป้อนเป็นสตริงอักขระ ASCII ที่พิมพ์ออกมาไม่ว่าง มันจะไม่มีการขึ้นบรรทัดใหม่ เอาท์พุต เอาต์พุตของคุณคือสตริงที่ประกอบด้วยสองบรรทัด บรรทัดแรกมีสำเนียงและบรรทัดที่สองเป็นอักขระที่อยู่ มันได้รับจากการป้อนข้อมูลดังต่อไปนี้ ( Aหมายถึงตัวละครโดยพลการ): ทุกคน\bar{A}ถูกแทนที่Aด้วย_ด้านบนของมัน ทุกคน\dot{A}ถูกแทนที่Aด้วย.ด้านบนของมัน ทุกคน\hat{A}ถูกแทนที่Aด้วย^ด้านบนของมัน สำหรับโบนัส -10%:ทุกอย่าง\tilde{A}จะถูกแทนที่Aด้วย~ด้านบนของมัน ตัวละครอื่น ๆ ทั้งหมดมีช่องว่างด้านบน ตัวอย่างเช่นการป้อนข้อมูล Je suis pr\hat{e}t. ผลลัพธ์ในผลลัพธ์ ^ Je suis pret. กฎและการให้คะแนน คุณสามารถสันนิษฐานได้ว่าตัวละคร\{}เกิดขึ้นในมาโคร\bar{}เท่านั้น\dot{}และ\hat{}(และ\tilde{}หากคุณได้รับโบนัส) อาร์กิวเมนต์มาโครทั้งหมดมีความยาวหนึ่งตัวอักษรดังนั้น\dot{foo}และ\dot{}จะไม่เกิดขึ้นในอินพุต เอาต์พุตสามารถเป็นสตริงที่คั่นด้วยบรรทัดใหม่หรือรายการ / คู่ของสองสตริง อนุญาตจำนวนช่องว่างและช่องว่างก่อนหน้าใดก็ได้ตราบใดที่เสียงอยู่ในตำแหน่งที่ถูกต้อง โดยเฉพาะอย่างยิ่งหากไม่มีการเน้นเสียงเอาท์พุทสามารถเป็นสายเดียว คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุด (หลังจากโบนัส) ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต …

10
ความก้าวหน้าทางเลขคณิต
งานของคุณคือการวิเคราะห์อินพุตและเอาต์พุตสูตรสำหรับคำศัพท์ที่ n หากเป็นลำดับเลขคณิตมิฉะนั้นจะพิมพ์ "NAAP" อินพุต อินพุต (จาก STDIN) จะประกอบด้วยตัวเลขไม่กี่ตัวระหว่าง 4 ถึง 10 หมายเลขโดยที่แต่ละหมายเลขจะอยู่ในช่วงระหว่าง -1000 ถึง 1,000 รวมโดยคั่นด้วยตัวคั่น (ช่องว่างหรือเครื่องหมายจุลภาคหรือกึ่งเครื่องหมายโคลอน การตั้งค่าของคุณ]) นี่คือตัวอย่างอินพุต 12,14,16,18 //valid -3 4 5 1 -2 -4 //valid 45;35;-35 //invalid (only three numbers are present instead of the minimum of 4 numbers) 2,32;21,321 //invalid (it uses two different delimiters: …

1
Secret Santa - เยือนแล้ว
คริสต์มาสกำลังใกล้เข้ามาอย่างรวดเร็วพร้อมกับจัดระเบียบความลับประจำปีของครอบครัวซานต้า ฉันต้องการที่จะลองและเริ่มต้นในเรื่องนี้ แต่ทำให้แน่ใจว่าคู่รักจะไม่ซื้อให้ซึ่งกันและกันทำให้เกิดปัญหาและแม้จะทำสิ่งนี้มานานหลายปีก็ยังมีปัญหาที่Bobขยะสวยที่ซื้อของขวัญสำหรับ giftees ส่วนใหญ่ , Erinมีแนวโน้มที่จะผิดหวัง แต่เขารู้ดีว่าFrankชอบ Talisker ดังนั้นเขาจึงเป็นคู่ที่ดีสำหรับเขา สิ่งนี้ทำให้ไม่มีโซลูชันแบบง่าย ๆ ที่ยอมรับได้สำหรับความต้องการของฉัน เพื่อให้ชีวิตของฉันง่ายขึ้นงานของคุณคือการเขียนฟังก์ชั่น (หรือทางเลือกที่ใกล้เคียงที่สุดในภาษาของคุณ) ว่าเมื่อได้รับอาร์เรย์ (หรือทางเลือกที่ใกล้เคียงที่สุดในภาษาที่คุณเลือก) ผลตอบแทน (หรือเอาท์พุท) เป็นการจับคู่ 'gifters' 'giftees' ในรหัสที่สั้นที่สุดที่เป็นไปได้ในไบต์เช่นว่าเงื่อนไขต่อไปนี้จะได้พบ: แต่ละชื่อจะถูกจับคู่กับชื่ออื่นที่สุ่มเลือกจากข้อมูลอินพุต (โปรดทราบว่าอาจไม่สามารถสุ่มผลลัพธ์ได้ตามเงื่อนไขที่กำหนด) ชื่อจะได้รับรายการของธงที่เป็นตัวแทนต์เมทริกซ์ถ้อยคำที่มีการสั่งซื้อที่สอดคล้องกันดังนั้นคอลัมน์นั้นหมายถึงการเป็นบุคคลเดียวกับแถวnn หากไม่สามารถปฏิบัติตามเงื่อนไขได้ให้ส่งคืนสิ่งที่เป็นเท็จในภาษาของคุณ หากมีหลายวิธีโปรแกรมของคุณจะต้องสามารถสร้างได้ทั้งหมดหากทำงานหลายครั้ง คุณสามารถสันนิษฐานได้ว่าคุณจะไม่ถูกนำเสนอที่มีชื่อซ้ำกันในขณะที่เราจะต้องสามารถที่จะบอกว่าเป็นสมาชิกในครอบครัวซึ่ง แต่คุณอาจจะนำเสนอกับข้อมูลที่มีช่องว่างที่จะแยกความแตกต่างBob SeniorจากBob Junior! มันควรจะเสร็จสิ้นกรณีทดสอบที่ให้มาทั้งหมดภายในหนึ่งชั่วโมงสำหรับครอบครัวขนาดใหญ่ที่น่ารักเช่น 100 ชื่อที่ไม่ซ้ำกันในแหล่งข้อมูล (โปรดดูตัวอย่างชุดข้อมูลด้านล่างคุณจะต้องสามารถแยกวิเคราะห์เหล่านี้ทั้งหมดภายในเวลาที่กำหนด) อินพุตตัวอย่าง: santa([ ["Alice", 0, 0, 1, 1, 1, 1, 1], ["Bob", 0, 0, 0, …
11 code-golf 

3
มาสร้างเพลงกันเถอะ!
ผู้คนจำนวนมากชอบเล่นเพลงเพื่อความสนุกสนานและความบันเทิง น่าเสียดายที่บางครั้งเพลงก็ค่อนข้างยาก นั่นคือเหตุผลที่คุณมาที่นี่! งาน เป็นหน้าที่ของคุณที่จะทำให้การอ่านเพลงง่ายขึ้นสำหรับผู้ที่ต้องดิ้นรนกับมัน คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ทำหน้าที่เป็นเจ้าหน้าที่ดนตรีและป้อนชื่อของบันทึกที่เขียนบนพนักงานนั้น พนักงานโน๊ตและโน้ต พนักงานดนตรีหรือไม้เท้าเป็นห้าเส้นแนวนอน inbetween ซึ่งเป็นสี่ช่องว่าง แต่ละบรรทัดหรือช่องว่างหมายถึงบันทึกย่อที่แตกต่างกัน (ระยะห่าง) ขึ้นอยู่กับโน๊ต มีความยุติธรรมไม่กี่ Clefs ดนตรีที่แตกต่างกันเพื่อเลือกจากเราจะได้รับการจัดการกับหนึ่งสำหรับตอนนี้มี แต่ที่: โน๊ตสาม บนโน๊ตเสียงแหลมโน้ตจะถูกนำไปแสดงต่อพนักงานดังนี้: เส้น ฉ ---------- D ---------- B ---------- G ---------- E ---------- ช่องว่าง ---------- E ---------- ค ---------- ---------- F ---------- การจัดรูปแบบของอินพุต อินพุตจะถูกกำหนดเป็นสตริงเดี่ยวดังนี้: --------------- --------------- --------------- --------------- --------------- ห้าบรรทัดและสี่ช่องว่างของพนักงานสร้างจากอักขระเก้าแถว เส้นของพนักงานถูกสร้างด้วย-อักขระ (เครื่องหมายขีดคั่น) และช่องว่างที่มี(ช่องว่าง) …

3
การคูณสตริงย่อย
เขียนโปรแกรมที่รับจำนวนเต็มสองตัวเป็นอินพุต ที่แรกสามารถเป็นจำนวนเต็มใด ๆ และที่สองน้อยกว่าหรือเท่ากับจำนวนหลักในจำนวนแรก ให้ตัวเลขเหล่านี้จะเป็นaและbตามลำดับ โปรแกรมจะทำสิ่งต่อไปนี้ Concatenate จำนวนน้อยที่สุดของ1s ที่ส่วนท้ายของaดังนั้นจำนวนของตัวเลขในหารด้วยab แยกaตามbตัวเลขทุกตัว คูณตัวเลขในแต่ละส่วนเข้าด้วยกัน ต่อผลิตภัณฑ์เข้าด้วยกัน (หากตัวเลขใดตัวเลขหนึ่งเป็นศูนย์ให้ต่อเข้าด้วยกัน0) ทำซ้ำขั้นตอนนี้จนกว่าจะมีหมายเลขที่มีตัวเลขน้อยกว่าbเลขเคร่งครัด พิมพ์สิ่งนี้เป็นผลลัพธ์รวมทั้งจำนวนกระบวนการซ้ำ หน่วยไม่จำเป็น แต่รูปแบบการแยกบางอย่างระหว่างหมายเลขสุดท้ายและจำนวนการวนซ้ำคือ ในกรณีทดสอบต่อไปนี้แสดงแต่ละขั้นตอนเพื่อวัตถุประสงค์ในการทำความเข้าใจ โปรแกรมของคุณไม่จำเป็นต้องแสดงขั้นตอน กรณีทดสอบ 1 1883915502469, 3 ขั้นตอน 1883915502469 //Iteration 1 188391550246911 188 391 550 246 911 64 27 0 48 9 64270489 //Iteration 2 642704891 642 704 891 48 0 72 48072 //Iteration …
11 code-golf  math  number 

3
พอดีกับปัจจัยในสนาม
รับจำนวนเต็มบวกต่ำกว่า 1,000 แสดงสี่เหลี่ยมที่เป็นไปได้ทั้งหมดกับพื้นที่นั้น งาน สมมุติว่าอินพุทคือ 20 เราสามารถสร้างสี่เหลี่ยมผืนผ้า 20 × 1, 10 × 2 หรือ 5 × 4 ดังนั้นนี่คือผลลัพธ์ที่ถูกต้อง: ******************** ********** ********** ***** ***** ***** ***** โปรดทราบว่าแต่ละสี่เหลี่ยมที่เป็นไปได้จะปรากฏขึ้นหนึ่งครั้ง รูปสี่เหลี่ยมผืนผ้าอาจปรากฏขึ้นในลำดับการวางแนวหรือตำแหน่งใด ๆ แต่ไม่มีรูปสี่เหลี่ยมผืนผ้าสองรูปแบบใดที่ซ้อนทับกันหรือสัมผัสแม้ที่มุม ต่อไปนี้ถูกต้อง: ******************** **** ********** **** ********** **** **** **** เกณฑ์การให้คะแนน พื้นที่กล่องขอบเขต (BBA) ของการส่งออกเป็นพื้นที่ของสี่เหลี่ยมขั้นต่ำที่ล้อมรอบสี่เหลี่ยมทั้งหมด ในเอาต์พุตตัวอย่างแรกขนาดคือ 20 × 9 ดังนั้น BBA คือ 180 …

2
ให้ตารางผู้ชนะแพ้และเสมอออกผลลัพธ์ของการแข่งขันในการแข่งขันกีฬา
คำถามนี้ได้รับแรงบันดาลใจจากการแข่งขันอย่างต่อเนื่องของ "เกมของนักเลงที่เล่นโดยสุภาพบุรุษ", Rugby World Cupซึ่งเพิ่งผ่านด่านพูลไปแล้ว มี 20 ทีมในการแข่งขันและแบ่งออกเป็น 4 กลุ่มละ 5 ทีม ในช่วงสระว่ายน้ำแต่ละทีมเล่นกับทีมอื่น ๆ ในกลุ่ม (รวม 10 แมตช์ต่อพูล) และทีม 2 อันดับแรกของแต่ละพูลจะเข้าสู่รอบน็อคเอาท์ ในตอนท้ายของแต่ละพูลจะมีโต๊ะสำหรับแต่ละพูลที่แสดงจำนวนการชนะการแพ้และเสมอของแต่ละทีม ความท้าทายสำหรับคำถามนี้คือการเขียนโปรแกรมที่ป้อนจำนวนการชนะการสูญเสียและการจับรางวัลสำหรับแต่ละทีมในกองกลางและจากข้อมูลนั้นจะแสดงผลลัพธ์แต่ละรายการของการแข่งขัน 10 แมทช์ (ผู้ชนะแพ้หรือดึงใคร ) ถ้าเป็นไปได้หรือส่งข้อความแสดงข้อผิดพลาดถ้าไม่ ตัวอย่างเช่นนี่คือตารางสำหรับพูล D ของทัวร์นาเมนต์ในปีนี้: Win Loss Draw Canada 0 4 0 France 3 1 0 Ireland 4 0 0 Italy 2 2 0 …
11 code-golf 

2
แอนิเมชั่นทุกสี
ปีที่ผ่านมามีความท้าทายที่นิยมมากในการสร้างภาพที่มีทุก 24 บิตสี ความท้าทายของฉันคือการสร้างอนิเมชั่นที่ราบรื่น (24 เฟรม / วินาทีพูด) ซึ่งสีของทุกพิกเซลของทุกเฟรมนั้นไม่เหมือนใคร ฉันจะอนุญาตการทำซ้ำของสีตราบใดที่ทุกสีปรากฏจำนวนเท่ากัน (มากกว่า 0)เนื่องจากมิฉะนั้นภาพเคลื่อนไหวจะต้องสั้นหรือเฟรมมีขนาดเล็ก ฉันได้สร้างตัวอย่างบางส่วนที่นี่โดยอิงจากโซลูชันที่ชนะไปยังรุ่น 2d น่าเสียดายที่ดูเหมือนว่าคุณไม่สามารถฝังวิดีโอได้ดังนั้นลิงก์จะต้องทำ

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

1
เวอร์ชันการปรับให้เหมาะสมที่สุดของปัญหา Hadamard
ก่อนคำจำกัดความบางอย่าง Hadamard เมทริกซ์เป็นเมทริกซ์ตารางที่มีรายการที่มีทั้ง +1 หรือ -1 และมีแถวฉากร่วมกัน การคาดคะเน Hadamardเสนอว่าเมทริกซ์ Hadamard ของการสั่งซื้อ 4k มีอยู่สำหรับทุกจำนวนเต็มบวก k เมทริกซ์ circulantเป็นเมทริกซ์พิเศษที่แต่ละเวกเตอร์แถวถูกหมุนหนึ่งองค์ประกอบทางด้านขวาเทียบกับเวกเตอร์แถวก่อนหน้า นั่นคือเมทริกซ์ถูกกำหนดโดยแถวแรก มันเป็นที่รู้จักกันว่ายกเว้น 4 4 การฝึกอบรมมีไม่มีการฝึกอบรม Hadamard circulant เมทริกซ์ที่มีแถว m และคอลัมน์ n> = m เป็นcirculant บางส่วนถ้าเป็นแถว m แรกของเมทริกซ์ circulant บางตัว งาน สำหรับแต่ละเลขจำนวนเต็ม n ที่เริ่มต้นที่ 2 เอาท์พุทขนาดของเมทริกซ์ circulant บางส่วนที่ใหญ่ที่สุดด้วย + -1 รายการและคอลัมน์ n ที่มีคุณสมบัติที่ทุกแถวของมันตั้งฉากกัน คะแนน คะแนนของคุณนั้นสูงที่สุดnสำหรับทุกคนk …

2
นับต้นไม้
ต้นไม้เป็นที่เชื่อมต่อกราฟไม่มีทิศทางที่ไม่มีรอบ งานของคุณคือการนับจำนวนต้นไม้ที่แตกต่างกันที่มีจำนวนจุดยอดที่กำหนด ต้นไม้สองต้นถือว่าแตกต่างกันหากไม่ได้เป็นมอร์ฟิค กราฟสองกราฟ isomorphic หากจุดยอดที่เกี่ยวข้องสามารถจับคู่ในลักษณะที่มีขอบระหว่างจุดยอดสองจุดในกราฟหนึ่งถ้าหากมีขอบระหว่างจุดยอดคู่กับจุดยอดเหล่านั้นในกราฟอื่น สำหรับคำอธิบายที่สมบูรณ์ยิ่งขึ้นให้ดูที่ลิงก์ด้านบน หากต้องการดูว่าทั้งหมดของต้นไม้ที่แตกต่างของขนาด 1-6 มีลักษณะเหมือนจะดูที่นี่ ชุดข้อมูลที่คุณพยายามส่งออกคือA000055ที่ OEIS ข้อ จำกัด : 6วิธีการแก้ปัญหาของคุณจะต้องใช้เวลาในช่วงนาทีหรือน้อยกว่าที่จะทำงานในการป้อนข้อมูล นี่ไม่ได้มีวัตถุประสงค์เพื่อกำจัดอัลกอริธึมเวลาเอ็กซ์โปเนนเชียล แต่มันมีจุดประสงค์เพื่อกำจัดอัลกอริธึมเวลาทวีคูณเช่นทวีคูณบังคับให้ข้ามชุดขอบทั้งหมด อินพุต:จำนวนเต็มใด ๆ ที่ไม่เป็นลบ อินพุตอาจเป็นวิธีมาตรฐานรวมถึง STDIN พารามิเตอร์บรรทัดคำสั่งอินพุตฟังก์ชัน ฯลฯ เอาท์พุท:จำนวนต้นไม้ที่แตกต่างที่มีจุดยอดมากที่สุดเท่าอินพุต เอาท์พุทอาจจะด้วยวิธีมาตรฐานใด ๆ รวมถึง STDOUT ฟังก์ชั่นกลับมา ฯลฯ ตัวอย่าง: ควรกลับ0, 1, 2, 3, 4, 5, 6, 71, 1, 1, 1, 2, 3, 6, 11 เกณฑ์การให้คะแนน:โค้ดกอล์ฟทีละไบต์ อาจเป็นรหัสที่สั้นที่สุดชนะ! …

3
ลำดับ Tetris ที่เป็นไปได้
เขียนโค้ดเพื่อหาว่าสามารถสร้างชิ้นส่วน Tetris ได้หรือไม่โดยอัลกอริทึมของ Tetris อย่างเป็นทางการ ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ เกมเตตริสอย่างเป็นทางการสร้างลำดับของชิ้นส่วนล้มในวิธีพิเศษ เจ็ดชิ้นIJLOSTZจะลดลงตามลำดับแบบสุ่มจากนั้นการเปลี่ยนแปลงแบบสุ่มอีกครั้งจะลดลงและอื่น ๆ JTLOISZ STJOLIZ LISJOTZ ... ตัวอย่างนี้มีชิ้นส่วนที่ต่อเนื่องกัน SZSTJOLIZLIS โปรดทราบว่ามันตัดข้ามขอบเขตของกลุ่ม 7 แต่เรียกใช้ชิ้นส่วน SZOTLZSOJSIT ไม่สามารถเป็นสตริงย่อยของลำดับ Tetris ใด ๆ ดังนั้นจึงไม่สามารถมองเห็นได้ในเกม Tetris อย่างเป็นทางการ : การป้อนข้อมูลIJLOSTZสตริงไม่ว่างเปล่าของตัวอักษร เอาท์พุท:ค่าTruthy หรือ Falseyว่าอินพุตเป็นซับสตริงของลำดับที่สามารถสร้างขึ้นโดยเครื่องกำเนิดไฟฟ้าแบบสุ่มอย่างเป็นทางการของ Tetris หรือการเรียงลำดับของการเรียงสับเปลี่ยนของตัวอักษรเจ็ดตัว กรณีทดสอบ: จริง: T JJ (unique breakdown: J J) JTJ (possible breakdown: JT J) LTOZIJS SZSTJOLIZLIS (possible breakdown: …

4
การสร้างจตุรัสโดยประมาณ
พื้นหลัง ฉันมีกล่องสี่เหลี่ยมจตุรัสขนาดเท่ากันและเนื่องจากฉันเป็นคนเรียบร้อยฉันต้องการจัดเรียงมันให้เป็นรูปสี่เหลี่ยมจัตุรัส อย่างไรก็ตามจำนวนของพวกมันไม่จำเป็นต้องเป็นสี่เหลี่ยมจัตุรัสดังนั้นฉันอาจต้องประมาณรูปสี่เหลี่ยม ฉันต้องการให้คุณพบกับฉันการจัดเรียงที่น่าพอใจมากที่สุด - โดยทางโปรแกรมแน่นอน อินพุต ข้อมูลที่คุณป้อนเป็นจำนวนเต็มบวกเดียวkแทนจำนวนช่อง เอาท์พุต โปรแกรมของคุณจะเลือกจำนวนเต็มบวกสองตัวm, nที่m*(n-1) < k ≤ m*nเก็บไว้ มันแสดงถึงความกว้างและความสูงของรูปร่างสี่เหลี่ยมจัตุรัสขนาดใหญ่ที่เรากำลังจัด เนื่องจากเรากำลังมองหารูปทรงที่ชื่นชอบ aestethically ปริมาณจะมีเพียงเล็กน้อยเพื่อให้รูปร่างอยู่ใกล้กับตารางและพื้นที่อยู่ใกล้กับ หากยังมีผู้สมัครหลายคนสำหรับคู่เลือกหนึ่งที่ความกว้างสูงสุด(m - n)2 + (m*n - k)2k(m, n)m ตอนนี้การส่งออกที่แท้จริงของคุณจะไม่เป็นตัวเลขและm nแต่คุณจะต้องพิมพ์การจัดเรียงของกล่องโดยใช้ตัวละคร#เพื่อเป็นตัวแทนของกล่อง โดยเฉพาะอย่างยิ่งที่คุณจะต้องพิมพ์n-1แถวแต่ละแห่งซึ่งประกอบด้วยmตัวอักษร#และจากนั้นแถวที่หนึ่งในตัวละครk - m*(n-1) #โปรดทราบว่าการส่งออกมีว่าตัวละครk# กฎและเกณฑ์การให้คะแนน จะต้องไม่มีช่องว่างนำหน้าหรือต่อท้ายในผลลัพธ์ยกเว้นว่าแถวสุดท้ายอาจจะเต็มไปด้วยช่องว่างต่อท้ายที่จะมีความยาวmถ้าต้องการ อาจมีการขึ้นบรรทัดใหม่หนึ่งบรรทัด แต่ไม่มีการขึ้นบรรทัดใหม่ก่อนหน้า คุณสามารถใช้อักขระ ASCII ที่พิมพ์ได้#หากต้องการ คุณอาจเขียนโปรแกรมเต็มหรือส่งคืนสตริงจากฟังก์ชัน จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต กรณีทดสอบ นี่คือเอาต์พุตที่ถูกต้องสำหรับค่าอินพุตสองสามค่า 1 # 2 ## 3 ## …

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