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

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

5
ภาษาคำอธิบายการวาดภาพ Mondrian
ความท้าทายนี้ประกอบด้วยการเข้ารหัสล่ามสำหรับภาษาคำอธิบายภาพวาดมอนเดรียน (MPDL) นิยามภาษา ภาษาดำเนินการกับกองสี่เหลี่ยม สี่เหลี่ยมถูกกำหนดโดยพิกัดด้านซ้ายบนและพิกัดล่างขวา พิกัดจะต้องเป็นจำนวนเต็ม สแต็กเริ่มต้นด้วยสี่เหลี่ยมเดียวที่มีคุณลักษณะ(1,1,254,254) แต่ละคำสั่งมีรูปแบบต่อไปนี้: <character><integer> มีสามคำสั่ง: v<integer>: ดำเนินการแบ่งตามแนวตั้งบนสี่เหลี่ยมผืนผ้าล่าสุดในสแต็ก ณ ตำแหน่งที่ระบุโดยพารามิเตอร์ (เป็นเปอร์เซ็นต์) สี่เหลี่ยมต้นฉบับจะถูกลบออกจากสแต็กและแทนที่ด้วยสี่เหลี่ยมใหม่สองอันที่เป็นผลมาจากการแยก สี่เหลี่ยมด้านซ้ายถูกผลักลงบนสแต็กจากนั้นสี่เหลี่ยมด้านขวา เนื่องจากพิกัดสี่เหลี่ยมผืนผ้าเป็นจำนวนเต็มเศษส่วนควรถูกปัดเป็นจำนวนเต็มเล็กที่สุด h<integer>: แยกแนวนอน สี่เหลี่ยมผืนผ้าด้านบนถูกผลักลงบนสแต็กจากนั้นสี่เหลี่ยมผืนผ้าด้านล่าง c<integer>: ลบสี่เหลี่ยมล่าสุดออกจากสแต็กและวาดเป็นสีที่กำหนดเป็นพารามิเตอร์ 1 = ขาว, 2 = แดง, 3 = น้ำเงิน, 4 = เหลือง ท้าทาย เขียนโปรแกรมที่รับพารามิเตอร์เป็นคำอธิบายการทาสีและสร้างการแทนค่าบิตแมป 256x256 ของสี่เหลี่ยมที่ทาสี รูปสี่เหลี่ยมจะต้องคั่นด้วยเส้นสีดำ 3 พิกเซล สี่เหลี่ยมหนึ่งหรือสองพิกเซลควรมีพิกเซลที่ไม่ใช่สีดำซ่อนอยู่โดยพิกเซลสีดำเส้นขอบ อินพุตสามารถอ่านเป็นพารามิเตอร์หรือเป็นไฟล์ขึ้นอยู่กับคุณ คำสั่งควรคั่นด้วยช่องว่าง คุณสามารถสันนิษฐานได้ว่าไฟล์อินพุตมีไวยากรณ์ที่ถูกต้องและไม่มีการเว้นวรรคหรือนำหน้าแท็บ ฯลฯ เอาต์พุตสามารถแสดงผลได้โดยตรงบนหน้าจอหรือบันทึกลงในไฟล์ตามที่คุณต้องการ รหัสที่สั้นที่สุดชนะ ทดสอบ …

8
พื้นที่ผิวของจัตุรมุข
ความท้าทาย ความท้าทายนี้ตรงไปตรงมามาก ให้คะแนนสามมิติสี่จุดคำนวณพื้นที่ผิวของจัตุรมุขที่เกิดขึ้น นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ ช่องโหว่มาตรฐานมีผลบังคับใช้พร้อมกับข้อกำหนดเพิ่มเติมที่ห้ามมิให้มีฟังก์ชั่นในตัวสำหรับทำงานนี้เนื่องจากข้อห้ามสี่ข้อ คุณสามารถสมมติว่าทั้งสี่คะแนนจะแตกต่างกันและจะได้รับผ่าน STDIN 1 จุดต่อบรรทัด แต่ละจุดจะประกอบด้วยจำนวนเต็ม 16 บิตที่ไม่ได้ลงชื่อ รูปแบบที่แน่นอนของแต่ละจุดสามารถแก้ไขได้ถ้ามันทำให้สิ่งต่าง ๆ ง่ายขึ้นเช่นจำนวนเต็มสามช่องว่างคั่น อย่างไรก็ตามการมีจุดแต่ละจุดในบรรทัดแยกต่างหาก ผลลัพธ์ควรผ่าน STDOUT ไปที่ตำแหน่งทศนิยมอย่างน้อย 2 ตำแหน่ง สำหรับผู้ที่ไม่ทราบว่าจัตุรมุขเป็นของแข็งสามมิติที่เกิดขึ้นจากใบหน้ารูปสามเหลี่ยม 4 หน้า ตัวอย่าง # input (format is up to you, see clarification above) [23822, 47484, 57901] [3305, 23847, 42159] [19804, 11366, 14013] [52278, 28626, 52757] # …
16 code-golf  math  3d 

9
สร้างลำดับตัวเลขรูปของ Hofstadter
ในGödel, Escher, Bach , Douglas Hofstadter แนะนำลำดับจำนวนเต็มซึ่งโดยทั่วไปจะเรียกว่าลำดับตัวเลขรูป: 2, 4, 5, 6, 8, 9, 10, 11, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 25, ... คุณอาจจะสนุกกับการทำงานออกจากความหมายของลำดับตัวเองเป็นส่วนหนึ่งของความท้าทาย แต่ถ้าคุณไม่สามารถหรือไม่ต้องการที่จะคิดออกคุณสามารถค้นหาได้ใน OEIS เป็นลำดับA030124และคำนิยามที่ชัดเจนเล็กน้อยในวิกิพีเดีย เขียนโปรแกรมหรือฟังก์ชั่นที่กำหนดnผ่าน STDIN, ARGV หรือฟังก์ชั่นอาร์กิวเมนต์พิมพ์รายการnหมายเลขแรกของลำดับไปยัง STDOUT ในรูปแบบรายการที่สมเหตุสมผล นี่คือโค้ดกอล์ฟทางออกที่สั้นที่สุดในหน่วยไบต์ชนะ

8
วาดช่วงของภูเขา
แรงบันดาลใจจากฟีโบนัชชีโดมิโนปูกระเบื้องปัญหานี้เป็นเรื่องเกี่ยวกับการสร้างงานศิลปะ ASCII ที่เป็นตัวแทนลำดับ combinatorial ที่มีชื่อเสียงอื่น แผนภาพ n ขั้นตอนภูเขาเป็นภาพวาดของเทือกเขาโดยใช้ว่าn '/' และn '\' ตัวละครเช่นว่าตัวละครวาดเส้นโค้งต่อเนื่องซึ่งไม่เคย dips ด้านล่างของ "ความสูง" เริ่มต้น ตัวอย่างเช่น, /\/\ /\/ \ และ /\ /\/ \/\ เป็นไดอะแกรมภูเขา 4 ขั้นตอน แต่ /\ /\/\ \/ ไม่ใช่. อินพุต โปรแกรมควรยอมรับจำนวนเต็มnจาก stdin หรือเป็นพารามิเตอร์ไปยังฟังก์ชัน เอาท์พุต พิมพ์แผนภาพภูเขาn -step ทั้งหมดไปยัง stdout แผนภาพสามารถอยู่ในลำดับใดก็ได้ แต่ควรคั่นด้วยช่องว่างบางประเภท คุณสามารถตัดสินใจว่าไดอะแกรมที่แตกต่างกันจะถูกส่งออกในแนวนอนแนวตั้ง ฯลฯ เช่นเดียวกับปัญหาการเรียงหน้าโดมิโนคุณสามารถใช้ช่องว่างใดก็ได้ที่คุณต้องการ ซึ่งรวมถึงการขึ้นบรรทัดใหม่พิเศษก่อนหรือหลังเอาต์พุตที่พิมพ์ ตัวอย่าง ตัวอย่างผลลัพธ์ที่ใช้ได้สำหรับn = …


1
StackExchange Mustafa ทนไม่ได้ที่จะถามคำถามเดียวกันสามครั้ง
ออสติน: "ใครส่งคุณ" Mustafa: "คุณต้องฆ่าฉัน!" ออสติน: "ใครส่งคุณ" มุสตาฟา: "จูบก้นฉันพลัง!" ออสติน: "ใครส่งคุณ" Mustafa: "Dr. Evil" ( ... ) มุสตาฟา: "ฉันทนไม่ได้ที่จะถูกถามคำถามเดียวกันสามครั้งมันทำให้ฉันหงุดหงิด" คุณจะต้องจำลองการสนทนาสั้น ๆ ในจิตวิญญาณของAustin Powers และมุสตาฟา แต่แหล่งข้อมูลสำหรับการสนทนาทั้งหมดจะเป็นคำถาม StackOverflow (ระบุเป็นอินพุตจาก URL) กฎระเบียบ ชื่อผู้ถามคำถามจะถูกใช้แทน "Austin" คำถามที่พวกเขาจะถามสามครั้งมาจากประโยคสุดท้ายในชื่อคำถาม (ซึ่งถูกบังคับให้ลงท้ายด้วยเครื่องหมายคำถามหากยังไม่ได้ตอบ) StackExchange จะเล่นเป็นส่วนหนึ่งของ "Mustafa" ท้ายที่สุดคำตอบที่ได้รับมาจากประโยคแรกในคำตอบที่ไม่ได้ลงท้ายด้วยเครื่องหมายคำถามและจะนำมาประกอบกับชื่อของผู้ใช้ที่ตอบคำถาม สำหรับคำถามที่มีคุณสมบัติสำหรับเกมนั้นจะต้อง (ก) มีคำตอบและ (b) จะต้องมีลำดับความคิดเห็นเกี่ยวกับคำถามเดิมที่ไป: ความคิดเห็นจากคนอื่นที่ไม่ใช่ผู้ถาม (จำนวนความคิดเห็นที่ข้าม) ความคิดเห็นจากผู้ถาม ความคิดเห็นจากคนอื่นที่ไม่ใช่ผู้ถาม (ความคิดเห็นที่ข้ามได้จำนวนเท่าใดก็ได้) ความคิดเห็นจากผู้ถาม หากไม่พอใจกับลำดับนี้ก่อนวันที่ของคำตอบที่ได้รับการจัดอันดับสูงสุดโปรแกรมควรจะแสดงผลลัพธ์ออกมา"Oh, behave!" StackExchange …

1
สร้างตัวแก้ปริศนา MU
ปริศนา MUเป็นปริศนาที่คุณพบว่าคุณสามารถเปิดMIเข้าไปMUให้การดำเนินงานดังต่อไปนี้: หากสตริงของคุณสิ้นสุดลงIคุณสามารถเพิ่ม a Uถึงท้าย (เช่นMI -> MIU) หากสตริงของคุณเริ่มต้นด้วยMคุณสามารถผนวกสำเนาของส่วนหลังจากMที่สตริง (เช่นMII -> MIIII) ถ้าสายของคุณมีสามติดต่อกันของคุณอาจมีการเปลี่ยนแปลงให้เป็นI (เช่น)UMIII -> MU หากสตริงของคุณมีสองรายการติดกันUคุณสามารถลบออกได้ (เช่นMUUU -> MU) งานของคุณคือการสร้างโปรแกรมที่กำหนดว่าสิ่งนี้สามารถทำได้สำหรับสตริงเริ่มต้นและสิ้นสุด โปรแกรมของคุณจะใช้สองสายเป็นอินพุต แต่ละสตริงจะประกอบด้วยสิ่งต่อไปนี้: Mหนึ่ง สตริงถึงยี่สิบเก้าI'และU' s โปรแกรมของคุณจะส่งคืนtrue(หรือเป็นตัวแทนของภาษาการเขียนโปรแกรมของมัน / YPLRT) หากสตริงที่สองสามารถเข้าถึงได้จากสตริงแรกและfalse(หรือ YPLRT) หากไม่ใช่ ตัวอย่างอินพุตและเอาต์พุต: MI MII true MI MU false MIIIIU MI true รหัสที่สั้นที่สุดในภาษาใด ๆ เพื่อทำสิ่งนี้ชนะ

13
แสดงนับ (ในฐานที่แตกต่างกัน)
Tallying เป็นระบบการนับอย่างง่ายที่ทำงานในฐาน 5 มีระบบรับทราบที่แตกต่างหลากหลายที่ใช้กันทั่วโลก แต่ระบบที่ใช้ในประเทศที่ใช้ภาษาอังกฤษส่วนใหญ่นั้นอาจจะเป็นระบบที่ง่ายที่สุด - นับหน่วยโดยการทำเครื่องหมายแนวตั้ง แต่ละเครื่องหมายที่ 5 ใส่เส้นแนวนอนผ่านคอลเลกชันก่อนหน้าของสี่ กลุ่มนี้มีเครื่องหมายนับเป็นกลุ่ม 5 (และทำให้นับได้ง่ายขึ้น) คุณกำลังจะเขียนโปรแกรมที่แสดงเครื่องหมายรวมถึงค่าที่กำหนด แต่การรายงานในฐาน 5 เท่านั้นน่าเบื่อ! ดังนั้นโปรแกรมของคุณควรสามารถแสดงตัวเลขในฐานที่ต่างกันได้ อินพุต อินพุตจะเป็นค่าจำนวนเต็มหนึ่งหรือสองค่าที่ไม่ใช่ลบโดยคั่นด้วยเครื่องหมายจุลภาค (เช่น9หรือ8,4) ตัวเลขแรกคือค่าที่ควรแสดงโดยการนับ ค่าที่สองคือฐานของการนับ ถ้าค่าที่สองคือการไม่ได้รับการใช้งานฐาน 5 เอาท์พุต เอาต์พุตจะเป็นค่าอินพุตที่แสดงเป็นเครื่องหมาย ASCally art tally นี่คือตัวอย่างบางส่วนที่คุณสามารถทดสอบโปรแกรมของคุณได้ - ผลลัพธ์ของคุณควรตรงกับพวกเขาทุกประการ! อินพุต: 12หรือ12,5 | | | | | | | | | | -+-+-+-+- -+-+-+-+- | | | …

16
เคล็ดลับการตีกอล์ฟใน T-SQL
คุณมีเคล็ดลับทั่วไปอะไรสำหรับการเล่นกอล์ฟใน T-SQL ฉันกำลังมองหาแนวคิดที่สามารถนำไปใช้กับปัญหารหัสกอล์ฟโดยทั่วไปซึ่งอย่างน้อยค่อนข้างเฉพาะกับ T-SQL กรุณาโพสต์หนึ่งเคล็ดลับต่อคำตอบ ขอบคุณ Marcog สำหรับแนวคิดดั้งเดิม :)
16 code-golf  tips  sql 

18
Palindrome ฐานต่ำสุด
รับจำนวนnเขียนฟังก์ชั่นที่พบฐานเล็กที่สุดb ≥ 2เช่นที่nเป็น palindrome bในฐาน ตัวอย่างเช่นอินพุตของ28ควรส่งคืนฐาน3เนื่องจากการแทนค่าแบบไตรภาคของ 28 คือ 1001 ถึงแม้ว่า93จะเป็น palindrome ทั้งในฐาน 2 และฐาน 5 แต่เอาต์พุตควรมีค่า2ตั้งแต่ 2 <5 อินพุต n < 2^31เป็นจำนวนเต็มบวก เอาท์พุต ส่งคืนฐานที่เล็กที่สุดb ≥ 2ซึ่งการbแทนค่าฐานของnเป็น palindrome อย่าถือว่าศูนย์นำหน้าใด ๆ ตัวอย่าง (input => output): 11 => 10 32 => 7 59 => 4 111 => 6 กฎระเบียบ รหัสที่สั้นที่สุดชนะ

2
โปรแกรมที่อนุญาตให้ตัวเองเข้ารหัสสตริง (ตัวแปรย่อย)
เขียนโปรแกรมที่พิมพ์บรรทัด 80 ตัวอักษรต่อไปนี้: โปรแกรมนี้จาก codegolf.stackexchange.com อนุญาตให้ตัวเองเข้ารหัสสตริง จากนั้นยอมรับอินพุตหนึ่งบรรทัดจากนั้นพิมพ์ซอร์สโค้ดโดยมีจุดโค้ดที่อาจเรียงลำดับใหม่ (ไม่มีการเพิ่มและไม่มีการลบ) เมื่อรันโค้ดนั้นจะต้องเกิดขึ้นเช่นเดียวกันยกเว้นบรรทัดที่พิมพ์ออกมาจะเป็นบรรทัดอินพุตล่าสุด Regex สไตล์ Perl ^[A-Za-z0-9. ]{80}$จะจับคู่กับอินพุตทุกบรรทัด คุณไม่สามารถตั้งสมมติฐานเพิ่มเติมได้ คะแนนการส่งของเป็นจำนวนของจุดรหัสในรหัสที่มาของมันน้อย 94 ต่ำกว่าดีกว่า รหัสจะต้องไม่ทำอะไรที่ไม่สามารถยอมรับได้ในควินิน ( เช่นการอ่านไฟล์) โดยเฉพาะอย่างยิ่งการส่งใด ๆ ที่มีคะแนนติดลบจะต้องโกงอย่างใดอย่างหนึ่งเป็น 93 น้อยกว่า 64 80 เพิ่ม 2014-04-21:ซอร์สโค้ดทั้งหมดของโปรแกรมของคุณจะต้องมีรูปแบบที่ดีในการเข้ารหัสตัวอักษรที่คุณนับคะแนนรหัส ตัวอย่างเช่นคุณไม่สามารถใช้ 80 ไบต์ต่อเนื่องกันในช่วงไบต์ต่อท้าย UTF-8 (80..BF) และนับแต่ละรายการเป็นอักขระเปลี่ยน U + FFFD เดียว (หรือแย่กว่าไม่ใช่จุดรหัสเลย) นอกจากนี้หากการเข้ารหัสอนุญาตให้มีหลายวิธีในการเข้ารหัสจุดโค้ด ( เช่น SCSU ) โปรแกรมของคุณรวมถึงโปรแกรมทั้งหมดที่สร้างขึ้นโดยตรงหรือโดยอ้อมต้องใช้หนึ่งในนั้นเท่านั้น (หรืออย่างน้อยที่สุดจะต้องได้รับการปฏิบัติอย่างเท่าเทียมกันตลอดทั้งรหัส )
16 code-golf  quine 

24
เกมต่อท้ายตัวเลข
เกมต่อท้ายตัวเลข เขียนฟังก์ชัน / โปรแกรมที่รับพารามิเตอร์จำนวนเต็ม 2 ตัวพารามิเตอร์จำนวนเต็มหรือตัวแปรจำนวนเต็มจำนวนเริ่มต้นและจำนวนสูงสุดของการวนซ้ำซ้ำ รหัสควรทำตัวอย่างเกมต่อไปนี้เพื่อสร้างหมายเลขใหม่และทำซ้ำจนกว่าตัวเลขจะเหลือตัวเลขหลักเดียว เช่น. 3 7 2 = (3 + 7) & (7 + 2) = 10 9 1 0 9 = (1 + 0) & (0 + 9) = 1 9 1 9 = (1 + 9) = 10 1 0 = (1 + 0) …
16 code-golf 

24
ฟังก์ชั่นเก่าของ MacDonald
สร้างฟังก์ชั่นในภาษาที่คุณเลือกซึ่งจะพิมพ์สิ่งต่อไปนี้: Old MacDonald had a farm, E-I-E-I-O, And on that farm he had a cow, E-I-E-I-O, With a moo moo here and a moo moo there, Here a moo, there a moo, everywhere a moo moo, Old MacDonald had a farm, E-I-E-I-O! ที่ไหนcowและmooเป็นสตริงในพารามิเตอร์ฟังก์ชั่นและเช่นสามารถเปลี่ยนเป็นpigและoinkหรือหรือsheepและbaaตัวอย่างเช่น ควรคำนึงถึงตัวพิมพ์ใหญ่, เครื่องหมายขีดคั่น, เครื่องหมายวรรคตอน, ช่องว่างและตัวแบ่งบรรทัด มุ่งหวังที่จะพิมพ์จำนวนอักขระ Unicode น้อยที่สุดในรหัสของคุณ

2
แผนภูมิวงกลมศิลปะ ASCII
เป้าหมายของคุณคือส่งออกแผนภูมิวงกลมของ ASCII นี่คือ code-golf ดังนั้นโปรแกรมที่สั้นที่สุด (นับจำนวนไบต์ของซอร์สโค้ดไม่ใช่ตัวอักษร) จะชนะ ไม่อนุญาตให้มีซอฟต์แวร์หรือ API ภายนอก เฉพาะภาษาพื้นเมืองของแต่ละภาษา มุมเริ่มต้นและทิศทาง (ตามเข็มนาฬิกา / ทวนเข็มนาฬิกา) ของวงกลมไม่สำคัญ ผลลัพธ์สามารถดูเป็นรูปไข่ได้เนื่องจากความสูงของอักขระจะเหนือกว่าความกว้างของอักขระเสมอ "พื้นหลัง" (อักขระทางด้านซ้ายหรือด้านขวาของวงกลม) ต้องเป็นช่องว่าง คุณมีตัวแปรสามตัว (โปรดโพสต์โค้ดเพื่อเริ่มต้นการเริ่มต้นตัวแปรเหล่านี้จะไม่ถูกนับในคะแนนของคุณ): k: อาร์เรย์ของอักขระ อักขระแต่ละตัวเป็นอักขระที่ต้องใช้ในแผนภูมิวงกลม v: อาร์เรย์ลอย เป็นเปอร์เซ็นต์ของตัวละครแต่ละตัว ความยาวของมีค่าเท่ากับความยาวของv kผลรวมขององค์ประกอบคือ 1.0 เสมอ r : Integer&gt; 1. มันคือรัศมีของแผนภูมิวงกลม ( ∑| v |i = 1โวลต์ผม) &lt; 1(Σผม=1|โวลต์|โวลต์ผม)&lt;1(\sum_{i=1}^{|v|} v_i)<1

14
บันทึกที่มีตนเอง
ปัญหา" กำหนดฟังก์ชั่นlog(หรือชื่อตัวอักษร 3 ตัวอื่น ๆ ) ซึ่งเมื่อเรียกว่าจะเข้าสู่ระบบ / พิมพ์ / เขียน (สิ่งที่เป็นค่าเริ่มต้นสำหรับภาษาที่เป็นปัญหา) ทั้งคำแนะนำ (เป็นแหล่งที่มา) และอาร์กิวเมนต์แรก ในคำอื่น ๆ : i=777 j=333 log(i) //outputs: "log(i) 777" log(i+j+1) //outputs: "log(i+j+1) 1111" สำหรับวัตถุประสงค์เชิงปฏิบัติทั้งหมดผลลัพธ์i: 777จะเพียงพอ แต่ในบางภาษามีไลบรารีการสะท้อนที่เฉพาะเจาะจงมากสำหรับสิ่งนั้นและนั่นจะไม่ท้าทายดังนั้นการสอนทั้งหมดควรถูกเอาท์พุท แรงบันดาลใจ แรงบันดาลใจสำหรับเรื่องนี้คือฉันและโปรแกรมเมอร์คนอื่นคุยกันว่ามันน่ารำคาญแค่ไหน (กับผู้ debuggers ที่ไม่ดี) คุณเขียนสิ่งต่าง ๆconsole.log("i:", i)ต่อไปเราได้สร้างจาวาสคริปต์ (บ้าๆ) โหนด (โหนดเท่านั้น) (เอาท์พุทi: 777มากกว่าทั้งบรรทัด แหล่งที่มา) ซึ่งยาวมากและทำให้ฉันนึกถึง codegolfing และทำให้ฉันสงสัยว่าภาษาอื่น ๆ โบนัส …
16 code-golf 

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