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

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

3
ชีวิตที่แปลกประหลาดของรังผึ้ง
นักวิจัยได้ค้นพบอาณานิคมผึ้งที่น่าสนใจซึ่งอาศัยอยู่ในทุ่งรวงผึ้งที่ไม่มีที่สิ้นสุด: แต่ละเซลล์สามารถเลี้ยงผึ้งได้หรือไม่ ในความเป็นจริงชีวิตของสิ่งมีชีวิตเหล่านั้นดูเหมือนจะวุ่นวาย ... สามารถคำนวณได้ว่าอาณานิคมจะเริ่มต้นด้วยรูปแบบต่อไปนี้เสมอ: (ผึ้งวาดโดย เอ็มมานู Boutet ในวิกิพีเดีย . นี้ภาพรังผึ้งและผึ้งจึงออกภายใต้ CC-By-SA . grumbles ) หลังจากนั้นวงจรชีวิตของผึ้งจะถูกแบ่งออกเป็นรุ่นที่เรียกว่า ผึ้งเก่าแต่ละรุ่นตายและฟักใหม่และขึ้นอยู่กับเพื่อนบ้านของเซลล์เป็นหลัก: หากผึ้งมีเพื่อนบ้านน้อยกว่าสองคนมันจะตายเนื่องจากความเหงา หากผึ้งมีเพื่อนบ้านมากกว่าสามคนมันจะตายเนื่องจากความแออัด หากเซลล์มีผึ้งสองหรือสามหรือสี่ตัวในเซลล์ข้างเคียงผึ้งตัวใหม่จะฟักที่นั่นในรุ่นต่อไป ผึ้งที่ตายจะไม่ตายจนกว่าจะถึงยุคสุดท้ายดังนั้นพวกมันจึงยังคงมีผลต่อเซลล์รอบข้างที่อาจฟักผึ้งในรุ่นต่อไป ตอนนี้เรารู้แล้วว่าอาณานิคมเหล่านี้ทำงานอย่างไรเราสามารถจำลองมันได้หลายชั่วอายุคน อินพุต อินพุตเป็นหมายเลขเดียวNซึ่งถูกกำหนดให้กับอินพุตมาตรฐานถูกยกเลิกโดยตัวแบ่งบรรทัด 0 ≤ N ≤ 150 นี่คือจำนวนรุ่นที่จะจำลอง เอาท์พุต เอาท์พุทเป็นตัวเลขเดี่ยวในเอาต์พุตมาตรฐานและตามด้วยตัวแบ่งบรรทัดเดียวซึ่งแทนจำนวนผึ้งที่มีชีวิตหลังจาก รุ่นN เอาต์พุตเพิ่มเติมเกี่ยวกับข้อผิดพลาดมาตรฐานจะถูกละเว้น อินพุตตัวอย่าง 0 5 42 100 ตัวอย่างผลลัพธ์ 6 44 1029 5296 สภาพการชนะ รหัสที่สั้นที่สุดชนะเช่นเดียวกับในกอล์ฟ ในกรณีที่เสมอกันการแก้ปัญหาก่อนหน้านี้ชนะ กรณีทดสอบ มีสองสคริปต์ทดสอบที่มีกรณีทดสอบเหมือนกัน: ทุบตี …

3
Hashiwokakero: สร้างสะพาน!
Hashiwokakero ("สร้างสะพาน" เป็นภาษาญี่ปุ่น) เป็นปริศนาที่คุณได้รับมอบหมายให้เชื่อมต่อกลุ่มเกาะกับสะพาน กฎคือ: สะพานจะต้องวิ่งทั้งแนวตั้งและแนวนอนระหว่างสองเกาะ สะพานอาจไม่ข้ามซึ่งกันและกัน คู่เกาะอาจเชื่อมต่อกันด้วยสะพานขนานที่มากที่สุดสองแห่ง แต่ละเกาะจะมีหมายเลขตั้งแต่ 1 ถึง 8 รวมอยู่ด้วย จำนวนสะพานที่เชื่อมต่อกับเกาะจะต้องตรงกับหมายเลขบนเกาะนั้น สะพานจะต้องเชื่อมต่อเกาะต่างๆเข้าด้วยกันเป็นกลุ่มเดี่ยว งานของคุณคือการเขียนโปรแกรมที่จะแก้ปริศนา Hashiwokakero คุณอาจสันนิษฐานว่าปริศนาที่ให้มานั้นสามารถแก้ไขได้และมีวิธีแก้ปัญหาเพียงวิธีเดียว โปรแกรมควรมีประสิทธิภาพพอสมควร ตัวอย่างเช่นการแก้ปริศนา 25x25 ด้านล่างไม่ควรใช้เวลามากกว่า 10 นาทีสำหรับพีซีทั่วไปและไม่ควรใช้หน่วยความจำเกินกิกะไบต์ การแก้ตัวต่อขนาดเล็กเช่น 7x7 ควรใช้เวลาไม่กี่วินาที การป้อนข้อมูล: ตัวต่อจะได้รับเป็นแผนที่ของตัวละคร 2 มิติโดยมีตัวเลข1เพื่อ8เป็นตัวแทนของเกาะและพื้นที่เป็นตัวแทนของน้ำ เส้นจะถูกบุด้วยช่องว่างหากจำเป็นเพื่อให้ความยาวเท่ากันหมด หมู่เกาะจะถูกแยกออกในแนวนอนและแนวตั้งเสมอด้วยน้ำอย่างน้อยหนึ่งตารางเพื่อให้มีที่ว่างสำหรับวางสะพานที่มีศักยภาพระหว่างพวกเขา จะมีเกาะอย่างน้อยสองแห่งในปริศนา โปรแกรมของคุณควรอ่านแมปปริศนาจากอินพุตมาตรฐาน แต่คุณอาจระบุวิธีป้อนข้อมูลสำรองหากภาษาการเขียนโปรแกรมของคุณต้องการ เอาท์พุท: เอาต์พุตควรเป็นเหมือนอินพุตยกเว้นช่องว่างที่ถูกแทนที่ด้วยบริดจ์ตามความจำเป็น สะพานควรวาดโดยใช้อักขระการวาดกล่อง Unicode ─(U + 2500), │(U + 2502), ═(U + 2550) และ║(U …
19 code-golf 

1
Finder Sudoku ที่ไม่เหมือนใคร
ท้าทาย: ให้บอร์ด Sudoku บนอินพุตมาตรฐานค้นหาจำนวนขั้นต่ำที่เพิ่มเข้ามาเพื่อทำให้กระดานไม่ซ้ำใคร ข้อมูลจำเพาะ / กฎ: อินพุตถูกจัดรูปแบบดังนี้ (ช่องว่างทั้งหมดมีความสำคัญ) 516|827|943 278|394|615 349|615|872 ---+---+--- 98 |4 2|156 465|189|237 12 |5 6|489 ---+---+--- 892|743|561 634|951|728 751|268|394 เอาต์พุตถูกจัดรูปแบบด้วยหนึ่งหมายเลขต่อบรรทัดจัดรูปแบบเช่น(x,y):z- x และ y เริ่มจากหนึ่งที่มุมบนซ้ายและเพิ่มลงและขวา; z คือหมายเลขที่จะเพิ่ม ในกรณีนี้ทั้งหมดเหล่านี้จะเป็นผลที่ถูกต้อง: (3,4):3, (3,4):7, (5,4):3, (5,4):7, (3,6):3, (3,6):7, (5,6):3และ(5,6):7เป็นหนึ่งในเหล่านี้จะช่วยให้คณะกรรมการที่จะได้รับการแก้ไข หากมีการป้อนบอร์ด Sudoku ที่ไม่เหมือนใคร / แก้ไขโปรแกรมไม่ควรพิมพ์อะไรแม้แต่บรรทัดใหม่ โปรแกรมควรรันในบอร์ดน้อยกว่าหนึ่งชั่วโมง (ฉันแนะนำให้ทดสอบโดยใช้บอร์ดเปล่าหรือกระดานที่มีตัวเลขสุ่มหนึ่งอันอยู่บนมัน ... ) เกณฑ์การให้คะแนน: ใช้ขนาดรหัสทั้งหมด …
19 code-golf  game  sudoku 

17
พิมพ์ชุดคันทอร์
ความท้าทาย สร้าง N-เลื่อนระดับต้นเสียงชุด ชุดที่ประกอบไปด้วยคันทอร์ถูกสร้างขึ้นโดยการลบกลางเปิดที่สามของชุดของส่วนบรรทัด โปรแกรมได้รับหนึ่งพารามิเตอร์N(ตัวเลขจำนวนเต็ม) จากนั้นพิมพ์ (ในคอนโซลหรือในลักษณะที่คล้ายกัน) ชุดคันทอร์ของระดับ N การพิมพ์สามารถมี_ตัวอักษรundescore ( ) และ whithe ช่องว่างเท่านั้น พารามิเตอร์สามารถเป็นบวกหรือลบและเครื่องหมายบ่งชี้ทิศทางการก่อสร้างชุดคันทอร์: หากN > 0ชุดคันทอร์ถูกสร้างขึ้นด้านล่างและหากN < 0ชุดคันทอร์ถูกสร้างขึ้น ถ้าN = 0โปรแกรมนั้นพิมพ์บรรทัดเดียว ( _) ตัวอย่างเช่น: N = 2 _________ ___ ___ _ _ _ _ N = -2 _ _ _ _ ___ ___ _________ N = 3 …

19
คำนวณน้ำหนักแฮมมีน้ำหนักแฮมต่ำ
สร้างโปรแกรมที่คำนวณน้ำหนักการขัดขวางของสตริง ผู้ชนะคือโปรแกรมที่มีน้ำหนักแฮมมิ่งต่ำสุด กฎ: การรับน้ำหนักของตัวอักษร ASCII ถูกกำหนดเป็นจำนวนบิตทั้งหมดที่ตั้งค่าไว้1ในการเป็นตัวแทนไบนารี สมมติว่าการเข้ารหัสอินพุตเป็น 7 บิต ASCII ผ่านสิ่งที่กลไกการป้อนข้อมูลเป็นเรื่องปกติสำหรับภาษาของคุณ (เช่น stdin, args ฯลฯ ) เอาท์พุทผลลัพธ์เป็นตัวเลขเพื่อ stdout หรือกลไกเอาต์พุตปกติ / ปกติที่ภาษาของคุณใช้ มันควรจะไปโดยไม่บอก แต่คุณต้องสามารถเรียกใช้โปรแกรมในชีวิตจริงเพื่อให้เป็นทางออกที่ถูกต้อง ผู้ชนะคือคำตอบที่มีรหัสน้ำหนักต่ำสุด ขออภัยไม่มีวิธีแก้ไขในช่องว่างสำหรับอันนี้! ตกลงคุณสามารถเขียนโค้ดในช่องว่างขณะนี้ฉันได้แยกกฎออกแล้ว :) ตัวอย่างต่อตัวละคร: char | binary | weight -----+----------+------- a | 01100001 | 3 x | 01111000 | 4 ? | 00111111 | 6 \x00 …

12
เติมลงในทะเลสาบ
เมื่อพิจารณาภูมิประเทศของที่ดินในรูปแบบภาพ ASCII ให้คิดว่าทะเลสาบจะไปที่ใดและเติมเต็มให้สมมติว่ามีฝนตกไม่ จำกัด ตัวอย่าง อินพุต # ## # #### # ######### ## ########### ## ############# #### ## ############## ##### ################# ####### ######################### ######################### เอาท์พุต # ## #@#### #@@@@######### ##@@########### ##@#############@@@#### ##@##############@@##### #################@####### ######################### ######################### อินพุตจะมีช่องว่างและ#เครื่องหมายเท่านั้น แต่ละบรรทัดจะมีความยาวเท่ากัน ผลลัพธ์ควรเป็น#รูปแบบที่เหมือนกันกับช่องว่างที่น้ำจะสะสมด้วย@เครื่องหมาย แถวล่างสุดจะเป็นเครื่องหมาย # ทั้งหมด จะไม่มีรูหรือสิ่งที่แขวนอยู่ในแผ่นดิน รหัสที่สั้นที่สุดชนะ

30
สร้างตารางการค้นหาฟังก์ชันสากลไบนารี
นี้จะเกี่ยวข้องกับการสัมผัสในการแสวงหาของฉันที่จะคิดค้นการเขียนโปรแกรมภาษาลึกลับ ตารางของเลขฐานสอง 0 .. 15 สามารถนำมาใช้ในการใช้งานฟังก์ชั่นยูนิเวอร์แซลไบนารีโดยใช้การจัดทำดัชนี กำหนดอินพุต 1 บิตสองตัว X และ Y ฟังก์ชันที่เป็นไปได้ทั้ง 16 ฟังก์ชันสามารถเข้ารหัสใน opcode 4 บิต X Y F|0 1 2 3 4 5 6 7 8 9 A B C D E F - - - - - - - - - - - - - - …

15
ความท้าทายของฟีโบนักชีขั้นต่ำ!
ท้าทาย ในงานนี้คุณจะได้รับจำนวนเต็ม N (น้อยกว่า 10 6 ) หาทางขั้นต่ำในที่ที่คุณสามารถที่จะสรุป N โดยใช้เพียงตัวเลข Fibonacci - พาร์ทิชันนี้จะเรียกว่าเป็นตัวแทน Zeckendorf คุณสามารถใช้หมายเลข Fibonacci ใด ๆ มากกว่าหนึ่งครั้งและหากมีการแสดงผลมากกว่าหนึ่งรายการ ตัวอย่างเช่นถ้าใส่เป็น67แล้วหนึ่งเอาท์พุทที่เป็นไปได้อาจจะใช้ตัวเลข Fibonacci 1,3,8,55ซึ่งยังเป็นจำนวนขั้นต่ำของตัวเลข Fibonacci ที่สามารถนำมาใช้เพื่อให้ได้ผลรวม67 อินพุต N ถูกกำหนดบนบรรทัดเดียวอินพุตถูกยกเลิกโดย EOF ตัวอย่าง ได้รับในรูปแบบ input: output 0: 0 47: 34+13 3788: 2584+987+144+55+13+5 1646: 1597+34+13+2 25347: 17711+6765+610+233+21+5+2 677: 610+55+8+3+1 343: 233+89+21 3434: 2584+610+233+5+2 ข้อ จำกัด …

9
การสร้างไฟล์บิตแมป PBM จากข้อความ ASCII
รูปแบบPBM (Portable BitMap)เป็นรูปแบบบิตแมป ASCII ขาวดำที่ง่ายมาก นี่คือตัวอย่างสำหรับตัวอักษร 'J' (คัดลอกวางจากลิงค์ wikipedia): P1 # นี่คือตัวอย่างบิตแมปของตัวอักษร "J" 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 …

10
พวกเขาโทรมาจากที่ไหน
เมื่อโทรออกต่างประเทศหมายเลขโทรศัพท์จะถูกนำหน้าด้วยรหัสที่ระบุว่าประเทศนั้นตั้งอยู่ที่ใดรหัสเหล่านี้เป็นรหัสนำหน้าซึ่งหมายความว่าไม่มีรหัสใดเป็นรหัสนำหน้าของอีกประเทศหนึ่ง ตอนนี้ก่อนหน้านี้วันนี้คุณไม่ได้รับสายและคุณอยากรู้ว่าการโทรนั้นมาจากไหน ดังนั้นคุณต้องการค้นหารหัสโทร แต่เป็นรหัสคำนำหน้าคุณไม่แน่ใจว่าจะจบที่ไหนดังนั้นคุณตัดสินใจที่จะเขียนโปรแกรมเพื่อแยกรหัสการโทรออกจากหมายเลขที่เหลือ อินพุต เป็น input 0-9คุณจะได้รับสตริงที่ประกอบด้วยตัวเลข ตัวเลขสองสามตัวแรกจะเป็นหนึ่งในรหัสโทรศัพท์ของประเทศที่ระบุไว้ด้านล่าง (ซึ่งหมายความว่าจะไม่มีหลักแรกเลย0) หลังจากรหัสโทรประเทศส่วนที่เหลือของอินพุตจะมีตัวเลขเป็นศูนย์หรือมากกว่าในลำดับใด ๆ - ไม่ใช่รับประกันว่าจะเป็นหมายเลขโทรศัพท์ที่ถูกต้อง โปรแกรมของคุณจะต้องสามารถจัดการอินพุตที่มีอย่างน้อย 15 หลัก เอาท์พุต โปรแกรมของคุณควรส่งออกรหัสการโทรประเทศที่ไม่ซ้ำใครซึ่งเป็นส่วนนำหน้าของหมายเลข ผลลัพธ์ที่ถูกต้องมีดังนี้: 1 20 211 212 213 216 218 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 …

26
แปลงสตริงตัวเลขจากคำเป็นจำนวนเต็ม
แปลงสตริงที่มีตัวเลขเป็นคำเป็นจำนวนเต็มโดยไม่คำนึงถึงศูนย์นำหน้า ตัวอย่าง "four two"42-> "zero zero zero one"1-> สมมติฐาน การส่งสามารถสันนิษฐานได้ว่า: สตริงอินพุตประกอบด้วยคำหลักที่คั่นด้วยช่องว่าง คำทั้งหมดใช้งานได้ (ในช่วง "ศูนย์" .. "เก้า") และตัวพิมพ์เล็ก พฤติกรรมสำหรับการป้อนข้อมูลที่ว่างเปล่าไม่ได้กำหนด สตริงอินพุตจะแทนตัวเลขที่ไม่ได้ลงนามในช่วงintและจะไม่เป็นสตริงว่างเสมอ เกณฑ์การให้คะแนน คำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยลง

2
สี่แยกสามเหลี่ยมสองแห่ง
ป.ร. ให้ไว้ 4 จุดบน 2D เครื่องบินA, B, C, D, คำนวณพื้นที่ของภูมิภาคจุดตัดของรูปสามเหลี่ยมที่OABและOCDที่เป็นศูนย์กลางของเครื่องบินที่มีการประสานงานO(0, 0) อัลกอริทึมที่ทำงานในความซับซ้อนของเวลาคงที่ (ในแง่ของการดำเนินการทางคณิตศาสตร์) ได้รับการสนับสนุน แต่ไม่บังคับ กฎระเบียบ แต่ละจุดจะแสดงเป็นตัวเลขจริงสองค่าซึ่งหมายถึงพิกัด X และ Y อีกทางเลือกหนึ่งหากภาษาการเขียนโปรแกรมของคุณ (หรือบางไลบรารีของภาษาการเขียนโปรแกรมของคุณ) มีPointประเภทในตัวหรือเทียบเท่ามันได้รับอนุญาตให้นำPointวัตถุเป็นอินพุต อินพุตได้รับเป็น 4 คะแนนในรูปแบบรวมถึง แต่ไม่ จำกัด เฉพาะ: รายการพิกัด 8 รายการ รายการ 4 คะแนนแต่ละจุดสามารถแสดงในรูปแบบที่สะดวกใด ๆ สองรายการ 2 คะแนน เป็นต้น คุณไม่สามารถถือว่าการสั่งซื้อโดยเฉพาะอย่างยิ่งของจุด คุณไม่สามารถสันนิษฐานได้ว่าจุดOถูกส่งผ่านเป็นอินพุต กล่าวอีกนัยหนึ่งโปรแกรมจะต้องไม่ใช้และใช้การป้อนข้อมูลภายนอก คุณไม่สามารถสรุปได้ว่าคะแนนทั้งหมดนั้นแตกต่างกันหรือไม่ กล่าวอีกนัยหนึ่งสามเหลี่ยมอาจเสื่อมสภาพ คุณต้องจัดการกับกรณีนั้นด้วย (ดูกรณีทดสอบด้านล่าง) ความแตกต่างแบบสัมบูรณ์หรือสัมพัทธ์ต้องน้อยกว่าสำหรับกรณีทดสอบตัวอย่างด้านล่าง10-3 เกณฑ์การชนะ นี่คือcode-golfคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ! …

30
เด็ด ๆ
ลองนิยามf n (k)เป็นผลรวมของเงื่อนไขkแรกของตัวเลขธรรมชาติ[1, ∞)โดยที่แต่ละตัวเลขซ้ำnครั้ง k | 0 1 2 3 4 5 6 7 8 9 --------+------------------------------------------------- f_1(k) | 0 1 3 6 10 15 21 28 36 45 deltas | +1 +2 +3 +4 +5 +6 +7 +8 +9 --------+------------------------------------------------- f_2(k) | 0 1 2 4 6 9 12 …

9
บรรทัดนี้ผ่านจัตุรัสนั้นหรือไม่?
แบ่งจตุภาคแรก (รวมถึงแกน x บวก, แกน y บวกและต้นกำเนิด) เป็น 1x1 กริดโดยแต่ละตารางจะมีป้ายกำกับโดยพิกัดของมุมซ้ายล่างดังแสดงด้านล่าง: โปรดทราบว่าแต่ละตารางมีขอบเขตและจุดยอด การใช้สัญลักษณ์ทางคณิตศาสตร์กริดที่มีป้ายกำกับ (m, n) จะเป็นตัวแทนของสแคว{(x,y) | m ≤ x ≤ m+1, n ≤ y ≤ n+1}ร์ กำหนดเส้นตรงในรูปแบบของax+by+c=0จำนวนเต็มa, bและ, และc, และแสดงโดยกริด(m,n), เอาท์พุทไม่ว่าจะเป็นเส้นผ่านตาราง, หรือไม่ว่าจุดใด ๆ ในตารางที่กำหนดอยู่บนบรรทัด. a b c m n output 1 1 0 0 0 true 1 1 0 1 …

30
ลบช่องว่างนำหน้าส่วนกลาง
เมื่อเขียนโค้ดใน Python บางครั้งคุณต้องการสตริงหลายบรรทัดภายในฟังก์ชันเช่น def f(): s = """\ Line 1 Line 2 Line 3""" (แบ็กสแลชคือการลบ newline ชั้นนำ) อย่างไรก็ตามหากคุณพยายามที่จะพิมพ์ออกมาจริง ๆsคุณจะได้รับ Line 1 Line 2 Line 3 นั่นไม่ใช่สิ่งที่เราต้องการเลย! มีช่องว่างนำหน้ามากเกินไป! ความท้าทาย รับสตริงหลายบรรทัดที่ประกอบด้วยอักขระตัวอักษรและตัวเลขช่องว่างและบรรทัดใหม่เท่านั้นลบช่องว่างทั่วไปออกจากจุดเริ่มต้นของแต่ละบรรทัด แต่ละบรรทัดรับประกันว่าจะมีอักขระที่ไม่ใช่ช่องว่างอย่างน้อยหนึ่งตัวและจะไม่มีช่องว่างต่อท้าย เอาต์พุตอาจไม่มีช่องว่างภายนอกไม่ว่าจะเป็นก่อนหรือหลังเอาต์พุตทั้งหมดหรือแต่ละบรรทัด (ยกเว้นบรรทัดใหม่ที่เป็นทางเลือกหนึ่งบรรทัด) อินพุตอาจผ่าน STDIN หรือฟังก์ชันอาร์กิวเมนต์และเอาต์พุตอาจผ่าน STDOUT หรือฟังก์ชันส่งคืนค่า คุณไม่สามารถใช้ builtins ใด ๆ ที่ถูกออกแบบมาเพื่อสตริงหลาย dedent textwrap.dedentหรือดำเนินงานตรงนี้เช่นงูหลาม นี่คือรหัสกอล์ฟดังนั้นการแก้ปัญหาในไบต์ที่น้อยที่สุดชนะ ช่องโหว่มาตรฐานใช้ กรณีทดสอบ "a" -> "a" …

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