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

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

3
วิธีรับจำนวน
ได้รับการป้อนข้อมูลของหมายเลขแรกและจำนวนที่สอง (ทั้งจำนวนเต็มบวกศูนย์ exluded) ที่กำหนดในหลายวิธีที่คุณสามารถทำออกมาสองคนแรกที่ใช้การดำเนินการดังต่อไปนี้+1, และ+2 *3การดำเนินการถูกนำไปใช้เพียงแค่จากซ้ายไปขวา ตัวอย่าง: อินพุต: 1 2. ผลลัพธ์: 1. คือคุณทำได้แค่2ทำ+1อย่างเดียว อินพุต: 1 3. ผลลัพธ์: 3. เช่นคุณสามารถรับ 3 โดยทำ+2หรือ+1+1, หรือ*3 อินพุต: 1 4. ผลลัพธ์: 4. อินพุต: 2 6. ผลลัพธ์: 6. อินพุต: 2 7. ผลลัพธ์: 9. อินพุต: 1 10. ผลลัพธ์: 84. ในกรณีที่มีอยู่ไม่มีวิธีเช่น100 100หรือเอาท์พุทเป็น100 800 คุณสามารถป้อนข้อมูลเป็นอาร์เรย์หรือสตริงด้วยตัวคั่นที่สะดวกได้ ทางออกที่สั้นที่สุดชนะ

6
ค้นหาเส้นทาง!
คุณต้องเขียนโปรแกรมหรือฟังก์ชั่น อินพุตเป็น 'แผนที่' ของตัวเลข คุณสามารถเลือกที่จะใช้แผนที่เป็นสตริงที่มีอักขระบรรทัดใหม่ ( \n) หรืออาร์เรย์ของสตริง 2D แผนที่ทั้งหมดเป็น 5 ตัวอักษร 5 ตัวและตัวละครจะเป็นตัวเลขมากกว่า 0 หรือเว้นวรรคเสมอ นี่คือตัวอย่างของแผนที่: 12 45 11233 233 1 2 899 งานของคุณคือการค้นหาส่วนประกอบที่เชื่อมต่อในแผนที่ ส่วนประกอบที่ถูกต้องคือชุดของอย่างน้อยสามแนวนอนและ / หรือแนวตั้ง ( ไม่ใช่แนวทแยงมุม ) ตัวเลขที่เหมือนกันที่เชื่อมต่อ ( ไม่เว้นวรรค ) จากนั้นคุณจะต้องแทนที่อักขระของส่วนประกอบที่เชื่อมต่อที่ถูกต้องด้วยxs และพิมพ์หรือส่งคืนผลลัพธ์นั้น ดังนั้นผลลัพธ์สำหรับตัวอย่างข้างต้นจะเป็น: x2 45 xx2xx 2xx 1 2 899 นี่คืออีกกรณีทดสอบ (ขอบคุณ Martin Ender): Input: …

2
พิสูจน์ว่าตัวเลขเป็นพีชคณิต
ได้รับแรงบันดาลใจจากคำตอบนี้ (เหมืองที่เน้น): เราจะเล่นเกม สมมติว่าคุณมีบางหมายเลขx คุณเริ่มต้นด้วยxจากนั้นคุณสามารถเพิ่ม, ลบ, คูณหรือหารด้วยจำนวนเต็มใด ๆ ยกเว้นศูนย์ คุณยังสามารถคูณด้วยx คุณสามารถทำสิ่งเหล่านี้ได้หลายครั้งตามที่คุณต้องการ หากผลรวมกลายเป็นศูนย์คุณจะชนะ ตัวอย่างเช่นสมมติว่าxคือ 2/3 คูณด้วย 3 แล้วลบ 2 ผลลัพธ์ที่ได้คือศูนย์ คุณชนะ! สมมติว่าxคือ 7 ^ (1/3) คูณด้วยxแล้วโดยxอีกครั้งแล้วลบ 7 คุณชนะ! สมมติว่าxคือ√2 + √3 ที่นี่ไม่ใช่เรื่องง่ายที่จะเห็นว่าจะชนะอย่างไร แต่ปรากฎว่าถ้าคุณคูณด้วยx , ลบ 10, คูณด้วยxสองครั้งแล้วบวก 1 คุณจะชนะ (สิ่งนี้ไม่ควรชัดเจน; คุณสามารถลองกับเครื่องคิดเลขได้) แต่ถ้าคุณเริ่มต้นด้วยx = πคุณจะไม่สามารถชนะได้ ไม่มีวิธีรับจากπถึง 0 หากคุณเพิ่มลบคูณหรือหารด้วยจำนวนเต็มหรือคูณด้วยπไม่ว่าคุณจะทำตามขั้นตอนจำนวนเท่าใดก็ตาม (สิ่งนี้ไม่ควรจะชัดเจนเช่นกันมันเป็นสิ่งที่ยุ่งยากมาก!) ตัวเลขเช่น√2 + √3จากการที่คุณสามารถชนะจะเรียกว่าพีชคณิต …
10 code-golf  math 

16
รหัสกอล์ฟสำหรับคนขี้เกียจ
เป้าหมายของคุณในการเล่นกอล์ฟรหัสนี้คือการรับสองสายlanguageและcode (หากรหัส golfed ที่คุณเขียนสำหรับการนี้คือ multiline ตัวแปรนี้จะเป็นแบบหลายบรรทัด)และจำนวนเต็มหนึ่งbytesตัว พวกเขาเป็นตัวแทนของตัวแปรสำหรับภาษาการเขียนโปรแกรมจำนวนไบต์ที่ใช้และรหัสตัวเอง หลังจากนั้นคุณจะจัดรูปแบบเหมือนที่นักกอล์ฟทำ answerตัวแปรที่ส่งออกเป็นสตริงหลายที่เรียกว่า คุณสามารถใช้สตริงหลายบรรทัดบน: C ++ หลาม Perl JavaScript หากคุณค้นหาStack Overflowคุณควรจะสามารถค้นหาภาษาการเขียนโปรแกรมเพิ่มเติมที่รองรับได้ นี่คือเทมเพลตของ markdown เอาต์พุต codeตัวแปรในการป้องกันรหัสและมีส่วนหัวระดับที่สอง ## {language}, {bytes} bytes {code} นี่คือลักษณะที่เอาต์พุตจะมีลักษณะเมื่อวางลงในตัวแยกวิเคราะห์ Markdown {language}, {bytes} ไบต์ {code} ตัวแปรจะถือว่าถูกกรอกไว้แล้วในขณะที่ภาษาที่คุณเขียนรหัสรายการของคุณกอล์ฟจำนวนไบต์ที่ใช้และรหัสจริงของมัน นี่เป็นอีกตัวอย่างหนึ่งของการส่งออกเป็นรหัสคราวนี้มีตัวแปรกรอก: ## JavaScript, 1337 bytes document.getElementById("foo").innerHTML = bar; นี่คือรุ่นที่เป็นข้อความอ้างอิง: JavaScript, 1337 ไบต์ document.getElementById("foo").innerHTML = bar; สามารถนำไบต์ออกจากรหัสของคุณได้หากคุณใช้วิธีตั้งค่าข้อความของ<p>องค์ประกอบใน HTML …

7
การแข่งขันจำนวนลง
งานของคุณคือการสร้างโปรแกรมที่เพิ่มตัวเลขสุ่มไปยังผลรวมก่อนหน้าในการเปิดไพ่แข่งจำนวนมาก นักแข่งแต่ละคน (คอลัมน์) เริ่มต้นที่ 0 และเพิ่ม 1 หรือ 0 เข้ากับผลรวมก่อนหน้าในแต่ละขั้นตอนของการแข่งขันจนกว่านักแข่งทุกคนจะถึงคะแนนที่จำเป็นในการชนะ ควรเลือก 1 หรือ 0 โดยการสุ่ม (นิยามมาตรฐานของการสุ่มสามารถดูได้ที่นี่ ) ผลลัพธ์จะแสดงผลลัพธ์ของการแข่งขันโดยแต่ละคอลัมน์แสดงถึงนักแข่งหนึ่งคนในรูปแบบนี้: >> racers:5,score needed:2 0 0 0 0 0 # all racers start at 0 + + + + + # add 1 0 0 0 1 # random 1 or 0 = …
10 code-golf 

10
ค้นหาการดำเนินการที่จำเป็นเพื่อให้ได้ผลลัพธ์
เพื่อให้งานนั้นง่ายชุดของตัวเลขและผลลัพธ์คุณต้องค้นหาการดำเนินการที่คุณต้องใช้กับตัวเลขจากอาร์เรย์เพื่อให้ได้ผลลัพธ์ตามที่ร้องขอ มาทำให้เป็นเรื่องง่ายสำหรับการเริ่มต้นและอนุญาตเฉพาะการดำเนินการพื้นฐานเช่น: การบวกการลบการคูณและการหาร ตัวอย่าง: Input : [5,5,5,5,5] 100 Output : 5*5*5-5*5 เพื่อให้ข้อได้เปรียบบางอย่างกับภาษาเช่น Java คำขอคือการใช้ฟังก์ชั่นไม่ใช่โปรแกรมทั้งหมดและผลลัพธ์สามารถส่งคืนผ่านพารามิเตอร์หรือพิมพ์ไปที่คอนโซล โค้ดจะทำคะแนนตามจำนวนไบต์และด้วยความท้าทายของรหัสกอล์ฟคะแนนต่ำสุดชนะ ข้อกำหนดอีกประการหนึ่งคือคุณจะได้รับ -10 คะแนนเพิ่มเติมหากอาร์เรย์มีเพียงดิดไอดีโซลูชั่นสนับสนุนที่คุณสามารถสร้างตัวเลขจากตัวเลขต่อไปนี้ กล่าวคือ Input : [1,2,3,4,5] 0 Output : 12-3-4-5 โปรดทราบว่าเอาต์พุตที่ให้มาเป็นเอาต์พุตที่เสนอบางกรณีอาจมีมากกว่าหนึ่งโซลูชัน ขึ้นอยู่กับคุณว่าคุณจะมอบโซลูชั่นอย่างน้อยหนึ่งอย่างสำหรับงานที่ได้รับ แก้ไข: ผลจะต้องถูกต้องจากมุมมองทางคณิตศาสตร์ดังนั้นการแบ่งเป็นส่วนที่มีเหตุผลไม่ใช่จำนวนเต็มและการดำเนินการที่สำคัญคือเช่นเดียวกับในคณิตศาสตร์คลาสสิก (การคูณครั้งแรกและการหารแล้วบวกและลบ)

3
ร้อยสี่เหลี่ยม!
กลับไปสู่พื้นฐาน ... ในฐานะที่เป็นครูในโรงเรียนประถม (เกรด) คุณต้องมีวิธีสอนตารางเรียนของพวกเขา ในการกำจัดของคุณคุณมีหลายร้อยสี่เหลี่ยมและโหลดปากกาสีแดง คุณจะต้องสามารถแสดงคำตอบที่ถูกต้องในชั้นเรียนได้อย่างรวดเร็ว ตอนนี้คุณฉลาดพอที่จะเขียนโปรแกรมที่สามารถทำไทม์สแควร์ได้ แต่คุณสามารถวาดมันบนร้อยตารางได้หรือไม่? ความท้าทาย เอาท์พุทสี่เหลี่ยมจตุรัสถึง stdout หรือเทียบเท่าโดยใช้รหัส ansi-escapeเพื่อแรเงาเป็นตัวเลขซึ่งเป็นทวีคูณของอินพุต เอาท์พุทกริด 10x10 ที่มีตัวเลข 1-100 ไม่สำคัญว่าจะมีการจัดตำแหน่งตัวเลข 2 หลักในแต่ละช่องตราบใดที่สอดคล้องกัน สำหรับตัวเลข 1 หลักคุณสามารถเลื่อนเป็น 2 หลักและใช้การจัดรูปแบบเดียวกับตัวเลข 2 หลักหรืออยู่กึ่งกลางของกล่อง หากตัวเลขในกล่องเป็นค่าที่ป้อนหลายค่าให้ใส่สีแดงทั้งช่อง นี่หมายความว่าทั้งกล่องไม่ใช่แค่ส่วนที่เป็นตัวเลข ตัวอย่างเช่นเมื่อได้รับการป้อนข้อมูล3ให้พิมพ์ร้อยตารางที่กำหนด นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!

13
ผลิตภัณฑ์ Dot ของ Diagonals
ความท้าทายนี้ง่ายมาก คุณได้รับเป็นอินพุตเมทริกซ์จตุรัสซึ่งแสดงด้วยวิธีใด ๆ ที่มีสติและคุณต้องส่งออกผลคูณดอทของเส้นทแยงมุมของเมทริกซ์ เส้นทแยงมุมที่เฉพาะเจาะจงคือการวิ่งแนวทแยงมุมจากซ้ายไปขวาล่างและจากบนขวาไปซ้ายล่าง กรณีทดสอบ [[-1, 1], [-2, 1]] -> -3 [[824, -65], [-814, -741]] -> 549614 [[-1, -8, 4], [4, 0, -5], [-3, 5, 2]] -> -10 [[0, -1, 0], [1, 0, 2], [1, 0, 1]] -> 1

4
บล็อกขวางค่าใช้จ่ายขั้นต่ำ
พิจารณาเมทริกซ์บล็อกแนวขวางแบบไบบล็อกซึ่งมีบล็อกสี่เหลี่ยมจัตุรัส 1s บนเส้นทแยงมุมหลักและเป็น 0 ทุกที่ ลองเรียกเมทริกซ์นั้นว่า "ถูกต้อง" ตัวอย่างเช่นต่อไปนี้เป็นเมทริกซ์ 4x4 ที่ถูกต้อง: 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 …

3
RegEx-golf: จับคู่เนื้อหาทั้งหมดในสตริง
งานของคุณคือเขียน RegEx ที่ตรงกับทุกอย่างภายในสตริง สตริงที่ถูกกำหนดให้เป็นทุกอย่างที่ล้อมรอบไปด้วย ( แต่ไม่รวม) "สองใช้ Escape "สามารถหนีออกมาโดย\ที่ยังสามารถหนีออกมาอีกครั้ง Testcases string: ab\c"defg\\\"hi"jkl"mn\\\\"opqrst"" matches: ^^^^^^^^^^ ^^^^^^ ^ (the empty string) เกณฑ์การให้คะแนน ทางออกที่สั้นที่สุดชนะ รายละเอียด โปรดระบุรสชาติที่ใช้ "การป้อนข้อมูลจะมีความสมดุล จะไม่มี\สิ่งนั้นนำหน้าสตริงเริ่มต้น - ตัวคั่นทันที ตัวอย่างเช่นคุณไม่จำเป็นต้องจัดการabc\"def"

1
วิธีการค้นหารายการในรายการที่มี f (รายการ) มีขนาดเล็กที่สุด?
ฉันมีรายชื่อและฟังก์ชั่นl ไม่ได้เพิ่มหรือลดลงอย่างเคร่งครัด ฉันจะค้นหารายการในรายการที่มีขนาดเล็กที่สุดได้อย่างไร ตัวอย่างเช่นสมมติว่ารายการคือ:fff(item) l = [1, 2, 3, 4] และlist(f(x)for x in l)คือ: [2, 9, 0, 3] f(3)เล็กกว่า f ของอันอื่นดังนั้นควรพิมพ์ "3" วิธีที่สั้นที่สุดในการทำเช่นนี้คืออะไร? ตอนแรกฉันพยายาม: min(f(x) for x in l) แต่นี้จะช่วยให้ไม่ได้0 3หากฉันกำลังถ่ายภาพเพื่อความสะดวกในการอ่านไม่กระชับฉันจะทำ: index = 0 smallest = f(l[0]) for i in range(len(l)): value = f(l[i]) if value < smallest: smallest = …
10 code-golf  tips  python 

2
สร้างสะพาน
งานของคุณคือการสร้างสะพานเพื่อเชื่อมต่อหน้าผาสองแห่งที่ให้อินพุตdระยะห่าง dจะเป็นเสมอ อย่างไรก็ตามสะพานต้องการคอลัมน์เพื่อเก็บไว้ แต่ละคอลัมน์สามารถมีช่องว่างได้สูงสุด 6 ช่องในแต่ละด้าน สำหรับตัวอย่างนี้: ________ ________ | | A | | B |----------------------| d = 22 สะพานd = 20ควรมีลักษณะเช่นนี้มีสองคอลัมน์ คอลัมน์จะไม่นับใน d _____|__________|_____ 12345|1234554321|12345 | | กฎ: ต้องมีคอลัมน์เพียงพอที่จะยืนขึ้น ต้องมีจำนวนคอลัมน์ขั้นต่ำที่จำเป็นในการยืน ต้องสมมาตร จำนวนไบต์ที่น้อยที่สุดชนะ ตัวอย่าง: (#s เพียงเพื่อช่วยให้คุณนับช่องว่างไม่ควรรวมในผลลัพธ์ของคุณ) d = 10 _____|_____ 12345|12345 | d = 32 _____|___________|___________|_____ 12345|12345654321| | | | …

12
ชุดเสริม N-Uniquely
โปรดจำไว้ว่าชุดจะไม่มีการเรียงลำดับโดยไม่มีการซ้ำซ้อน นิยามไม่มีสารเติมแต่ง -uniquely ชุดSมีความยาวKเป็นชุดดังกล่าวว่าทุกNมีความยาวย่อยในSรวมกับตัวเลขที่แตกต่างกัน กล่าวอีกนัยหนึ่งผลรวมของชุดย่อยN -length ทั้งหมดของSนั้นแตกต่างกันทั้งหมด วัตถุประสงค์ป.ร. ให้อาร์เรย์ / ชุดเป็น input และตัวเลขNเพื่อฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบในรูปแบบที่เหมาะสมใด ๆ ค้นหาและการกลับมาหรือส่งออก truthy หรือ falsey ค่า (erroring สำหรับ falsey ไม่เป็นไร) แสดงถึงหรือไม่ว่าใส่เป็นN - สารเติมแต่งที่ไม่ซ้ำกัน คุณอาจคิดว่าแต่ละองค์ประกอบจะปรากฏเพียงครั้งเดียวมากที่สุดและแต่ละหมายเลขนั้นอยู่ในประเภทข้อมูลดั้งเดิมของภาษาของคุณ ถ้าจำเป็นคุณอาจสมมติว่าอินพุตถูกเรียงลำดับ 0 < N <= Kสุดท้ายคุณอาจคิดว่า ตัวอย่าง ลองพิจารณาการตั้งค่าและS = {1, 2, 3, 5} N = 2นี่คือผลรวมทั้งหมดของคู่ที่ไม่ซ้ำกันทั้งหมดS(สำหรับรายการที่ไม่ซ้ำกันเป็นรายการเดียวที่น่าสนใจสำหรับผลรวม): 1 + 2 = 3 1 + …

25
คำนวณความเร็วสัมพัทธภาพ
ในทฤษฎีสัมพัทธภาพพิเศษความเร็วของวัตถุเคลื่อนที่ที่สัมพันธ์กับวัตถุอื่นที่เคลื่อนที่ในทิศทางตรงกันข้ามนั้นได้รับจากสูตร: s= v + u1 + v u / c2.s=โวลต์+ยู1+โวลต์ยู/ค2.\begin{align}s = \frac{v+u}{1+vu/c^2}.\end{align} s = ( v + u ) / ( 1 + v * u / c ^ 2) ในสูตรนี้โวลต์โวลต์vและยูยูuคือขนาดของความเร็วของวัตถุและคคcคือความเร็วของแสง (ซึ่งประมาณ3.0 × 108m / s3.0×108ม./s3.0 \times 10^8 \,\mathrm m/\mathrm sใกล้พอสำหรับความท้าทายนี้ประมาณ) ตัวอย่างเช่นถ้าวัตถุหนึ่งถูกย้ายที่v = 50,000 m/sและวัตถุอื่นกำลังจะย้ายไปที่u = 60,000 m/sความเร็วของวัตถุแต่ละเทียบกับคนอื่น ๆ s …

30
กลุ่มของรายการที่เกิดซ้ำ
คำอธิบายการท้าทาย ให้ลิสต์ / อาร์เรย์ของไอเท็มแสดงกลุ่มรายการที่เกิดซ้ำตามลำดับทั้งหมด คำอธิบายอินพุต / เอาต์พุต ข้อมูลที่คุณป้อนเป็นรายการ / อาเรย์ของรายการ (คุณสามารถถือว่าทั้งหมดเป็นประเภทเดียวกัน) คุณไม่จำเป็นต้องสนับสนุนภาษาทุกประเภทของคุณ แต่จะต้องสนับสนุนอย่างน้อยหนึ่งภาษา (โดยเฉพาะอย่างยิ่งintแต่ประเภทที่ต้องการbooleanแม้ว่าจะไม่น่าสนใจก็ยังใช้ได้เช่นกัน) ตัวอย่างผลลัพธ์: [4, 4, 2, 2, 9, 9] -> [[4, 4], [2, 2], [9, 9]] [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4, 4] -> [[1, 1, 1], [2, 2], [3, 3, 3], [4, …

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