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

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

7
ตรวจสอบว่าสตริงเป็นการสลับแบบแฝดหรือไม่
คำอธิบาย สองสายสามารถสับโดยการกระจายตัวอักษรของพวกเขาเพื่อสร้างสายใหม่เช่นเดียวกับไพ่สองกองสามารถสับเพื่อสร้างกองเดียว ยกตัวอย่างเช่นสตริงHELLOและWORLDสามารถสับในรูปแบบHWEOLRLLODหรือหรือบางทีอาจจะเพียงแค่HEWORLLLDOHELLOWORLD มันเป็นไม่ได้สับเปลี่ยนถ้าคำสั่งเดิมของตัวอักษรไม่ได้เก็บรักษาไว้ ยกตัวอย่างเช่นDในWORLDไม่เคยปรากฏมาก่อนRหลังจากที่ถูกสับ ซึ่งหมายความว่าEHLLOWRDLOยกตัวอย่างเช่นไม่ใช่การสับเปลี่ยนHELLOและWORLDแม้ว่าจะมีตัวอักษรต้นฉบับทั้งหมด สตริงคือการสลับของแฝดถ้ามันสามารถเกิดขึ้นได้โดยการสับสองสายเหมือนกัน ยกตัวอย่างเช่นABACBDECDEเป็นสับเปลี่ยนของฝาแฝดเพราะมันสามารถเกิดขึ้นโดยการสับและABCDE ไม่ใช่การสับเปลี่ยนของฝาแฝดเนื่องจากไม่สามารถขึ้นรูปได้โดยการสลับสองสายเหมือนกันABCDEDBEACBCADE รายละเอียดโปรแกรม รับสตริงอินพุตเอาต์พุต0ถ้าไม่ใช่การสลับแบบแฝดและส่งเอาต์พุตหนึ่งในสตริงแฝดหากเป็นสับเปลี่ยนของฝาแฝด คุณอาจคิดว่าสายป้อนมีความยาวรวมระหว่างสี่ถึงยี่สิบอักขระและประกอบด้วยตัวอักษรตัวพิมพ์ใหญ่ทั้งหมด มันควรจะสามารถทำงานในเวลาที่เหมาะสมพูดภายใต้ 10 นาที นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดชนะ ตัวอย่าง I / O > ABACBDECDE ABCDE > DBEACBCADE 0 > FFFFFF FFF > FFGGG 0 > ABBA 0 > AABB AB > AABAAB AAB ผมมีตัวอย่าง (ที่ไม่แข็งแรงเล่นกอล์ฟ) การดำเนินงาน

4
ล้มกำแพงในเขาวงกต
กฎ: ในเกมนี้คุณเริ่มต้นที่ด้านบนของตารางสี่เหลี่ยมที่มีขนาด N x M ประกอบด้วยผนังและพื้นที่เปิดโล่ง อินพุตคือ N บรรทัดของอักขระ M โดยที่ a .ระบุพื้นที่เปิดโล่งและ a xระบุกำแพง โปรแกรมของคุณควรส่งออกจำนวน K ที่น้อยที่สุดซึ่งมีเส้นทางจากมุมบนซ้ายไปยังมุมขวาล่าง (ไม่มีเส้นทแยงมุม) ที่ข้ามกำแพง K ตัวอย่างเช่นกำหนดอินพุต: ..x.. ..x.. xxxxx ..x.. ..x.. 2โปรแกรมของคุณควรเอาท์พุท ตัวอย่างอื่น ๆ : ผลลัพธ์4: xxxxx x.x.x x.x.x x..xx ผลลัพธ์0: .xxxxxxxx .x...x... .x.x.x.x. .x.x...x. ...xxxxx. ผลลัพธ์6: xx xx xx xx xx เกร็ดความรู้เพิ่มเติม: ถ้ามันทำให้ชีวิตของคุณง่ายขึ้นคุณสามารถระบุ …
10 code-golf  maze 

1
รหัส 39 เครื่องสแกนบาร์โค้ด
รหัส 39 ที่พัฒนาขึ้นในปี 1974 เป็นหนึ่งในสัญลักษณ์หรือประเภทบาร์โค้ดที่ใช้กันมากที่สุดแม้ว่าจะเป็นระบบ UPC / EAN ที่พบเห็นได้บ่อยที่สุดในการขายปลีก บาร์โค้ด 39 รหัสสามารถเข้ารหัสตัวอักษรตัวพิมพ์ใหญ่ตัวเลขและสัญลักษณ์บางอย่างและพิมพ์เล็กน้อยจากซอฟต์แวร์คอมพิวเตอร์โดยใช้แบบอักษรพิเศษ สิ่งนี้นำไปสู่การใช้ในเชิงพาณิชย์และอุตสาหกรรมอย่างกว้างขวาง (เช่นป้าย ID บริษัท , การติดตามสินทรัพย์, ระบบอัตโนมัติในโรงงาน) สร้างโปรแกรมหรือฟังก์ชั่นที่สั้นที่สุดเพื่ออ่านบาร์โค้ด Code 39 ในทิศทางใดก็ได้จากภาพระดับสีเทาขนาด 512x512 พิกเซล; บาร์โค้ดอาจไม่เรียงแนวนอนหรือแนวตั้ง โปรแกรมของคุณต้องยอมรับรูปแบบไฟล์ภาพมาตรฐานและสร้างข้อมูลที่เข้ารหัสในบาร์โค้ดเป็นเอาต์พุตมาตรฐานหรือค่าส่งคืน (ไม่รวมอักขระเริ่มต้น / หยุด) ไม่มีภาพที่มีบาร์โค้ดรหัส 39 ที่ถูกต้องมากกว่าหนึ่งและไม่มีบาร์โค้ดเข้ารหัสอักขระช่องว่าง (ASCII 32) หากไม่มีบาร์โค้ดรหัส 39 ที่ถูกต้องแสดงในภาพโปรแกรมจะต้องส่งออกเครื่องหมายคำถามเดียว ( ?) ฉันได้เตรียมการใช้งานอ้างอิง JavaScript และชุดทดสอบรูปภาพในรูปแบบ PNG ทั้งที่มีบาร์โค้ดและไม่มี การใช้งานอ้างอิงซึ่งล้มเหลวเพียง 3 จาก 46 กรณีทดสอบในเว็บเบราว์เซอร์ล่าสุดมีจุดประสงค์เพื่อแสดงอัลกอริธึมการถอดรหัสที่เป็นไปได้หนึ่งวิธีไม่ให้ปฏิบัติตามข้อกำหนดข้างต้นอย่างเคร่งครัด …
10 code-golf 

6
ระบุต้นไม้ไบนารีทั้งหมดด้วยโหนด n
รับจำนวนเต็ม n ระบุต้นไม้ไบนารีเต็มที่เป็นไปได้ทั้งหมดที่มีโหนดภายใน (ต้นไม้ไบนารีเต็มมีลูก 2 คนในทุกโหนดภายใน) โครงสร้างต้นไม้ควรถูกส่งออกเป็น traversal ที่สั่งซื้อล่วงหน้าของต้นไม้โดยที่ 1 หมายถึงโหนดภายในและ 0 หมายถึงโหนดภายนอก (Null) นี่คือตัวอย่างสำหรับสองสามคนแรก: 0: 0 1: 100 2: 11000 10100 3: 1110000 1101000 1100100 1011000 1010100 นี่คือรหัสกอล์ฟที่มีรางวัลน้อยที่สุดสำหรับตัวละคร ต้นไม้ควรจะถูกส่งออกหนึ่งต่อบรรทัดเพื่อ stdout โปรแกรมควรอ่าน n จาก commandline หรือ stdin

7
เครื่องกำเนิดบัตรบิงโก
บัตรบิงโกคือห้าคอลัมน์ของห้าสี่เหลี่ยมจัตุรัสแต่ละอันโดยมีจัตุรัสกลางกำหนดไว้ว่า "ฟรี" ตัวเลขต้องไม่ซ้ำกัน คอลัมน์ห้าคอลัมน์นั้นเต็มไปด้วยช่วงตัวเลขดังนี้ B: 1-15 I: 16-30 N: 31-45 G: 46-60 O: 61-75 ในตัวละครให้น้อยที่สุดส่งสตริงที่สามารถตีความได้ว่าเป็นการ์ดบิงโกแบบสุ่ม ตัวอย่างเช่น: 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65 ตัวอย่างนี้ไม่สุ่มเพื่อให้ฉันสามารถแสดงว่าคอลัมน์ 1 มีประชากร 1,2,3,4,5 นอกจากนี้โปรดทราบว่าพื้นที่ว่างไม่ได้รับการดูแลเป็นพิเศษเพราะส่วนหน้าที่ตีความสตริงนี้จะข้ามมัน อีกตัวอย่างหนึ่งคือ: 1,16,31,46,61,2,17,32,47,62 ... ในตัวอย่างนี้ผลลัพธ์เป็นแบบแถวแทนที่จะเป็นแบบคอลัมน์ ตัวอย่างที่สามอาจเป็น: 01020304051617181920313233343546474849506162636465 นี่เป็นเอาต์พุตเดียวกันกับตัวอย่างที่ 1 ยกเว้นในความยาวคงที่
10 code-golf  game 

5
หมายเลขที่ n มีจำนวนเฉพาะของปัจจัยสำคัญที่แตกต่างกัน
สร้างฟังก์ชั่นที่สั้นที่สุดโปรแกรมหรือการแสดงออกที่คำนวณA073329คือa(n)เป็นที่ nจำนวนที่มีnปัจจัยสำคัญที่แตกต่างกัน อินพุตคือจำนวนขององค์ประกอบในลำดับที่จะกลับมา 0 < n. ฉันไม่สนใจด้วยความแม่นยำจำนวนเต็ม ฉันแค่ต้องการอัลกอริทึม สำหรับภาษาที่ไม่รองรับจำนวนเต็มขนาดใหญ่โดยพลเราจะแสร้งทำ คุณสามารถค้นหากรณีทดสอบโดยไปที่ลิงก์ไปยัง OEIS ที่ให้ไว้ข้างต้น UPDATE: ให้ฉันทำให้ชัดเจนว่าคุณต้องกลับลำดับจำนวนเต็มจากโปรแกรมฟังก์ชั่นหรือการแสดงออกของคุณ ในคำอื่น ๆf(x)ควรคำนวณa(n)ทั้งหมดnตั้งแต่ 1 xถึง ให้x8 ของฟังก์ชั่นของคุณควรกลับมา2, 10, 60, 420, 4290, 53130, 903210, 17687670เป็นอาร์เรย์หรือโครงสร้างข้อมูลที่เหมาะสมอื่น ๆ
10 code-golf  math 

5
ทำบอท IRC ง่าย ๆ
งาน ทำบอท IRC อย่างง่ายซึ่งทำหน้าที่ง่าย ๆ เช่นผู้ใช้อวยพร รายละเอียด (คุณอาจเห็นเอกสาร RFCนี้) เขียนโปรแกรมที่สมบูรณ์ซึ่งทำสิ่งเหล่านี้: โปรแกรมอินพุตnicknameและrealnameจากผู้ใช้ ควรอนุญาตให้ใช้แบบฟอร์มทั้งหมดnicknameและrealnameแบบฟอร์ม[A-Za-z0-9]+ใดก็ได้ แต่ไม่สำคัญว่าจะอนุญาตให้ใช้รูปแบบอื่นได้หรือไม่ ตัวอย่างเช่นหากผู้ใช้ต้องการ1234qwertyเป็นnicknameและ5319009เป็นrealnameโปรแกรมควรใช้ชื่อเหล่านั้น แต่มันไม่สำคัญว่าโปรแกรมสามารถใช้^^☆Rick Astley☆^^(ซึ่งรวมถึงที่ไม่ใช่ตัวอักษรและทศนิยม) เป็น ( nicknameหรือrealname) หรือแม้กระทั่งคิดว่าชื่อนี้อาจถูกปฏิเสธ โดยเซิร์ฟเวอร์ โปรแกรมอินพุตserverAddressจากผู้ใช้ รูปแบบของserverAddressคือserverIP:serverPortที่ไหนserverIPคือที่อยู่ IP ของเซิร์ฟเวอร์และserverPortเป็นจำนวนพอร์ตของเซิร์ฟเวอร์ โปรแกรมที่เชื่อมต่อกับพอร์ตserverPortที่เซิร์ฟเวอร์ IRC serverIPและควรตั้งค่าเป็นชื่อเล่นnicknameและ realname เป็นrealnameโดยการส่งและUSER realname 0 * :realnameNICK nickname โปรแกรมปัจจัยเดียวchannelNameซึ่งไม่รวมถึงและเข้าร่วมช่อง##channelName ส่งข้อความส่วนตัวHello, world!ถึง#channelNameช่องดังนี้:PRIVMSG #channelName :Hello, world! จากนั้นโปรแกรมทำสิ่งเหล่านี้: ตอบ: ถ้ามีคนเข้าร่วมทักทายเขาโดยกล่าวว่าHello, @!การ#channelNameที่ @ เป็นชื่อเล่นของเขา / เธอ B. …

3
การนำทางเครื่องบิน
คุณได้รับมอบหมายให้วางแผนเส้นทางบินสำหรับ บริษัท ขนส่งเครื่องบินท้องถิ่น คุณต้องกำหนดเส้นทางเครื่องบินจากจุด A ไปยังจุด B คุณไม่สามารถเริ่มต้นที่ A ชี้เครื่องบินไปที่ B แล้วไปอย่างไรก็ตามเนื่องจากลมที่พัดผ่านจะทำให้คุณระเบิด คุณต้องหาทิศทางที่คุณควรชี้เครื่องบินเพื่อให้มันบินตรงไปที่ B แทนโดยคำนึงถึงลม อินพุต 7 ตัวเลขทศนิยม, เข้ารหัส A_x, A_y, B_x, B_y, S, W_x, W_y นี่คือพิกัดเริ่มต้นและปลายทางของคุณความเร็วของเครื่องบินและความแรงของลมตามแนวแกน x และ y (ทิศทางที่ลมพัดไปไม่ใช่จาก) เอาท์พุต คุณควรพิมพ์มุมเป็นองศา (หมุนทวนเข็มนาฬิกาจากแกน x บวก) ที่ระนาบควรชี้ไปที่ B ในแนวเส้นตรง พิมพ์GROUNDEDถ้าลมแรงจนทำให้การเดินทางเป็นไปไม่ได้ คุณสามารถเข้าสู่ระดับที่ใกล้ที่สุดและทำตามวิธีการที่คุณต้องการ (ขึ้น / ลง / ใกล้ที่สุด / ... ) ตัวอย่าง …
10 code-golf  math 

2
เกม Prime Grid
ฉันสนุกกับการแก้ปัญหานี้ดังนั้นฉันจึงเสนอความท้าทายกอล์ฟนี้ วัตถุประสงค์ของการเล่นกอล์ฟนี้คือการหาจำนวนเฉพาะที่ใหญ่ที่สุดที่สามารถสร้างขึ้นโดยใช้คำแนะนำที่กำหนด คุณควรยอมรับ 3x3 ตารางของตัวเลขหลักเดียวเป็นอินพุต (ขึ้นอยู่กับคุณว่าคุณต้องการทำอะไร แต่ระบุไว้ในโปรแกรมของคุณ) คุณสามารถเลื่อนไปตามกริดแบบ orthogonally (ซ้าย, ขวา, ขึ้นหรือลง) และในขณะที่คุณเคลื่อนที่คุณจะต่อท้ายตัวเลขที่คุณเดินผ่าน เช่น 1 2 3 3 5 6 1 8 9 สมมติว่าเราเริ่มต้นที่1เราสามารถสร้างหมายเลข 1236589 แต่ไม่สามารถสร้าง 15 คุณต้องประเมินทุกตำแหน่งเริ่มต้น หากไม่พบ-1ไพร์มให้พิมพ์มิฉะนั้นพิมพ์ไพร์มเอง รหัสที่สั้นที่สุดชนะตรวจสอบให้แน่ใจว่าทำงานภายใน 10 วินาที มีความสุข! แก้ไข: ใช้หนึ่งตำแหน่งอย่างแน่นอนหนึ่งครั้งในจำนวนทั้งหมด นี่คือกรณีทดสอบ การป้อนข้อมูล: 1 2 3 4 5 6 7 8 9 เอาท์พุท: 69854123

1
โปรแกรมวิชวลไลเซชันสมการศิลปะ ASCII
การจัดการกับสมการเมื่อไม่มีตัวแก้ไขสมการที่ดีนั้นยุ่งและไม่เป็นที่พอใจ ตัวอย่างเช่นถ้าฉันต้องการแสดงอินทิกรัลและวิธีแก้ปัญหามันอาจมีลักษณะดังนี้: ส่วนประกอบ [x ^ 3 e ^ (- mx ^ 2 b / 2), dx] = - ((2 + b m x ^ 2) / (b ^ 2 * e ^ ((b m x ^ 2) / 2) M * ^ 2)) ที่integrals.wolfram.comสิ่งนี้เรียกว่า "รูปแบบการป้อนข้อมูล" ไม่มีใครชอบเห็นสมการใน "รูปแบบการป้อนข้อมูล" วิธีที่เหมาะในการแสดงภาพสมการนี้คือ: (วุลแฟรมเรียกสิ่งนี้ว่า "รูปแบบดั้งเดิม") …

5
คำนวณลำดับเลขจำนวนเต็มที่ได้จากปัจจัยหลัก
สร้างฟังก์ชั่นการแสดงออกหรือโปรแกรมที่ทำต่อไปนี้: นำปัจจัยสำคัญของตัวเลขใด ๆ มารวมกัน ตัวอย่างเช่นปัจจัยหลักของ 28 คือ 2 2 7 รวมเป็น 11 คูณผลลัพธ์ด้วยจำนวนของปัจจัยหลักสำหรับจำนวนที่กำหนด เช่น 28 มี 3 ปัจจัยหลักซึ่งรวมถึง 11 11 * 3 คือ 33 ทำซ้ำกระบวนการซ้ำโดยจัดเก็บรายการผลลัพธ์ (ซึ่งเริ่มต้นด้วยหมายเลขเดิม) จนกว่าคุณจะไปถึงหมายเลขที่รวมอยู่ในรายการแล้ว หยุดโดยไม่เพิ่มหมายเลขสุดท้ายนั้นเพื่อให้รายการไม่มีรายการที่ซ้ำกัน ความก้าวหน้าของ 28 คือ 28 33 เพราะ 33 ผลลัพธ์ใน 28 อีกครั้ง นับองค์ประกอบในรายการผลลัพธ์ ในกรณีที่ 28 คำตอบคือ 2 นี่คือผลลัพธ์สำหรับ0<n<=10เพื่อให้คุณสามารถตรวจสอบอัลกอริทึมของคุณ 2 1 1 10 1 11 …
10 code-golf  math 

13
ผลิตภัณฑ์ของตัวเลข
สำหรับจำนวนเต็มบวกที่กำหนด N ให้เขียนโปรแกรมที่สมบูรณ์เพื่อหาค่า M ธรรมชาติน้อยที่สุดซึ่งผลคูณของ M เท่ากับ N N น้อยกว่า 1,000,000,000 หากไม่มี M ให้พิมพ์ -1 รหัสของคุณไม่ควรเกิน 10 วินาทีไม่ว่ากรณีใด ๆ Sample Inputs 1 3 15 10 123456789 32 432 1296 Sample Outputs 1 3 35 25 -1 48 689 2899
10 code-golf  math 

12
ดัชนีสมดุลของลำดับ
ดัชนีดุลยภาพของลำดับคือดัชนีที่ผลรวมขององค์ประกอบที่ดัชนีต่ำกว่าเท่ากับผลรวมขององค์ประกอบที่ดัชนีสูงกว่า ตัวอย่างเช่นในลำดับ A: A[0]=-7 A[1]=1 A[2]=5 A[3]=2 A[4]=-4 A[5]=3 A[6]=0 3 คือดัชนีดุลเนื่องจาก: A[0]+A[1]+A[2]=A[4]+A[5]+A[6] 6 ยังเป็นดัชนีดุลยภาพเนื่องจาก: A[0]+A[1]+A[2]+A[3]+A[4]+A[5]=0 (ผลรวมขององค์ประกอบศูนย์คือศูนย์) 7 ไม่ใช่ดัชนีดุลเนื่องจากมันไม่ใช่ดัชนีที่ถูกต้องของลำดับ A แนวคิดคือการสร้างโปรแกรมที่ให้ลำดับ (อาร์เรย์) ส่งคืนดัชนีดุล (ใด ๆ ) หรือ -1 หากไม่มีดัชนีสมดุล
10 code-golf 

4
ส่วนพหุนามยาว
ใช้การหารพหุนามแบบยาวอัลกอริธึมที่แบ่งชื่อพหุนามสองอันออกมาและได้รับความฉลาด (12x ^ 3 - 5x ^ 2 + 3x - 1) / (x ^ 2 - 5) = 12x - 5 R 63x - 26 ในโปรแกรมของคุณคุณจะแทนพหุนามเป็นอาเรย์โดยมีคำคงที่อยู่ท้ายคำ ตัวอย่างเช่น x ^ 5 - 3x ^ 4 + 2x ^ 2 - x + 1 จะกลายเป็น [1, -3, 0, 2, -1, 1] …

13
วาดนาฬิกา BCD Binary
สร้างนาฬิกาไบนารี BCD ใน ASCII โดยนัยแล้วมันจะแสดงเวลาในคอลัมน์หกจุด: (ที่มา: Wikimedia Commons ) แต่ละคอลัมน์เป็นตัวเลขไบนารีรหัสอ่านชั่วโมงนาทีและวินาทีจากซ้ายไปขวา ชั่วโมงถูกกำหนดในรูปแบบ 24 ชั่วโมง เวลาในการแสดงถูกอ่านจากบรรทัดคำสั่งหรือจาก stdin (แล้วแต่ว่าจะดีกว่า) หากไม่มีข้อมูลควรใช้เวลาปัจจุบันแทน ขนาดเอาต์พุตมีข้อ จำกัด เล็กน้อยที่นี่และเราสามารถใส่ข้อความสองบรรทัดเท่านั้น ดังนั้นคุณจะต้องใส่จุดลงในสองบรรทัดเท่านั้น ตัวละคร., :และ'เข้ามามีประโยชน์ที่นี่ อินพุต เวลาที่จะแสดงในรูปแบบ ISO-8601 คือHH:MM:SSไม่เสี้ยววินาที รูปแบบบังคับ 24 ชั่วโมง อินพุตอาจว่างเปล่าซึ่งในกรณีนี้จะใช้เวลาปัจจุบัน เอาท์พุต มีสองเส้นที่แสดงถึงนาฬิกาไบนารี BCD ดังภาพด้านบน แต่ละบรรทัดมีความยาวหกตัวอักษรและอักขระที่อนุญาตเท่านั้นคือช่องว่างช่วงเวลาเครื่องหมายจุดคู่และเครื่องหมายอะโพสโทรฟี ผู้ชนะ รหัสที่สั้นที่สุดนับเป็นไบต์ชนะ ในวิธีการแก้ปัญหาการโพสต์ชนะครั้งแรก ตัวอย่างอินพุต 1 (ว่าง) ตัวอย่างผลลัพธ์ 1 . ''. :: ตัวอย่างอินพุต 2 17:59:20 …

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