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

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

3
Advent Challenge 4: Present Assembly Line!
<< ก่อนหน้า ถัดไป >> ซานต้าสามารถผลิตของขวัญทั้งหมดที่เอลฟ์ขโมยคืนได้! ตอนนี้เขาต้องส่งพวกเขาไปยังสายการประกอบบรรจุภัณฑ์ เขามักจะมีกล้องเพื่อควบคุมสายการประกอบทั้งสองเพื่อให้แน่ใจว่าพวกเอลฟ์ทำงานได้ดีและเนื่องจากรูปภาพไลน์ประกอบดูดีบนโปสเตอร์โฆษณา[จำเป็นต้องมี] น่าเสียดายที่กล้องของเขาพังดังนั้นเขาอยากให้คุณวาดแบบจำลองของสายการประกอบว่าจะเป็นอย่างไร! เพื่อให้สายการประกอบทำงานอย่างมีประสิทธิภาพสูงสุดและเพื่อลดความเสี่ยงของข้อผิดพลาดหรือความล้มเหลวกล่องที่มีอยู่ทั้งหมดจะมีความกว้างเท่ากันเพื่อให้พอดีกับสายพานลำเลียงอย่างสมบูรณ์ ท้าทาย รับรายการของขวัญที่แสดงตามขนาดของมันเอาท์พุทสายพานลำเลียงพร้อมของนำเสนอทั้งหมด ของขวัญถูกดึงออกมาเช่น: +----+ / /| +----+ | | | + | |/ +----+ ของขวัญนี้มีความกว้าง 1 ความสูง 2 และความยาว 4 โปรดทราบว่าเครื่องหมายบวกจะไม่นับสำหรับความยาวด้านดังนั้นของขวัญที่มีความยาว 4 จะครอบคลุมตำแหน่งจริง 6 ตำแหน่ง ของขวัญทั้งหมดจะถูกวาดติดกันโดยมีช่องว่างหนึ่งช่องระหว่างอักขระสองตัวที่ใกล้เคียงที่สุด นั่นคือมุมซ้ายล่างของของขวัญถูกเว้นระยะเช่นถ้ากล่องของขวัญมีความยาวlและความกว้างwมุมซ้ายล่างของกล่องของขวัญถัดไปจะเป็นl + w + 4ตำแหน่งที่ถูกต้องของมุมซ้ายล่างของกล่องก่อนหน้า หลังจากดึงกล่องที่มีอยู่ทั้งหมดแล้วสายพานลำเลียงจะถูกดึงโดยแทนที่ช่องว่างระหว่างกล่องในแต่ละwidth + 2บรรทัดสุดท้ายด้วยขีดล่าง ผลลัพธ์สุดท้ายสำหรับกล่องปัจจุบันที่มี(l, w, h)ของ[(4, 1, 2), (8, 1, …

22
การสลับบิตละเลง
บทนำ ความท้าทายนี้ต้องการให้คุณตั้งค่าศูนย์ต่อท้ายของการแสดงเลขฐานสองจำนวนเต็ม010101…เป็นตัวอย่างนี้อธิบายได้ดีที่สุดด้วย: รับจำนวนเต็ม400ขั้นตอนแรกคือการแปลงเป็นไบนารี: 110010000 เนื่องจากเราสามารถเห็นบิตที่ห้าเป็นบิตที่มีนัยสำคัญน้อยที่สุด1ดังนั้นเริ่มจากตรงนั้นเราแทนค่าศูนย์ล่างโดย0101: 110010101 ในที่สุดเราแปลงกลับเป็นทศนิยม: 405 ท้าทาย รับคืนจำนวนเต็มบวก / ค่าผลลัพธ์ที่สอดคล้องกันของกระบวนการที่กำหนดไว้ข้างต้น กฎระเบียบ ลำดับนี้ถูกกำหนดไว้สำหรับเลขจำนวนเต็มอย่างน้อยหนึ่ง1บิตดังนั้นอินพุตจะเป็น≥ 1 เสมอ คุณอาจจะใส่เป็นสตริงรายการของตัวเลข (ทศนิยม) แทน คุณไม่ต้องจัดการอินพุตที่ไม่ถูกต้อง Testcases ต่อไปนี้เป็นบททดสอบเพิ่มเติมที่มีขั้นตอนตัวกลาง (คุณไม่ต้องพิมพ์ / ส่งคืนสิ่งเหล่านี้): In -> … -> … -> Out 1 -> 1 -> 1 -> 1 2 -> 10 -> 10 -> 2 3 -> 11 -> …

16
หมายเลขเฉพาะและหมายเลขสุดท้ายที่มีจำนวนเฉพาะของช่วง
ท้าทาย สำหรับช่วงจำนวนเต็มบวกที่กำหนดให้หาจำนวนเฉพาะและหมายเลขสุดท้ายที่ประกอบด้วยตัวเลขจำนวนเฉพาะทั้งหมดโดยเฉพาะอย่างยิ่งรวมถึง 0 (สำหรับตัวเลขช่วง 0-2 ควรส่งออก 2-2) ช่วงนี้รวม หากไม่พบจำนวนผลลัพธ์ที่คาดหวังคือ 0 หากมีเพียงหมายเลขเดียวดังกล่าวเอาต์พุตที่คาดหวังคือหมายเลขนั้นสองครั้ง ตัวอย่าง สำหรับช่วง 1-100 จำนวนเฉพาะตัวแรกคือ 2 และตัวสุดท้ายคือ 73 (7 และ 3 เป็นหมายเลขเฉพาะ) สำหรับช่วง 70-80 หมายเลขเฉพาะแรกคือ 73 และสุดท้ายคือ 73 (เนื่องจากมีหมายเลขที่ถูกต้องเพียงหนึ่งหมายเลขในช่วงที่กำหนดเราจึงส่งกลับสองครั้ง) สำหรับช่วง 190–200 ไม่มีคำตอบที่ถูกต้องดังนั้นคุณส่งคืน 0 สำหรับช่วง 2000-2100 จำนวนเฉพาะตัวแรกคือ 2003 และอันสุดท้ายคือ 2053 (เราไม่ใส่ตัวเลข 0 แต่หลักอื่น ๆ ทั้งหมดเป็นจำนวนเฉพาะ) นี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะชนะ! ช่องโหว่มาตรฐานทั้งหมดใช้ อินพุต คุณมีอิสระที่จะรับจำนวนเต็มสองจำนวนเป็นอินพุตได้ แต่คุณอาจเห็นว่าเหมาะสม, สแต็ค, …

5
ธนาคารที่มีเพื่อนที่น่าเชื่อถือน้อยกว่า
บทนำ คุณได้งานเป็นรัฐมนตรีว่าการกระทรวงการคลังในประเทศที่ทำขึ้นในสนามหลังบ้านของคุณ คุณตัดสินใจที่จะสร้างธนาคารของคุณเองในประเทศของคุณเพื่อคุณและเพื่อนที่ไม่ค่อยไว้ใจ เนื่องจากคุณไม่เชื่อใจเพื่อน ๆ ของคุณคุณได้ตัดสินใจที่จะเขียนโปรแกรมเพื่อตรวจสอบการทำธุรกรรมทั้งหมดเพื่อหยุดเพื่อนของคุณจากการใช้สกุลเงินที่เกินกำหนดและทำลายเศรษฐกิจของคุณ งาน กำหนดยอดเริ่มต้นและธุรกรรมทั้งหมดให้กรองธุรกรรมทั้งหมดที่มีคนพยายามติดลบและบล็อกใครก็ตามที่พยายามติดลบ (รวมถึงการพยายามติดลบบัญชีที่ปิด) จากการใช้ธนาคารของคุณอีกครั้งโดยกรองธุรกรรมในอนาคตไปยังหรือจาก / บัญชีธนาคารของเธอ Input / Output สองรายการAและBเป็นอินพุตและรายการCเป็นเอาต์พุต เป็นยอดเงินเริ่มต้นของแต่ละบัญชีที่มีรูปแบบA คือรายการธุรกรรมที่มีรูปแบบซึ่งหมายความว่า Bob ต้องการจ่ายหน่วยสกุลเงิน Alice 3 ควรมีรูปแบบเดียวกับ , และอาจจะอยู่ในรูปแบบที่เหมาะสมใด ๆ[["Alice", 5], ["Bob", 8], ["Charlie", 2], ...]B[["Bob", "Alice", 3], ["Charlie", "Bob", 5], ...]["Bob", "Alice", 3]CBABC กรณีทดสอบ A: [["Alice", 5], ["Bob", 2]] B: [["Alice", "Bob", 5], …
12 code-golf 

7
แปลงระหว่าง Music clefs
ก่อนออกเดินทางคุณไม่จำเป็นต้องเข้าใจสัญลักษณ์ทางดนตรีมากมายในการทำสิ่งนี้ คำอธิบาย ในแผ่นโน้ตเพลงมาตรฐาน clefs สองครั้งจะข้ามหน้าที่ทำหน้าที่เป็นจุดอ้างอิงไปยังโน้ตทำให้คุณรู้ว่าควรเล่นโน้ตใด หากคุณยังไม่คุ้นเคยกับเสียงแหลมและเสียงแหลม clef นี่คือคำอธิบายจากWikipedia: clef เป็นสัญลักษณ์ดนตรีที่ใช้เพื่อระบุระดับเสียงของโน้ตที่เขียน วางอยู่บนหนึ่งในบรรทัดที่จุดเริ่มต้นของขั้นบันไดก็ระบุชื่อและระดับเสียงของบันทึกในบรรทัดนั้น บรรทัดนี้ทำหน้าที่เป็นจุดอ้างอิงที่อาจมีการกำหนดชื่อของบันทึกย่อในบรรทัดหรือช่องว่างอื่นของเสา ในภาพด้านบนครึ่งบนของเส้นคือ Treble clef ซึ่งแสดงด้วย ครึ่งล่างคือเบสกุญแจเสียงเขียนด้วย ที่คุณสามารถดูได้ที่เสียงแหลมโน๊ตโน้ตที่ด้านล่างสุดบรรทัดเป็นE (ผมไม่ได้นับบันทึกนอกของเส้นโน๊ตสำหรับความท้าทายนี้) เมื่อวันที่โน๊ตเบสสายต่ำสุดเป็นG เพื่อให้การท้าทายนี้คุณต้องทำสิ่งต่อไปนี้: ท้าทาย ให้ข้อมูลในรูปแบบใดรูปแบบหนึ่งต่อไปนี้ (ตัวเลือกของคุณ) ให้แปลงเป็นรูปตัวโน๊ตตรงกันข้าม ไม่ว่าจะเป็น Treble หรือ Bass clef สามารถเป็นค่า Truthey / Falsey ในภาษาของคุณ (ไม่ใช่แค่สองค่าใด ๆ ) เช่น F # T หรือ F # True หรือ F # Treble …

6
เล่นกอล์ฟ“ pre-golfed” ของฉัน
พื้นหลัง สำหรับการส่งโค้ดกอล์ฟของฉันใน C ฉันต้องการเครื่องมือประมวลผล เช่นเดียวกับในหลายภาษาอื่น ๆ ช่องว่างส่วนใหญ่ไม่เกี่ยวข้องในซอร์ส C (แต่ไม่เสมอไป!) - ยังทำให้โค้ดสามารถเข้าใจได้ง่ายขึ้นสำหรับมนุษย์ โปรแกรม C ที่เล่นกอล์ฟอย่างเต็มที่ที่ไม่มีช่องว่างซ้ำซ้อนเดียวมักจะอ่านไม่ได้ ดังนั้นฉันชอบที่จะเขียนรหัสของฉันใน C สำหรับการส่งรหัสกอล์ฟรวมถึงช่องว่างและบางครั้งความคิดเห็นดังนั้นโปรแกรมเก็บโครงสร้างที่เข้าใจได้ในขณะที่เขียน ขั้นตอนสุดท้ายคือการลบความคิดเห็นทั้งหมดและช่องว่างที่ซ้ำซ้อน นี้เป็นงานที่น่าเบื่อและไม่สนใจซึ่งจริงๆควรจะทำโดยนักศึกษาฝึกงานโปรแกรมคอมพิวเตอร์ งาน เขียนโปรแกรมหรือฟังก์ชั่นที่กำจัดความคิดเห็นและช่องว่างที่ซ้ำซ้อนจากบางแหล่ง "pre-golfed" C ตามกฎต่อไปนี้: \(ทับขวา) เป็นตัวสุดท้ายในสายเป็นความต่อเนื่องบรรทัด หากคุณพบสิ่งนี้คุณต้องถือว่าบรรทัดต่อไปนี้เป็นส่วนหนึ่งของสายตรรกะเดียวกัน(ตัวอย่างเช่นคุณสามารถลบ\และต่อไปนี้\n(ขึ้นบรรทัดใหม่) อย่างสมบูรณ์ก่อนที่จะทำสิ่งอื่นใด) //ความคิดเห็นที่จะใช้รูปแบบหนึ่งบรรทัดที่เริ่มต้นด้วย ดังนั้นเมื่อต้องการลบออกคุณจะไม่สนใจส่วนที่เหลือของบรรทัดโลจิคัลที่ใดก็ตามที่คุณพบ//นอกสตริงตัวอักษร (ดูด้านล่าง) อักขระช่องว่างคือ(ช่องว่าง), \t(แท็บ) และ\n(ขึ้นบรรทัดใหม่ดังนั้นนี่คือจุดสิ้นสุดของบรรทัดตรรกะ) เมื่อคุณค้นหาลำดับของช่องว่างให้ตรวจสอบอักขระที่ไม่ใช่ช่องว่างที่ล้อมรอบ ถ้า ทั้งคู่เป็นตัวอักษรและตัวเลขหรือขีดล่าง (ช่วง[a-zA-Z0-9_]) หรือ ทั้งสอง+หรือ ทั้งสอง-หรือ สิ่งที่มาก่อนคือ/และสิ่งที่ตามมาคือ* จากนั้นแทนที่ลำดับด้วยอักขระช่องว่าง ( ) มิฉะนั้นให้กำจัดลำดับทั้งหมด กฎนี้มีข้อยกเว้นบางประการ : คำสั่งของโปรเซสเซอร์ล่วงหน้าจะต้องปรากฏในบรรทัดของตัวเองในผลลัพธ์ของคุณ สั่ง …
12 code-golf  c 

2
ฉันจะย่อรหัสหลามนี้ได้อย่างไร
นี่คือรหัสที่ฉันต้องการย่อ n=input() while n: s=raw_input() x,r,g,b=(int(x) for x in s.split()) a=x/r%2 c=x/g%2 d=x/b%2 r=((a*10+c)*10)+d if r==0:e="black" elif r==100:e="red" elif r==1:e="blue" elif r==10:e="green" elif r==101:e="magenta" elif r==11:e="cyan" elif r==110:e="yellow" else:e="white" print(e) n-=1 อินพุต: 3 4643 5913 4827 9752 5583 5357 5120 9400 2025 5475 4339 8392 เอาท์พุท: black yellow black
12 code-golf  tips  python 

15
ตัวเลขที่สลับกัน
พิจารณาอาร์เรย์ของจำนวนเต็มบวก: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, ... จากนั้นเรียงต่อกัน: 1234567891011121314151617181920212223242526... แล้วแยกออกเป็นส่วน ๆ ของความยาวแปรผันแต่ละความยาวเท่ากับจำนวนเต็มบวกN th: [1][23][456][7891][01112][131415][1617181][92021222][324252627][2829303132] ... --------------------------------------------------------------------------- 1 2 3 4 5 6 7 8 9 10 ... งาน รับจำนวนเต็มN (บวกสำหรับการจัดทำดัชนี 1 หรือไม่เป็นลบสำหรับการจัดทำดัชนี 0) งานของคุณคือการส่งออกผลรวมของเดลต้าของตัวเลขในก้อนที่N (ความแตกต่างระหว่างตัวเลขต่อเนื่อง) ช่องโหว่ที่ต้องห้ามที่เป็นค่าเริ่มต้นจะมีผล ใช้วิธีการอินพุตและเอาต์พุตมาตรฐาน คุณอาจเลือกที่ 0 หรือ 1 การจัดทำดัชนีสำหรับN …

1
ทำลายสตริง!
ท้าทาย รับอินพุตสตริงส่งออกเวอร์ชันที่ทำลายแล้ว กระบวนการ P r Pr r o o o g g g r r r rogr r a -> a -> a -> a -> a -> -> -> -> -> m m m m m m m m m m mmar m i i i i i i …

15
สร้างลำดับตัวชี้
ช่วยให้กำหนดลำดับตัวชี้ไปเป็นลำดับใด ๆ ดังกล่าวที่A (n) = a ((n-1) - (หนึ่ง (n-1))) forall nมากกว่าจำนวน จำกัด บางอย่าง ตัวอย่างเช่นถ้าลำดับของเราเริ่มต้นด้วย 3 2 1 เทอมถัดไปของเราจะเป็น2เพราะ(n-1) = 1 , (n-1) -1 = 1 , a (1) = 2 (ตัวอย่างนี้คือดัชนีศูนย์ แต่ไม่สำคัญว่าดัชนีใดที่คุณใช้การคำนวณจะ เหมือนเดิมเสมอ) ถ้าเราทำซ้ำกระบวนการเราจะได้ลำดับที่ไม่มีที่สิ้นสุด 3 2 1 2 2 1 2 2 1 2 2 1 2 2 1 …

23
รวมความหมายของจำนวนเต็มสองจำนวน
คณิตศาสตร์มีวิธีการค่อนข้างน้อยเช่นค่าเฉลี่ยเลขคณิตค่าเฉลี่ยเรขาคณิตและอื่น ๆ ... คำจำกัดความและภารกิจ โปรดทราบว่าสิ่งเหล่านี้เป็นคำจำกัดความของจำนวนเต็มบวกสองตัว : สแควร์รูทเฉลี่ยคือสแควร์รูทของผลรวมของสี่เหลี่ยมจัตุรัสลดลงครึ่งหนึ่ง ( ) มัชฌิมเลขคณิตคือผลรวมของพวกเขาลดลงครึ่งหนึ่ง ( ) เฉลี่ยเรขาคณิตเป็นรากที่สองของผลิตภัณฑ์ของพวกเขา ( ) เฉลี่ยฮาร์โมนิเป็น2หารด้วยผลรวมของการแปรผกผันกันของพวกเขา ( = ) ได้รับสองจำนวนเต็มและข ดังกล่าวว่ามี b ∈ [1, + ∞)สรุปวิธีการดังกล่าวข้างต้นของและข คำตอบของคุณจะต้องแม่นยำอย่างน้อย 3 ตำแหน่งทศนิยม แต่คุณไม่ต้องกังวลเกี่ยวกับข้อผิดพลาดความแม่นยำในการปัดเศษหรือทศนิยม กรณีทดสอบ a, b -> เอาท์พุท 7, 6 -> 25.961481565148972 10, 10 -> 40 23, 1 -> 34.99131878607909 2, 4 -> …

11
หมายเลขสรุปตนเอง
แปลงตัวเลขเป็นผลรวมของตัวเลข ไม่ใช่ผลรวมใด ๆ :เราต้องการผลรวมที่สั้นที่สุด ไม่ใช่ตัวเลขใด ๆ :คุณสามารถใช้ตัวเลขได้เท่านั้น ตัวอย่าง คุณจะได้รับเป็นอินพุตจำนวนเต็มn>0 n=27สมมติว่า คุณต้องแสดง27เป็นผลรวมโดยใช้เฉพาะตัวเลข [2,7]ในทางที่สั้นที่สุด คุณไม่จำเป็นต้องใช้ตัวเลขทั้งหมดของตัวเลขที่กำหนด! 27=2+2+2+7+7+7ดังนั้น จากนั้นเราจะใช้ตัวเลขเหล่านั้นและนับพวกเขา[2,2,2,7,7,7] : คำตอบสุดท้ายสำหรับn=27คือ6 อีกตัวอย่างหนึ่งn=195เพื่อให้ได้ผลรวมสั้นที่สุดเราต้องใช้ตัวเลขต่อไปนี้: [5,5,5,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9]และคำตอบคือ23 ความท้าทาย รับจำนวนเต็มn>0ส่งออกจำนวนหลักขั้นต่ำ (มีอยู่ในจำนวน) ที่รวมถึงจำนวนนี้ กรณีทดสอบ Input->Output 1->1 2->1 10->10 58->8 874->110 1259->142 12347->1765 123456->20576 3456789->384088 นี่คือรหัสกอล์ฟคำตอบที่สั้นที่สุดเป็นไบต์ชนะ!

30
อุปกรณ์ของฉันทำงานผิดปกติ ... ละเมิดพฤติกรรมสตริงที่ไม่ได้กำหนด!
ช่วยด้วย! อุปกรณ์ของฉันทำงานผิดปกติและเมื่อใดก็ตามที่ฉันพยายามที่จะทำซ้ำสตริงฉันได้รับผลลัพธ์ที่ยุ่งเหยิง แทนที่จะทำซ้ำสตริงเดิมNครั้งมันจะเติมตารางNxNด้วยอักขระแต่ละตัวและเติมสี่เหลี่ยมขึ้น ตัวอย่างเช่นกำหนด String "Test"และจำนวน2แทนที่จะ"TestTest"ได้รับ: TT TT ee ee ss ss tt tt หลังจากที่ฉันเห็นสิ่งนี้มาระยะหนึ่งฉันก็เริ่มชอบมัน งานของคุณในวันนี้คือการทำซ้ำพฤติกรรมที่แปลกประหลาดนี้ รับสตริงที่ไม่ว่างซึ่งประกอบด้วย ASCII ที่พิมพ์ได้เท่านั้นและจำนวนเต็มบวกส่งออกอุปกรณ์ของฉันที่ชำรุด String ใช้กฎมาตรฐานทั้งหมด อินพุตและเอาต์พุตอาจได้รับการจัดการผ่านค่าเฉลี่ยที่สมเหตุสมผล นี่คือโค้ดกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์ในแต่ละภาษาจะชนะ กรณีทดสอบ อินพุต เอาท์พุต ---------- "ทดสอบ", 2 TT TT จ จ เอสเอส เอสเอส TT TT ---------- "UuU", 3 UUU UUU UUU uuu uuu uuu UUU UUU UUU ---------- …
12 code-golf  string 

7
จำนวนผลรวมของปัจจัย
ป.ร. ให้ไว้เป็นจำนวนเต็มบวกn> 1ตรวจสอบจำนวนตัวเลขที่สามารถทำได้โดยการเพิ่มจำนวนเต็มสินค้ามากกว่า 1 ซึ่งเป็นn ตัวอย่างเช่นถ้าn = 24เราสามารถแสดงnเป็นผลิตภัณฑ์ในวิธีต่อไปนี้ 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 …

5
Mozilla / 1.0 Mozilla / 2.0 Mozilla / 3.0 Mozilla / 4.0 Mozilla / 5.0
ในตอนแรกมี NCSA Mosaic และ Mosaic เรียกตัวเองNCSA_Mosaic/2.0 (Windows 3.1)และ Mosaic แสดงรูปภาพพร้อมข้อความและมีความยินดีอย่างมาก 15 ปีต่อมา ... จากนั้น Google ก็สร้าง Chrome และ Chrome ใช้ Webkit และมันก็เหมือนกับ Safari และต้องการหน้าเว็บที่สร้างขึ้นสำหรับ Safari และแสร้งทำเป็นเป็น Safari ดังนั้น Chrome จึงใช้ WebKit และแสร้งเป็น Safari และ WebKit แกล้งเป็น KHTML และ KHTML แกล้งทำเป็นตุ๊กแกและเบราว์เซอร์ทั้งหมดแกล้งทำเป็น Mozilla และ Chrome เรียกตัวเองMozilla/5.0 (Windows; U; Windows NT 5.1; en-US) …

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