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

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

12
การตรวจจับการลงคะแนนแบบอนุกรม
Stack Exchange จะตรวจจับการลงคะแนนแบบอนุกรมโดยอัตโนมัติ(เมื่อผู้ใช้รายหนึ่ง upvotes หรือ downvotes โพสต์ของผู้ใช้อื่นจำนวนมาก) และกลับรายการ ในการท้าทายนี้คุณจะต้องใช้เครื่องตรวจจับ "การลงคะแนนแบบอนุกรม" ที่ง่ายมาก ๆ อินพุต อินพุตเป็นสตริงที่แสดงรายการคะแนนโหวต ทุกกลุ่มของตัวละครทั้งสองแสดงถึงการลงคะแนน - กลุ่มแรกคือผู้ลงคะแนนเสียงและอีกกลุ่มคือผู้ใช้ที่ได้รับการโหวต ตัวอย่างเช่นอินพุตต่อไปนี้ ababbccd สามารถแยกวิเคราะห์เป็นab ab bc cdและแสดงถึงการaลงคะแนนในbสองครั้งการ bลงคะแนนในcครั้งเดียวและการcลงคะแนนในdครั้งเดียว การป้อนข้อมูลจะประกอบด้วยตัวอักษรตัวพิมพ์เล็กเท่านั้นและมันก็จะยิ่งยาว> 0 นอกจากนี้คุณยังไม่สามารถลงคะแนนในตัวเอง (จึงไม่มีaaหรือhh) เอาท์พุต สำหรับจุดประสงค์ของการท้าทายนี้การลงคะแนนแบบอนุกรมถูกกำหนดให้เป็นการลงคะแนนเสียงของผู้ใช้ที่ให้แก่ผู้ใช้รายอื่น ๆ สามครั้งขึ้นไป ผลลัพธ์คือจำนวนโหวตควรกลับสำหรับผู้ใช้แต่ละ (นั่นคือวิธีการโหวตจำนวนมากเกี่ยวกับผู้ใช้แต่ละคนได้รับกลับไม่ได้เป็นจำนวนเสียงที่พวกเขาได้รับเป็นตรงกันข้าม) [user][votes][user2][votes2]...ในรูปแบบ ตัวอย่างเช่นอินพุทของabababab(การaลงคะแนนbสี่ครั้ง) ควรเอาท์พุท b4(โหวตสี่ครั้งถูกย้อนกลับจากaเป็นb) เอาต์พุตอาจอยู่ในลำดับใดก็ได้ที่คุณต้องการ แต่ทั้งอินพุตและเอาต์พุตจะต้องเป็นสตริงเดี่ยวตามที่อธิบายไว้ข้างต้น กรณีทดสอบ In Out --------------------------------------------------------------------------- abababcbcbcbcbbababa b7a3 edfdgdhdfgfgfgih g3 jkkjjkkjjkkjljljljmlmlnmnmnm j6k3m3 …
51 code-golf 

18
กล่องดนตรี 4-note ของฉันสามารถเล่นเพลงนั้นได้หรือไม่?
ฉันมีกล่องดนตรีที่หมุนได้ซึ่งสามารถเล่นโน้ตสี่ชุดได้ เมื่อฉันหมุนข้อเหวี่ยงมันจะดึงหนึ่งในสี่สายขึ้นอยู่กับตำแหน่งของข้อเหวี่ยงและทิศทางของการเลี้ยว เมื่อข้อเหวี่ยงหมุนไปทางเหนือกล่อง (ที่มีหมายเลขกำกับตั้งแต่ 1 ถึง 4) จะเป็นดังนี้: 1 | 2 | O 4 3 จากตรงนั้นฉันสามารถหมุนข้อเหวี่ยงตามเข็มนาฬิกาเพื่อถอนสาย # 2 และชี้จุดหมุนตะวันออก: 1 2 O--- 4 3 หรือฉันอาจหมุนทวนเข็มนาฬิกาจากทิศเหนือเพื่อเล่นสตริง # 1 และจบลงด้วยข้อเหวี่ยงชี้ไปทางทิศตะวันตก: 1 2 ---O 4 3 เมื่อถึงเวลาใดก็ตามกล่องสามารถเล่นหนึ่งในสองโน้ต: โน้ตถัดไปที่มีในทิศทางตามเข็มนาฬิกาหรือโน้ตถัดไปในทิศทางทวนเข็มนาฬิกา ท้าทาย ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ยอมรับสตริงโน้ตที่ไม่ว่างเปล่า (เช่นตัวเลข1ผ่าน4) และพิจารณาว่าเป็นไปได้หรือไม่ที่จะเล่นลำดับของโน้ตบนกล่องดนตรี สร้างผลลัพธ์ที่เป็นจริงหรือเป็นเท็จเพื่อระบุความสามารถในการเล่นหรือไม่สามารถเล่นได้ของอินพุต หมายเหตุบางส่วน: อินพุตไม่มีข้อสันนิษฐานเกี่ยวกับตำแหน่งเริ่มต้น อินพุต214(เริ่มต้นทางทิศตะวันออกและเคลื่อนไหวทวนเข็มนาฬิกาอย่างเคร่งครัด) และ234(เริ่มต้นทางทิศเหนือและเคลื่อนไหวตามเข็มนาฬิกาอย่างเคร่งครัด) และใช้ได้ทั้งคู่ ข้อเหวี่ยงอาจเคลื่อนที่อย่างอิสระในทิศทางใดทิศทางหนึ่งหลังจากแต่ละโน้ต ชุดของบันทึกย่อเดียวกันเป็นไปได้ (เช่น, 33333) โดยการย้ายไปมาผ่านหนึ่งสาย …

15
รหัสความท้าทายกอล์ฟ m'kay
Mr. Mackeyเป็นตัวละครSouth Park ที่รู้จักกันดีในการเพิ่ม "m'kay" ในทุกสิ่งที่เขาพูด เขียนโปรแกรมหรือฟังก์ชั่นที่แปลงข้อความเป็นสิ่งที่นายแม็คกี้พูด ตำแหน่ง M'kay m'kayมีการสุ่มโอกาส 50%ที่จะถูกเพิ่มเข้ามาหลังจากเครื่องหมายวรรคตอน,, .,?!และ หากเป็นกรณีนั้นจะถูกตามด้วยเครื่องหมายวรรคตอนเดียวกันที่มาก่อนและนำหน้าด้วยช่องว่าง ตัวอย่างเช่นในประโยคTest, test.มีสองสถานที่ที่m'kayสามารถเพิ่ม: หลังเครื่องหมายจุลภาคและหลังช่วงเวลาโดยมีโอกาส 50% ในแต่ละสถานที่ ผลลัพธ์ที่เป็นTest, m'kay, testไปได้คือ หรือหรือTest, test. M'kay.Test, m'kay, test. M'kay. ต้องมีการเพิ่มอย่างน้อยหนึ่งรายการm'kayเสมอ ยิ่งไปกว่านั้นมันไม่ได้อยู่ในสถานที่เดียวกันเสมอและแต่ละสถานที่ที่ถูกต้องซึ่งm'kayสามารถเพิ่มได้ต้องเกิดขึ้นด้วยความน่าจะเป็นที่เท่ากัน นั่นคือคุณไม่สามารถเพิ่มเสมอในตอนท้ายของสตริงเพราะถ้าคุณไม่เคยแบบแผนใด ๆm'kay เพิ่ม m'kayหากมีเพียงหนึ่งรายการm'kayจะต้องมีความน่าจะเป็นเหมือนกันที่จะปรากฏในแต่ละตำแหน่งที่ถูกต้องแม้ว่าจะมีการบังคับใช้ หากm'kayคือหลังจากที่?, .หรือ!ที่mจะต้อง uppercased จำนวนmในm'kayจะต้องรับ uniformely ระหว่างวันที่ 1 และ 3 นั่นคือm'kay, mm'kayและmmm'kayเป็นทางเลือกที่เป็นไปได้ทั้งหมดในแต่ละที่มีความน่าจะเป็น 0.33 ... ถ้ามันจะต้อง uppercased (ดูด้านบนกฎ) ทั้งหมดmจะต้อง …
51 code-golf  string 

20
ตรวจจับการเดินทางข้ามเวลา
คอมพิวเตอร์มีอยู่ทุกที่ในปัจจุบันไม่ว่าจะเป็นรถยนต์รถไฟสเก็ตบอร์ดเครื่องปฏิกรณ์นิวเคลียร์ ความเป็นไปได้ที่ซอฟต์แวร์ของคุณจะทำงานในเวลาเดินทางเป็นเพียงเรื่องของเวลา คุณสามารถจัดการกับมันได้หรือไม่ อย่างน้อยคุณสามารถตรวจจับได้หรือไม่ งานของคุณ: เขียนโปรแกรมที่ลูปและทำการสืบค้นเวลาของระบบเพื่อตรวจจับการเดินทางข้ามเวลา หากเวลาเลื่อนไปข้างหน้าหนึ่งวันขึ้นไประหว่างการค้นหาสองครั้งติดต่อกันแสดงว่าเป็นการเดินทางข้ามเวลา ในกรณีนี้โปรแกรมของคุณควรพิมพ์: TS TS: YYYY? You mean we're in the future? หากเวลาย้อนกลับไประหว่างจำนวนข้อความค้นหาสองรายการติดต่อกันเป็นเวลาย้อนหลัง ในกรณีนี้โปรแกรมของคุณควรพิมพ์: TS TS: Back in good old YYYY. TS TSคือการประทับเวลาก่อนและหลังการเดินทางข้ามเวลา YYYYเป็นปีปลายทาง การประทับเวลาอาจอยู่ในรูปแบบใด ๆ ที่มีอย่างน้อย 4 หลักปี, เดือน, วัน, ชั่วโมง, นาทีและวินาทีโดยคั่นด้วยตัวเลขที่ไม่ใช่ ข้อ จำกัด : คุณต้องสนับสนุนวันที่ในศตวรรษที่ 19, 20 และ 21 อย่างน้อย คุณต้องใช้ภาษาที่มีอยู่ก่อนการโพสต์ความท้าทายนี้ คุณต้องโพสต์คำตอบของคุณหลังจากโพสต์ความท้าทายนี้แล้วเท่านั้น คุณต้องใช้ภาษาที่มีอยู่ก่อนคำตอบของคุณโพสต์ …
51 code-golf  date 

24
Minecraft มิเรอร์
นี่คือคาลวิน เพียงแค่พยายามที่จะได้รับ 20 ตัวแทนเพื่อให้ผู้ใช้สามารถแชทในห้องสนทนา PPCG Minecraft เซิร์ฟเวอร์ เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวก หากจำนวนเต็มเป็นเลขคู่ (2, 4, 6, ... ) ให้พิมพ์หรือคืนค่าสตริงศิลปะ ASCII ที่แน่นอน: __ __ __ __ ___ /\ /\ | |\ | | / | | /\ | | / \/ \ | | \ | |-- | |--\ /__\ |-- | / \ | …

30
สร้างเศษส่วน mandelbrot [ปิด]
งานของคุณคือการวาดชุดดอกแดนบอทใน ascii มันควรมีลักษณะเหมือน จำนวนที่ซับซ้อนcอยู่ในทาจิกิสถานเมื่อลำดับz(n+1) = z(n)^2 + c, z(0) = 0ยังคงล้อมรอบ สำหรับวัตถุประสงค์ของการท้าทายนี้คุณสามารถพิจารณาลำดับที่สิ้นสุดสำหรับถ้าc|z(32)| < 2 พล็อตชุดดอกแดนดิบอตที่ตั้งอยู่บนระนาบเชิงซ้อนจาก (-2 - i) ถึง (1 + i) และความละเอียดขั้นต่ำ 40x30 โดยใช้ตัวอักษร ASCII ในภาษาที่คุณชื่นชอบโดยใช้ตัวละครน้อยที่สุด

30
กำหนดเวอร์ชันภาษาของคุณ
ความท้าทายของคุณคือการเขียนรูปหลายภาษาที่ทำงานในภาษาของคุณในเวอร์ชันที่แตกต่างกัน เมื่อเรียกใช้มันจะส่งออกเวอร์ชันภาษาเสมอ กฎระเบียบ โปรแกรมของคุณควรทำงานในภาษาของคุณอย่างน้อยสองเวอร์ชัน ผลลัพธ์ของโปรแกรมของคุณควรเพียงเป็นหมายเลขรุ่น ไม่มีข้อมูลภายนอก โปรแกรมของคุณอาจใช้วิธีการใดก็ได้ที่คุณต้องการกำหนดหมายเลขรุ่น อย่างไรก็ตามผลลัพธ์จะต้องเป็นไปตามกฎ 2 อย่างไรก็ตามคุณกำหนดหมายเลขเวอร์ชันผลลัพธ์จะต้องเป็นตัวเลขเท่านั้น โปรแกรมของคุณต้องการส่งออกเวอร์ชันภาษาหลักเท่านั้น ตัวอย่างเช่นใน FooBar 12.3.456789-beta โปรแกรมของคุณจะต้องให้ผลลัพธ์ 12 เท่านั้น หากภาษาของคุณใส่คำหรือสัญลักษณ์ไว้ข้างหน้าหรือหลังหมายเลขเวอร์ชั่นคุณไม่จำเป็นต้องส่งออกหมายเลขเหล่านั้น ตัวอย่างเช่นใน C89 โปรแกรมของคุณจำเป็นต้องพิมพ์89เท่านั้นและใน C ++ 0x โปรแกรมของคุณต้องพิมพ์0เท่านั้น หากคุณเลือกที่จะพิมพ์ชื่อเต็มหรือหมายเลขรุ่นรองเช่น C89 เมื่อเทียบกับ C99 นั้นจะต้องเพียงพิมพ์ชื่อ C89 build 32ถูกต้องในขณะที่error in C89 build 32: foo barไม่ โปรแกรมของคุณไม่สามารถใช้แฟล็กคอมไพเลอร์ในตัวแมโครหรือกำหนดเองเพื่อกำหนดรุ่นภาษา เกณฑ์การให้คะแนน คะแนนของคุณจะเป็นความยาวของรหัสหารด้วยจำนวนรุ่นที่ใช้งานได้คะแนนต่ำสุดชนะได้โชคดี!

30
หมีขั้วโลก, หมีขั้วโลก, คุณได้ยินเสียงอะไร?
ข้อความของหนังสือสำหรับเด็กPolar Bear, Polar Bear, What Do Hear Hear? มีรูปแบบที่ง่ายมาก คุณอาจใช้ข้อความเพื่อสอนแนวคิดการเขียนโปรแกรมเบื้องต้น ลูกชายของฉันเบื่อกับความคิดนี้อย่างรวดเร็วดังนั้นฉันจึงตัดสินใจเล่นกอล์ฟด้วยความคิดแทน ความท้าทาย ในภาษาการเขียนโปรแกรมที่คุณเลือกเขียนโปรแกรมที่เล็กที่สุดเท่าที่จะเป็นไปได้ซึ่งจะพิมพ์ข้อความต่อไปนี้ ผลลัพธ์ควรตรงกันทุกประการรวมถึงตัวพิมพ์เล็กช่องว่างและเครื่องหมายวรรคตอน Polar Bear, Polar Bear, what do you hear? I hear a lion roaring in my ear. Lion, Lion, what do you hear? I hear a hippopotamus snorting in my ear. Hippopotamus, Hippopotamus, what do you hear? …

18
มดสำคัญ prime
"มดหลัก" เป็นสัตว์ดื้อรั้นที่นำทางจำนวนเต็มและหารพวกมันจนกว่าจะเหลือเฉพาะช่วงเวลาเท่านั้น! เริ่มแรกเรามีอาร์เรย์อนันต์ A ที่มีจำนวนเต็มทั้งหมด> = 2: [2,3,4,5,6,.. ] อนุญาตpเป็นตำแหน่งของมดในอาร์เรย์ เริ่มแรกp = 0(อาเรย์ถูกทำดัชนี 0) แต่ละเทิร์นมดจะเคลื่อนที่ดังนี้: ถ้าA[p]เป็นไพรม์มดจะย้ายไปยังตำแหน่งถัดไป:p ← p+1 มิฉะนั้นถ้าA[p]เป็นจำนวนคอมโพสิตให้qเป็นตัวหารเล็ก> 1. เราแบ่งA[p]โดยq, และเราเพิ่มไปq A[p-1]มดเคลื่อนไปยังตำแหน่งก่อนหน้า:p ← p-1 นี่เป็นท่าแรกสำหรับมด: 2 3 4 5 6 7 8 9 ... ^ 2 3 4 5 6 7 8 9 ... ^ 2 3 4 5 …

30
Helloellolloloo WorldWorldrldldd
จัดทำโปรแกรมที่ใช้คำที่คุณป้อนและเพิ่มคำนั้นไว้ที่ด้านหลังของตัวเองลบด้วยตัวอักษรตัวแรกจากนั้นทำซ้ำจนกว่าตัวอักษรทั้งหมดจะหายไป ยกตัวอย่างเช่นcatจะกลายเป็นcatattและจะกลายเป็นhellohelloellolloloo ป้อนข้อมูล ใด ๆ ของ 26 ตัวอักษรของตัวอักษรภาษาอังกฤษ อาจมีหลายคำคั่นด้วยช่องว่างและควรใช้การเปลี่ยนแปลงกับทุกคำ เอาท์พุท คำที่ป้อนเข้าโดยที่แต่ละคำใส่ตัวอักษรตัวแรกหายไปจากนั้นตัวอักษรตัวที่สองหายไปเรื่อย ๆ จนกว่าจะไม่มีตัวอักษรเพิ่มอีก ตัวอย่างเพิ่มเติม: ill eel เอาท์พุท illlll eelell laser bat เอาท์พุท laserasersererr batatt darth vader เอาท์พุท dartharthrththh vaderaderdererr นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดชนะ Clarification: คุณสามารถปฏิบัติต่ออินพุตหรือเอาต์พุตเป็นรายการ คุณสามารถแยกคำด้วยการขึ้นบรรทัดใหม่แทนที่จะเว้นวรรค คุณสามารถเพิ่มช่องว่างต่อท้ายไปยังอินพุต
50 code-golf  string 

30
แสดงตัวคูณร่วมน้อย
รับจำนวนเต็มบวกสองตัว A และ B แสดงให้เห็นถึงผลคูณที่น้อยที่สุดของพวกมันโดยแสดงเครื่องหมายขีดคั่นสองบรรทัด ( -) ด้วยความยาวLCM (A, B) หลังจากเปลี่ยนทุกเส้นประ Ath ในบรรทัดแรกและเส้นประ Bth ทุกเส้นในบรรทัดที่สองด้วยแถบแนวตั้ง ( |) ด้วยวิธีนี้จุดสิ้นสุดของแต่ละบรรทัดจะเป็นเส้นที่สอง|เท่านั้น ตัวอย่างเช่นถ้า A = 6 และ B = 4, LCM (6, 4) = 12 ดังนั้น: two lines of 12 dashes: ------------ ------------ replace every 6th dash in the first line with a vertical …

30
พิมพ์วลี“ และเธอพูดว่า 'แต่นั่นเป็นของเขา'” ใช้ตัวอักษรเท่านั้น
พิมพ์วลีAnd she said, 'But that's his.'โดยใช้เฉพาะอักขระต่อไปนี้: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ไม่มีเครื่องหมายวรรคตอนหรืออักขระที่ไม่ใช่ตัวอักษรใด ๆ คุณสามารถใช้ภาษาการเขียนโปรแกรมอะไรก็ได้ที่คุณต้องการ ช่องว่างได้รับอนุญาตอย่างสมบูรณ์ โปรแกรมที่สั้นที่สุดชนะ

30
ค้นหาจำนวนที่เล็กที่สุดที่ไม่ได้หาร N
ความท้าทายนี้จะง่ายพอที่จะเป็นพื้นทั้งหมดในชื่อเรื่อง: คุณได้รับเป็นจำนวนเต็มบวกNและคุณควรจะกลับจำนวนเต็มบวกที่เล็กที่สุดซึ่งไม่ได้เป็นตัวหารของN ตัวอย่าง: หารของN = 241, 2, 3, 4, 6, 8, 12, 24มี จำนวนเต็มบวกที่เล็กที่สุดซึ่งไม่ได้อยู่ในรายการนั้นคือ5ดังนั้นนั่นคือผลลัพธ์ที่โซลูชันของคุณควรค้นหา นี่คือลำดับ OEIS A007978 กฎระเบียบ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานของเราในการรับอินพุตและให้เอาต์พุต คุณอาจใช้ภาษาการเขียนโปรแกรมใด ๆแต่โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามตามค่าเริ่มต้น นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ กรณีทดสอบ 100 คำแรกคือ: 2, 3, 2, 3, 2, 4, 2, 3, 2, 3, 2, 5, 2, 3, 2, 3, 2, 4, 2, 3, 2, …

30
ขั้นตอนนี้ใช้เวลากี่ขั้นตอนจาก n ถึง 1 โดยการลบตัวหารที่ยิ่งใหญ่ที่สุดออกไป
แรงบันดาลใจจากคำถามนี้มากกว่าที่คณิตศาสตร์ ปัญหา ให้เป็นจำนวนธรรมชาติn ≥ 2ใช้ตัวหารที่ใหญ่ที่สุดของn- ซึ่งจะแตกต่างจากnตัวเอง - nและลบได้จาก 1ทำซ้ำจนกว่าคุณจะได้รับ คำถาม มันไม่กี่ขั้นตอนใช้เวลาไปถึงจำนวนที่กำหนด1n ≥ 2 ตัวอย่างโดยละเอียด n = 30ให้ ตัวหารที่ยิ่งใหญ่ที่สุดของ: 1. 30 is 15 --> 30 - 15 = 15 2. 15 is 5 --> 15 - 5 = 10 3. 10 is 5 --> 10 - 5 = 5 4. 5 …

30
ยืดคำ
อินพุตเป็นคำของตัวอักษรตัวพิมพ์เล็กที่ไม่คั่นด้วยช่องว่าง ขึ้นบรรทัดใหม่ในตอนท้ายเป็นตัวเลือก คำเดียวกันจะต้องส่งออกในเวอร์ชันที่แก้ไข: สำหรับตัวละครแต่ละตัวให้เพิ่มเป็นสองเท่าในครั้งที่สองที่ปรากฏในคำเดิมให้เพิ่มเป็นสามเท่าในครั้งที่สามเป็นต้น อินพุตตัวอย่าง: bonobo ตัวอย่างผลลัพธ์: bonoobbooo ใช้กฎ I / O มาตรฐาน รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ การทดสอบโดย @Neil: tutu -> tuttuu queue -> queuuee bookkeeper -> boookkkeeepeeer repetitive -> repeetittiiveee uncopyrightables -> uncopyrightables abracadabra -> abraacaaadaaaabbrraaaaa mississippi -> misssiisssssssiiipppiiii

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