คำถามติดแท็ก code-challenge

ความท้าทายของรหัสคือการแข่งขันสำหรับวิธีสร้างสรรค์ในการแก้ปริศนาการเขียนโปรแกรมด้วยเกณฑ์การชนะอย่างมีเป้าหมายซึ่งไม่ครอบคลุมด้วยแท็กให้คะแนนอื่น ๆ (เช่นรหัส - กอล์ฟ)

5
2048 ท้าทายบอท
เราทำการโคลนนิ่ง 2048 วิเคราะห์ 2048 แล้ว แต่ทำไมเรายังไม่เล่นเลย เขียนโค้ดจาวาสคริปต์ 555 ไบต์เพื่อเล่น 2048 โดยอัตโนมัติคะแนนที่ดีที่สุดหลังจากหนึ่งชั่วโมงจะถูกนับ (ดูคะแนนด้านล่าง) ติดตั้ง: ไปที่2048และเรียกใช้: a = new GameManager(4, KeyboardInputManager, HTMLActuator, LocalStorageManager); a เป็นวัตถุในการควบคุมเกม กฎ: หลังจากตั้งค่าคุณสามารถเรียกใช้จาวาสคริปต์ได้ที่ 555 ไบต์จากคอนโซลควบคุมเกม ซอร์สโค้ดของเกมสามารถพบได้ที่นี่ (รวมถึงความคิดเห็น) ผู้ใช้อาจทำสิ่งต่าง ๆ ที่เป็นไปได้เท่านั้น: a.move(n) เพื่อเรียกการกระทำที่สำคัญใน 4 ทิศทางใด ๆ 0: ขึ้น, 1: ขวา, 2: ลง, 3: ซ้าย a.restart() เพื่อเริ่มเกมใหม่ อนุญาตให้เริ่มต้นใหม่ได้ระหว่างกลางเกม a.grid.cellsข้อมูลเกี่ยวกับสถานะของเกมที่สามารถพบได้ใน ข้อมูลนี้เป็นแบบอ่านอย่างเดียว …

3
ชุดก่อสร้าง Dungeon
เมื่อผมเป็นเด็กผมเล่นเกม Intellivision สูงดินและมังกร: สมบัติของ Tarmin กราฟิก 3 มิติทำให้คุณอยู่ในมุมมองของมุมมองบุคคลที่หนึ่งด้วยความสมจริงที่น่าตกใจ: แต่ฉันได้รับ C-64 และฉันก็สามารถที่จะวาดภาพบนตาราง 40x25 ตัวอักษรโดย cursoring รอบ ๆ หน้าจอการตั้งค่าสีที่มีปุ่ม Ctrl และหลักและวางสัญลักษณ์ใดก็ได้ผมอยาก(ทำไมไม่bashให้ฉันทำอย่างนั้น?) ชุดตัวละครนั้นมีส่วนประกอบเป็นรูปสามเหลี่ยมและส่วนประกอบที่เป็นของแข็ง ดังนั้นฉันจึงสามารถให้เหตุผลว่าใครจะสร้างมุมมองของคน ๆ หนึ่งในกริดผ่านสื่อนั้น ฉันพบสเป็คเก่าแก่เกือบสามทศวรรษในสมุดบันทึกที่มีเกลียวเป็นเกลียวเกี่ยวกับ "ชุดก่อสร้าง Dungeon" ในสัปดาห์นี้: ( อัปเดต : ผู้อ่านระวังจะสังเกตเห็นว่าสิ่งนี้ไม่ได้อยู่ด้วยกันในส่วนที่เอียง, หมายเลขที่ถูกต้องมีให้ด้านล่าง แม้ว่า Treasure of Tarmin จะถูกเล่นบนกริด แต่กำแพงนั้นมีอยู่ที่ขอบสี่เหลี่ยมกริดเท่านั้น ฉันรู้ว่าถ้าฉันสร้างแผนที่จากไบต์ ... แต่ละสี่เหลี่ยมจัตุรัสบนแผนที่อาจมีสี่สถานะที่เป็นไปได้สำหรับแต่ละขอบ: ไม่มีอะไรขัดขวาง ผนัง ประตู อื่น ๆ อีก? ฉันไม่เคยเขียนมันเลย (จนกระทั่งเมื่อคืน) ฉันคิดว่ามันน่าสนุกสำหรับคนอื่นที่จะลอง …

5
ค้นหานายกที่ใหญ่ที่สุดซึ่งยังคงเป็นไพรม์หลังจากการลบตัวเลข
มากกว่าที่/math/33094/deleting-any-digit-yields-a-prime-is-there-a-name-for-thisคำถามนี้ถูกถาม มีจำนวนเฉพาะที่เหลืออยู่หลังจากคุณลบตัวเลขใดตัวเลขหนึ่ง ยกตัวอย่างเช่น719เป็นสำคัญเช่นคุณได้รับ71, และ19 79ในขณะที่คำถามนี้ยังไม่ได้รับการแก้ไขฉันคิดว่ามันเป็นความท้าทายที่ดี งาน. ให้นายกที่ใหญ่ที่สุดที่คุณสามารถพบได้ซึ่งยังคงเป็นนายกรัฐมนตรีอยู่หลังจากที่คุณลบหนึ่งหลัก คุณควรระบุรหัสที่พบ คะแนน. คุณค่าของนายกที่คุณให้ คุณสามารถใช้ภาษาการเขียนโปรแกรมและไลบรารี่ใด ๆ ก็ได้ตามต้องการ ในการเริ่มต้นสิ่งต่าง ๆ99444901133จะได้รับมากที่สุดในหน้าเชื่อมโยง เวลาที่ จำกัด. ฉันจะยอมรับคำตอบที่ถูกต้องที่ใหญ่ที่สุดที่ให้ไว้หนึ่งสัปดาห์หลังจากคำตอบที่ถูกต้องครั้งแรกที่ใหญ่กว่าที่99444901133ได้รับในคำตอบ จนถึงตอนนี้คะแนน Python (พรีโม่) 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111 J (randomra) (คำตอบนี้เริ่มจับเวลาหนึ่งสัปดาห์ในวันที่ 21 กุมภาพันธ์ 2013) 222223333333

29
เรียง-a-จำนวน คล้าย ๆ
แรงบันดาลใจจากการเรียงลำดับตัวเลขที่ไม่ดีโชคไม่ดีโดยใช้อาเรย์ แต่ฉันคิดว่ามันสร้างรหัสกอล์ฟที่ดีกว่าคำถาม SO กำหนดจำนวนเต็มบวกให้เรียงตัวเลขในจำนวนเต็มนั้น คะแนนต่ำสุดชนะ! เริ่มต้นด้วย 0 คะแนน เพิ่มหนึ่งจุดต่อตัวละคร เพิ่ม 20 คะแนนสำหรับแต่ละอาร์เรย์ที่คุณใช้ เพิ่ม 10 คะแนนสำหรับแต่ละสายอักขระหลายตัวในรหัสของคุณ (ยกเว้นอินพุตเริ่มต้นตราบใดที่มันถูกแปลงเป็นจำนวนเต็มโดยไม่มีการดำเนินการอื่นใดกับมัน) เพิ่ม 32 คะแนนหากจำนวนหลักสูงสุดที่โปรแกรมของคุณสามารถจัดการนั้นถูก จำกัด โดยโปรแกรมของคุณ (ตรงข้ามกับเครื่อง) ลบ 10 คะแนนถ้ารหัสของคุณสามารถเปลี่ยนทิศทางของการเรียงลำดับที่กำหนดอาร์กิวเมนต์อื่น (สิ่งที่คุณต้องการ แต่ตัวอย่างเช่น 0 สำหรับการเรียงจากมากไปน้อยและ 1 สำหรับการเรียงจากมากไปหาน้อย) ทุกภาษามีความแตกต่างกันไป แต่ความคิดคือการหลีกเลี่ยงการแฮ็กข้อมูลที่เป็นเลขตัวอื่น ตัวอย่าง: อินพุต : 52146729 เอาต์พุต : 97654221 หรือ 12245679 หมายเหตุ: ใช้ความสามารถในการเรียงลำดับในภาษาการเขียนโปรแกรมของคุณ แต่ถ้าคุณสมบัติการเรียงนั้นเกี่ยวข้องกับสตริงหรืออาร์เรย์ให้รับโทษ! คุณสามารถเขียนวิธีการแก้ปัญหาเป็นฟังก์ชั่นที่ใช้จำนวนเต็มโดยตรงหรือเป็นโปรแกรมที่ใช้อาร์กิวเมนต์จาก argv, ไฟล์หรือสตรีมและแปลงเป็นจำนวนเต็ม ตราบใดที่คุณแปลงเป็นจำนวนเต็มทันทีและยกเลิกอินพุต char …

5
พิมพ์เขาวงกตแบบสุ่ม
ล็อคแล้ว คำถามและคำตอบนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ เขียนโปรแกรมที่สร้างและพิมพ์เขาวงกตแบบสุ่มโดยใช้อัลกอริทึมที่คุณเลือก เขาวงกตควรแตกต่างกันไปสำหรับการใช้งานหลายครั้งของโปรแกรม ความสูงและความกว้างถูกกำหนดเป็นอาร์กิวเมนต์บรรทัดคำสั่ง ใช้|สำหรับผนังแนวตั้งสำหรับผนัง-แนวนอนและ+สำหรับมุม เขาวงกตล้อมรอบด้วยกำแพงและทางเข้ามีการทำเครื่องหมายโดยผนังที่ขาดหายไป เขาวงกตมีสมบัติ#ที่ต้องสามารถเข้าถึงได้จากทางเข้าอย่างน้อยหนึ่งแห่ง $ python2 random-maze.py 4 5 +-+-+ |#| | | +---+

30
วิธีการตรวจสอบว่าจำนวนคี่หรือแม้กระทั่งไม่มีการดำเนินงาน mod- บิต? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา วิธีการตรวจสอบว่าจำนวนคี่หรือแม้กระทั่งไม่มีการดำเนินงาน mod- บิต? ความท้าทายนี้ไม่มีประสิทธิภาพอย่างมาก แต่ท้าทายความสามารถของคุณในการคิดนอกกรอบเพื่อหาทางออกที่สร้างสรรค์ แก้ไข : กรุณาสร้างฟังก์ชั่น นอกจากนี้ในขณะที่ regex เป็นการตอบสนองที่สนุกสนานฟังก์ชั่นควรยอมรับหมายเลขที่ถูกต้องใด ๆ ความเป็นมา : คำถามนี้เกิดขึ้นตั้งแต่วันแรกของการเขียนโปรแกรม การบ้านในวันแรกของการเรียนคือการเขียนโปรแกรมง่าย ๆ ที่พิมพ์ 'คี่' หรือ 'คู่' การเป็นเด็กเหลือขอฉันไม่ได้อ่านหนังสือที่เรามีให้กับชั้นเรียนซึ่งมันแสดงให้เราเห็นว่าจะใช้%เพื่อตัดสินได้อย่างไร ฉันใช้เวลาประมาณครึ่งชั่วโมงเดินไปมาในห้องของฉันพยายามคิดหาวิธีที่จะทำสิ่งนี้และจำได้จากการบรรยายว่าตัวเลขอาจสูญเสียและได้รับความแม่นยำเมื่อพวกมันถูกโยนจากแบบดั้งเดิมไปอีกประเภทหนึ่ง ดังนั้นถ้าคุณเอาจำนวนนั้นหารด้วยสองแล้วคูณมันกลับไม่เท่ากับเลขดั้งเดิมคุณก็จะรู้ว่าเลขนั้นเป็นเลขคี่ ฉันตกใจมากในวันถัดไปในขณะที่ผู้สอนของเราประเมินโปรแกรมของเราเขาคิดว่ามันเป็นแบบดั้งเดิมที่สุดหากไม่มีประสิทธิภาพวิธีแก้ปัญหา

5
บรรทัด R code ที่น่าเกลียดที่สุดที่ยังแยกวิเคราะห์อยู่คืออะไร?
เป้าหมายคือการสร้างรหัส R บรรทัดเดียวที่: ทำน้อยที่สุดเท่าที่จะทำได้ ในตัวละครให้ได้มากที่สุด (สูงสุด 100 ตัวอักษร) และน่าเกลียดที่สุดเท่าที่จะเป็นไปได้ (โดยที่ "น่าเกลียด" สามารถใช้เพื่อหมายถึงกลยุทธ์การคำนวณที่ไม่มีประสิทธิภาพตัวละครภายนอกเช่นเซมิโคลอนที่ยุติและอื่น ๆ ) ทำเลวร้ายที่สุดของคุณสุภาพบุรุษ! เกณฑ์วัตถุประสงค์ในการชนะ คำตอบที่ชนะจะได้รับการตัดสินตามระดับคะแนนต่อไปนี้ (คำตอบที่มีคะแนนมากที่สุดชนะ): สร้างลำดับจาก 0 ถึง 10 ( 100 คะแนน) ในตัวละคร (N) ให้ได้มากที่สุด 0 คะแนนถ้า N = 100 N-100 คะแนนถ้า N <100 (เช่นเสียคะแนนสำหรับตัวละครทุกตัวต่ำกว่า 100) 2 (100-N) คะแนนถ้า N> 100 (เช่นเสียสองคะแนนสำหรับตัวละครทุกตัวที่เกิน 100) ใช้ตัวอย่างเชิงลบจำนวนมากจากR Infernoให้ได้ 6 คะแนนต่อตัวอย่างที่อ้างถึง …
19 code-challenge  r 

7
การจัดเรียงแบบสุ่มคนตาบอด
นี่เป็นรูปแบบที่พบได้ทั่วไปสำหรับการเรียงลำดับอัลกอริทึม: def sort(l): while not is_sorted(l): choose indices i, j assert i < j if l[i] > l[j]: l[i], l[j] = l[j], l[i] ขั้นตอนวิธีการเหล่านี้ทำงานได้ดีเพราะดัชนีiและได้รับการแต่งตั้งอย่างรอบคอบบนพื้นฐานของรัฐของรายการjl อย่างไรก็ตามจะเกิดอะไรขึ้นถ้าเรามองไม่เห็นlและต้องเลือกสุ่มสี่สุ่มห้า เราจะเรียงลำดับรายการได้เร็วแค่ไหน? lความท้าทายของคุณคือการเขียนฟังก์ชั่นที่ผลคู่แบบสุ่มของดัชนีได้รับเพียงความยาวของ โดยเฉพาะคุณต้องเอาท์พุทสองดัชนีด้วยi, j 0 <= i < j < len(l)ฟังก์ชั่นของคุณควรทำงานกับความยาวของรายการใด ๆ แต่จะได้คะแนนในรายการความยาว 100 คะแนนของคุณคือจำนวนตัวเลือกดัชนีเฉลี่ยที่จำเป็นในการเรียงลำดับรายการสับแบบสุ่มอย่างสม่ำเสมอตามรูปแบบด้านบนซึ่งดัชนีจะถูกเลือกตามฟังก์ชั่นของคุณ ฉันจะให้คะแนนการส่งโดยใช้จำนวนตัวเลือกดัชนีเฉลี่ยมากกว่า 1,000 ครั้งในรายการที่มีการสับแบบสุ่มที่มีความยาว 100 โดยไม่มีการป้อนซ้ำ ฉันขอสงวนสิทธิ์ในการเรียกใช้การทดลองน้อยลงหากการส่งนั้นชัดเจนไม่ใช่การแข่งขันหรือไม่ยุติลงและฉันจะทำการทดลองเพิ่มเติมเพื่อแยกความแตกต่างของคู่แข่งชั้นนำเพื่อค้นหาผู้ชนะคนเดียว หากการส่งยอดนิยมหลายรายการยังคงอยู่ภายในระยะขอบของข้อผิดพลาดที่ขีด จำกัด ของทรัพยากรการคำนวณของฉันฉันจะประกาศผู้ชนะการส่งก่อนหน้านี้จนกว่าจะสามารถนำทรัพยากรการคำนวณอื่น ๆ …

1
กลยุทธ์ Tetris
งานของคุณคือการใช้กลยุทธ์ Tetris ที่สมดุลในแง่ของคะแนนเทียบกับขนาดรหัส ในเกม tetrominoes รุ่นนี้จะหมุนและวางจากด้านบนลงในตาราง 20 แถวและ 10 คอลัมน์ ในขณะที่ตกลงมาพวกเขาจะไม่สามารถหมุนหรือเคลื่อนที่ในแนวนอนได้ ตามปกติชิ้นส่วนที่ถูกปล่อยจะหยุดลงเมื่อถึงด้านล่างของกริดหรือเมื่อการเคลื่อนที่ลงไปอีกจะทำให้เกิดการชนกับสี่เหลี่ยมที่มีอยู่แล้ว เมื่อnเส้นแนวนอนได้รับการเติมเต็มอย่างสมบูรณ์พวกเขาจะยุบพร้อมกันตารางจะถูกเติมเต็มด้วยnเส้นว่างที่ด้านบนและคะแนนจะเพิ่มขึ้น 2 n -1 จุด สำหรับn= 1,2,3,4 นั่นคือ 1,3,7,15 คะแนนตามลำดับ หลังจากเส้นหายไปบางช่วงตึกอาจลอยอยู่ในอากาศ (ไม่มี " ปฏิกิริยาลูกโซ่แรงโน้มถ่วง ") เมื่อไม่มีห้องว่างสำหรับชิ้นส่วนปัจจุบันที่จะปรากฏในตำแหน่งที่ต้องการกริดจะถูกล้างชิ้นส่วนปัจจุบันจะถูกละเว้นและเกมจะดำเนินการต่อโดยชิ้นส่วนถัดไปเป็นปัจจุบัน ไม่มีโทษสำหรับเรื่องนั้น คุณควรอ่านประเภทของชิ้นส่วนและตัดสินใจว่าจะหมุนมันอย่างไรและจะวางที่ไหน มองไปข้างหน้าสำหรับชิ้นส่วนถัดไป (เพียงหนึ่ง) ที่ได้รับอนุญาต: คุณสามารถดูที่ชิ้นi+1ก่อนที่จะตอบiแต่คุณจะต้องได้ตัดสินใจชะตากรรมของก่อนที่จะมองหาที่i i+2ไม่มีการค้นหาล่วงหน้านอกเหนือจากส่วนสุดท้ายของอินพุต ประเภท Tetromino และการหมุนจะถูกเข้ารหัสตามตารางต่อไปนี้: type 0 1 2 3 4 5 6 O I Z J …

1
Advent Challenge 1: ช่วยซานต้าปลดล็อกห้องนิรภัยของเขาในปัจจุบัน!
ถัดไป >> คำหลักที่สื่อความหมาย (สำหรับการค้นหา): สร้างสอง Matrices Equivalent, Overlap, Array, Find ท้าทาย ซานต้ามีประวัติของเอลฟ์ที่ขโมยของขวัญจากห้องนิรภัยของเขาในอดีตดังนั้นในปีนี้เขาได้ออกแบบกุญแจที่ยากต่อการถอดรหัส น่าเสียดายที่เขาสูญเสียชุดค่าผสมและเขาไม่สามารถหาวิธีเปิดได้! โชคดีที่เขาจ้างคุณให้เขียนโปรแกรมเพื่อค้นหาชุดค่าผสม ไม่จำเป็นต้องสั้นที่สุด แต่เขาต้องการค้นหาให้เร็วที่สุด! เขามีตารางงานที่เข้มงวดมากและเขาไม่สามารถรอได้นานมาก คะแนนของคุณจะเป็นจำนวนรันไทม์ทั้งหมดของโปรแกรมของคุณคูณด้วยจำนวนขั้นตอนที่โปรแกรมของคุณแสดงผลสำหรับอินพุตการให้คะแนน คะแนนต่ำสุดชนะ ข้อมูลจำเพาะ ล็อคเป็นเมทริกซ์จตุรัส 1s และ 0s มันถูกตั้งค่าเป็นการจัดเรียงแบบสุ่มของ 1s และ 0s และต้องถูกตั้งค่าเป็นรหัสที่ระบุ โชคดีที่ซานต้าจดจำรหัสที่ต้องการได้ มีไม่กี่ขั้นตอนที่เขาสามารถทำได้ แต่ละขั้นตอนสามารถดำเนินการกับเมทริกซ์ย่อยที่ต่อเนื่องกัน (นั่นคือคุณต้องเลือกเมทริกซ์ย่อยที่ล้อมรอบทั้งหมดด้วยมุมบนซ้ายและขวาล่าง) (อาจเป็นเมทริกซ์ย่อยที่ไม่ใช่สแควร์): หมุนไปทางขวา 90 องศา * หมุนซ้าย 90 องศา * หมุน 180 องศา วนรอบnองค์ประกอบแต่ละแถวทางซ้ายหรือขวา (แรป) วนmองค์ประกอบแต่ละคอลัมน์ขึ้นหรือลง (wraps) พลิกแนวนอน …

12
ฐาน 97 ทั้งหมดของคุณเป็นของเรา
ภาษาการเขียนโปรแกรมหลายภาษาเขียนขึ้นโดยใช้ ASCII, แท็บและการขึ้นบรรทัดใหม่ อักขระ 97 ตัวเหล่านี้จะถูกเก็บไว้ในไบต์ 8 บิต (ซึ่งจริง ๆ แล้วสามารถเก็บอักขระที่แตกต่างกัน 256 ตัว!) ซึ่งไม่มีประสิทธิภาพอย่างยิ่งยวด - โดยเฉพาะอย่างยิ่งในการเล่นโค๊ดกอล์ฟ ในการท้าทายนี้คุณจะสามารถลดคะแนนของคุณโดยใช้การแปลงฐาน ท้าทาย โปรแกรมของคุณ / ฟังก์ชั่นใช้เวลาสตริงหรือตัวอักษรอาร์เรย์เป็น input ซึ่งมันก็ตีความเป็นฐาน-97จำนวน จากนั้นจะแปลงเป็นตัวเลข ฐาน 256และนับจำนวนสัญลักษณ์ (เช่นไบต์) ที่จำเป็นสำหรับแสดงหมายเลขนี้ จำนวนนี้จะเป็นค่าผลลัพธ์ / ผลตอบแทนของโปรแกรม / ฟังก์ชั่นของคุณ ตัวอย่างง่ายๆโดยใช้ base-2 และ base-10 (ไบนารีและทศนิยม): หากอินพุตคือ10110เอาต์พุตจะเป็น 2 ตั้งแต่ 10110 2 = 22 10 (ตัวเลขสองหลักที่จำเป็นในการแทนเอาต์พุต) ในทำนองเดียวกัน 1101 2กลายเป็น …

11
เอาท์พุทโปรแกรมที่ส่งออกโปรแกรม ... ที่จ่าย PPCG
ท้าทาย: เขียนรหัสที่เมื่อเรียกใช้งานจะส่งออกซอร์สโค้ดของโปรแกรมที่สองที่สามารถดำเนินการในภาษาอื่น โปรแกรมที่สองควรส่งออกซอร์สโค้ดของโปรแกรมที่สามที่สามารถดำเนินการในภาษาที่สามเป็นต้น โปรแกรมสุดท้ายควรเอาต์พุตPPCGด้วยการขึ้นบรรทัดใหม่ที่เป็นทางเลือกเดียว ผู้ชนะจะได้รับการส่งด้วยภาษาส่วนใหญ่ ความยาวรหัสของโปรแกรมแรกจะเป็นตัวแบ่งไทม์ กฎสำคัญ: ไม่มีโปรแกรมใดที่เหมือนกัน แต่ละภาษาจะต้องทำงานกับหนึ่งในซอร์สโค้ดเท่านั้น มันควรจะเป็นไปไม่ได้ที่จะใช้ภาษาเดียวกันสองสถานที่ในห่วงโซ่โดยไม่ทำลายมัน(ดูตัวอย่าง) ห่วงโซ่ที่สั้นลงไม่ใช่ห่วงโซ่ที่หัก หากคุณสามารถใช้ภาษาในสถานที่ที่แตกต่างไปจากที่ตั้งใจไว้และผลลัพธ์ที่ได้คือ PPCG แสดงว่ามันไม่ถูกต้อง ทุกรุ่นของภาษานับเป็นภาษาที่ไม่ซ้ำกัน (แต่โปรดจำไว้ว่ากฎข้อที่ 2) ตัวอย่าง: ส่งไม่ถูกต้อง: print("""print'disp("PPCG")'""") Python 3: งานprint("""print'disp("PPCG")'""")พิมพ์print'disp("PPCG")' Python 2: print'disp("PPCG")'ภาพพิมพ์disp("PPCG") ระดับแปด: disp("PPCG")พิมพ์PPCG สิ่งนี้ทำงานได้อย่างถูกต้องแต่:คุณสามารถเรียกใช้ได้ทั้งรหัสแรกและรหัสที่สองใน Python 2 โดยไม่ทำลายสายโซ่ดังนั้นจึงเป็นการละเมิดกฎหมายเลข 2 การส่งที่ถูกต้องด้วยคะแนน 3: print("""print'disp("PPCG")'""") Python 3: งานprint("""print'disp("PPCG")'""")พิมพ์print'disp("PPCG")' Perl: print'disp("PPCG")'พิมพ์disp("PPCG") ระดับแปด: disp("PPCG")พิมพ์PPCG นี่เป็นรหัสเดียวกับตัวอย่างที่ไม่ถูกต้อง ความแตกต่างคือเราได้เลือกภาษาที่เป็นไปตามกฎข้อที่ 2: คุณไม่สามารถเรียกใช้รหัสแรกใน Perl / Octave, …

4
ค้นหาคำน้อยที่สุด
สัปดาห์ที่ผ่านมาเราทำงานเพื่อสร้างที่สั้นที่สุดสตริง 1-D ใช้ด้านบน 10,000 คำในภาษาอังกฤษ ตอนนี้ลองทำสิ่งที่ท้าทายใน 2D กันเถอะ! สิ่งที่คุณต้องทำคือใช้คำทั้งหมดข้างต้นแล้ววางลงในสี่เหลี่ยมเล็กที่สุดเท่าที่จะทำได้เพื่อให้เหลื่อมกัน ตัวอย่างเช่นถ้าคำพูดของคุณ["ape","pen","ab","be","pa"]เป็นไปได้สี่เหลี่ยมผืนผ้าที่เป็นไปได้คือ: .b.. apen สี่เหลี่ยมด้านบนจะให้คะแนน 5 กฎ: อนุญาตให้ใช้ตัวอักษรซ้อนทับหลายตัวในคำเดียว คำพูดสามารถไปได้ใน 8 ทิศทาง คำพูดไม่สามารถพันได้ คุณสามารถใช้อักขระใดก็ได้สำหรับตำแหน่งว่าง คุณต้องสร้างการค้นหาคำที่มี10,000 คำแรกเป็นภาษาอังกฤษ (ตาม Google) คะแนนของคุณเท่ากับจำนวนอักขระในการค้นหาคำของคุณ (ไม่รวมอักขระที่ไม่ได้ใช้) หากมีการเสมอกันหรือหากผลงานได้รับการพิสูจน์แล้วว่าเหมาะสมที่สุดการส่งนั้นจะถูกประกาศครั้งแรกเป็นผู้ชนะ

4
วันที่บีบอัดของสัปดาห์
กำหนดอินพุตของรายการวันในสัปดาห์เอาท์พุทการเรียงลำดับที่สั้นที่สุดของรายการ รูปแบบของการป้อนข้อมูลที่เป็นสตริงประกอบด้วยหนึ่งหรือมากกว่าของสตริงสองตัวอักษรSu(วันอาทิตย์), Mo(วันจันทร์) Tu( ฯลฯ ) We, Th, และFr Saอินพุตอาจไม่จำเป็นต้องถูกจัดเรียงตามลำดับ ในการแปลงอินพุตเป็นรูปแบบเอาต์พุต จัดเรียงอินพุตตามวันในสัปดาห์โดยเริ่มจากวันอาทิตย์ (เช่นThMoSaSuFrTuWe-> SuMoTuWeThFrSa) ลดตัวย่อลงไปหนึ่งตัวอักษรถ้ามันไม่มีใบความคลุมเครือ ตัวอย่างเช่นSuMoTuWeควรเป็นSMTWเพราะ S ตัวแรกไม่สามารถเป็นวันเสาร์ได้เนื่องจากจะทำให้เอาต์พุตไม่ได้เรียงลำดับ (เหมือนกันสำหรับ T) อย่างไรก็ตามThFrSaควรเป็นThFSเช่นวันอังคารและวันพฤหัสบดีมาก่อนวันศุกร์และลดลงเพื่อTFSสร้างความกำกวม หากเอาท์พุทเป็นตอนนี้MTWTFเอาท์พุทDแทน (ซึ่งหมายถึง "สัปดาห์วัน ") ในทำนองเดียวกันSSควรจะเป็นEสำหรับสัปดาห์สิ้นสุด ในที่สุด SMTWTFSควรกลายเป็นAสำหรับทุกวัน ทั้งอินพุตและเอาต์พุตต้องเป็นสตริงเดี่ยว เนื่องจากนี่คือcode-golfรหัสที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ กรณีทดสอบ: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | …

5
การบีบอัดบอร์ดเกรงกลัว
เมื่อทำงานกับNon-Palindromic Polyglot Boggleฉันพบว่ามันค่อนข้างน่าเบื่อที่จะบรรจุรหัสอย่างมีประสิทธิภาพที่สุดเท่าที่จะเป็นไปได้บนบอร์ดเกรงขามแม้จะมีเพียงสองสาย แต่เราเป็นโปรแกรมเมอร์ใช่ไหม เรารู้วิธีทำให้สิ่งต่างๆเป็นไปโดยอัตโนมัติ รับรายการสตริงคุณจะต้องสร้างบอร์ดเกรงกลัวที่แต่ละสตริงสามารถพบได้ (เป็นอิสระจากคนอื่น ๆ ) ความท้าทายคือการทำให้กระดานเกรงกลัวมีขนาดเล็กที่สุดเท่าที่จะทำได้ เนื่องจากนี่คือ (หวังว่า) เป็นงานที่ค่อนข้างยากนี่เป็นความท้าทายของรหัส : ไม่มีข้อกำหนดสำหรับการเพิ่มประสิทธิภาพ - ความท้าทายคือการทำมันให้ดีที่สุดเท่าที่จะทำได้ กฎระเบียบ บอร์ดเกรงกลัวจะเป็นรูปสี่เหลี่ยมผืนผ้าและมีตัวอักษรตัวพิมพ์ใหญ่เท่านั้น ดังนั้นสตริงอินพุตจะมีเฉพาะตัวอักษรตัวพิมพ์ใหญ่เท่านั้น ใช้กฎการเกรงกลัวตามปกติ: สตริงเป็นส่วนหนึ่งของบอร์ดหากเริ่มต้นที่ใดก็ได้คุณสามารถค้นหาสตริงโดยการย้ายไปยังอักขระที่อยู่ติดกันซ้ำ ๆ (แนวนอนแนวตั้งหรือแนวทแยงมุม) ในการสร้างสตริงเดี่ยวคุณไม่สามารถใช้เซลล์ใด ๆ ของบอร์ดมากกว่าหนึ่งครั้ง อย่างไรก็ตามตัวละครอาจถูกนำมาใช้ซ้ำระหว่างสตริงที่แตกต่างกัน คุณมีเวลา 30 นาทีในการประมวลผลข้อมูลทดสอบและรหัสของคุณจะต้องไม่ใช้หน่วยความจำเกิน 4 GB ฉันจะให้ระยะเพิ่มขึ้นเล็กน้อยบนขีด จำกัด หน่วยความจำ แต่ถ้าโปรแกรมของคุณใช้มากกว่า 4 GB หรือ spikes อยู่เหนือมันอย่างมีนัยสำคัญฉันจะ (ชั่วคราว) ตัดสิทธิ์การใช้งาน ฉันจะทดสอบการส่งทั้งหมดในเครื่องของตัวเองซึ่งใช้ Windows 8 ฉันมี Ubuntu VM …

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