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

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

30
พิมพ์ส่วนโค้งของตัวเลขจากน้อยไปมาก / มากไปน้อย
ฉันคิดว่า "ส่วนโค้ง" เป็นวิธีที่ดีที่สุดในการอธิบายรูปแบบของตัวเลขนี้: 1234567887654321 1234567 7654321 123456 654321 12345 54321 1234 4321 123 321 12 21 1 1 ที่กำหนดไว้อย่างเป็นทางการแต่ละบรรทัดประกอบด้วยตัวเลข 1 ถึง9-n, (n-1)*2การเว้นวรรคและตัวเลขที่9-nผ่าน 1 (ที่nเป็นบรรทัดปัจจุบัน) งานของคุณคือการเขียนโดยใช้รหัสที่สั้นที่สุดที่เป็นไปได้สคริปต์ / โปรแกรมขนาดเล็กที่พิมพ์รูปแบบข้างต้นภายใต้ข้อ จำกัด ดังต่อไปนี้: คุณไม่สามารถ hardcode รูปแบบทั้งหมดได้ คุณอาจ hardcode บรรทัดเดียวของรูปแบบสูงสุด โปรแกรมของคุณจะต้องพิมพ์ขึ้นบรรทัดใหม่ (การรวมกันของ\nหรือ\r) ในตอนท้ายของแต่ละบรรทัด พร้อม ... ตั้ง .... ไปกันเลย!

30
สลับหน้าของข้อความ
แก้ไขฉันแก้ไขถ้อยคำของกฎเพื่อทำให้บางสิ่งที่ชัดเจนโดยนัยยิ่งขึ้น ฉันยังเพิ่มความสำคัญบางอย่างเพื่อกำจัดจุดที่สับสนชัดเจนและกำหนดตัวเลือกในการทำโปรแกรมสแตนด์อโลนแทนฟังก์ชั่น เป้าหมายที่นี่คือการทำให้ฟังก์ชั่นที่ใช้ไฟล์ข้อความ (หรือสตริง) และเปลี่ยนมันเพื่อให้บรรทัดกลายเป็นคอลัมน์และในทางกลับกัน ตัวอย่าง: ฉันเป็นข้อความ ไขว้ฉัน คุณทำได้มั้ย? ผลลัพธ์ใน: ITC RA อาน ล้าน ซี่ APO อู ทีเอส อี๊ด XO TM .ei .t ? กฎระเบียบ: คุณได้รับอนุญาตให้สมมติว่าอักขระช่องว่างเท่านั้นที่ใช้เป็น" "และ"\n"และไม่มีช่องว่างต่อท้ายในบรรทัดใด ๆ คุณอาจคิดว่าไฟล์นั้นเป็น ASCII เครื่องหมายปลายทางที่คุณต้องการใช้ขึ้นอยู่กับคุณ (CRLF หรือ LF) มันจะต้องทำงานอย่างถูกต้องกับตัวอย่าง แต่มันก็ควรจะทำงานกับข้อมูลใด ๆที่เป็นไปตามสมมติฐานข้างต้น คุณอาจต้องแทรกช่องว่าง (ในตัวอย่าง) โดยที่ไม่มีเพื่อรักษาคอลัมน์ในบรรทัด ผลของคุณต้องไม่ได้ต่อท้ายช่องว่างในบรรทัดใด ๆ อักขระขึ้นบรรทัดใหม่สุดท้าย (สำหรับบรรทัดสุดท้าย) เป็นทางเลือก ควรเป็นฟังก์ชันหรือโปรแกรมที่สมบูรณ์ หากฟังก์ชั่นของคุณยอมรับสตริงก็ควรส่งคืนผลลัพธ์เป็นสตริง หากยอมรับชื่อไฟล์คุณจะส่งคืนชื่อไฟล์ที่คุณบันทึกผลลัพธ์ นอกจากนี้คุณยังได้รับอนุญาตให้เขียนโปรแกรมที่สมบูรณ์ซึ่งรับอินพุตจาก STDIN …
28 code-golf  string 

17
ถอดรหัสVigenère ciphertext
Vigenere ตัวเลขเป็นตัวเลข polyalphabetic ง่ายๆที่พื้นใช้หนึ่งยันต์จักรพรรดิหลายตามคีย์ โดยพื้นฐานแล้วตัวอักษรในปุ่มจะระบุว่าจะใช้ตัวอักษรใดในการเลื่อน ด้วยเหตุนี้จึงมีเครื่องมือง่าย ๆ ที่เรียกว่าVigenère square: ที่นี่แต่ละแถวเป็นตัวอักษรแยกเริ่มต้นด้วยตัวอักษรที่เกี่ยวข้องของคีย์ คอลัมน์จะถูกใช้เพื่อกำหนดตัวอักษรที่เข้ารหัส การถอดรหัสใช้งานได้เหมือนกันมากในทางกลับกันเท่านั้น CODEGOLFสมมติว่าเราต้องการที่จะเข้ารหัสสตริง เรายังต้องการกุญแจ FOOBARในกรณีนี้ที่สำคัญจะต้องเป็น FOOBARFOเมื่อที่สำคัญคือสั้นกว่าธรรมดาที่เราขยายได้โดยการทำซ้ำจึงเป็นกุญแจสำคัญที่เกิดขึ้นจริงที่เราใช้คือ ตอนนี้เราค้นหาตัวอักษรตัวแรกของกุญแจซึ่งก็คือFการค้นหาตัวอักษร Fมันเริ่มต้นอาจจะแปลกใจกับ Hตอนนี้เราได้พบกับคอลัมน์ที่มีอักษรตัวแรกของเท็กซ์และตัวอักษรที่เกิดขึ้นคือ สำหรับจดหมายที่สองที่เรามีเป็นตัวอักษรที่สำคัญและตัวอักษรข้อความธรรมดาที่เกิดขึ้นในO อย่างต่อเนื่องวิธีการที่ในที่สุดเราก็จะได้รับCHCRFGFQT งาน ตอนนี้งานของคุณคือการถอดรหัสข้อความให้รหัส อย่างไรก็ตามเนื่องจากเราเติบโตเกินกว่าศตวรรษที่ 16 และมีคอมพิวเตอร์อย่างน้อยเราควรสนับสนุนตัวอักษรขนาดใหญ่กว่าเล็กน้อย: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 การก่อสร้างจัตุรัสVigenèreยังคงเหมือนเดิมมากและศูนย์ยังคงทำงานในลักษณะเดียวกัน เป็นเพียงเล็กน้อย ... ไม่เต็มใจที่จะให้ที่นี่เต็ม อินพุต อินพุตได้รับจากอินพุตมาตรฐานเป็นข้อความสองบรรทัดแยกกันโดยแต่ละบรรทัดจะถูกยกเลิกโดยการขึ้นบรรทัดใหม่ บรรทัดแรกมีคีย์ในขณะที่บรรทัดที่สองประกอบด้วย ciphertext เอาท์พุต บรรทัดเดียวที่มีข้อความที่ถอดรหัส สภาพการชนะ เนื่องจากการเข้ารหัสบางครั้งถือเป็นอาวุธรหัสควรสั้นเพื่ออำนวยความสะดวกในการลักลอบขนง่าย ยิ่งสั้นยิ่งดีก็ยิ่งลดโอกาสในการค้นพบน้อยลง ตัวอย่างอินพุต 1 Key miQ2eEO ตัวอย่างผลลัพธ์ 1 Message ตัวอย่างอินพุต 2 ThisIsAKey …
28 code-golf  cipher 

5
เครื่องคิดเลขขั้นสูง
คุณต้องเขียนโปรแกรมที่ประเมินสตริงที่จะถูกป้อนลงในเครื่องคิดเลขขั้นสูง โปรแกรมจะต้องยอมรับอินพุตโดยใช้ stdin และออกคำตอบที่ถูกต้อง สำหรับภาษาที่ไม่มีฟังก์ชั่นที่จะยอมรับ stdin คุณอาจถือว่าฟังก์ชั่นนั้นreadLineและprintจัดการงานเหล่านี้ ที่ต้องการ: ห้ามใช้ฟังก์ชั่น "eval" ใด ๆ สามารถจัดการกับจำนวนจุดลอยตัวและจำนวนลบ รองรับตัวดำเนินการอย่างน้อย +, -, *, / และ ^ รองรับวงเล็บและวงเล็บสำหรับแทนที่คำสั่งปกติ สามารถจัดการกับการป้อนข้อมูลที่มีหนึ่งหรือมากกว่าช่องว่างระหว่างผู้ประกอบการและตัวเลข ประเมินอินพุตโดยใช้คำสั่งมาตรฐานของการดำเนินการ กรณีทดสอบ อินพุต 10 - 3 + 2 เอาท์พุต 9 อินพุต 8 + 6 / 3 - 7 + -5 / 2.5 เอาท์พุต 1 อินพุต 4 + [ …
28 code-golf  math 

30
คำนวณเลขเช็คไอ -13
เขียนฟังก์ชั่นซึ่งให้รหัส 12 หลักแรกของรหัสISBN-13จะคำนวณ ISBN ทั้งหมดผ่านการคำนวณและต่อท้ายตัวเลขการตรวจสอบที่เหมาะสม การป้อนข้อมูลของฟังก์ชันของคุณคือสตริงที่มี 12 หลักแรกของ ISBN เอาท์พุทมันเป็นสตริงที่มีทั้งหมด 13 หลัก ข้อกำหนดอย่างเป็นทางการ เขียนฟังก์ชั่นซึ่งเมื่อได้รับสตริงsประกอบด้วยทศนิยมทั้งหมด 12 หลัก (และไม่มีอักขระอื่น ๆ ) ส่งคืนสตริงtด้วยคุณสมบัติดังต่อไปนี้: tประกอบด้วยตัวเลขทศนิยม 13 หลัก (และไม่มีอักขระอื่น ๆ ); sเป็นคำนำหน้าของt ; ผลรวมของตัวเลขทั้งหมดในตำแหน่งคี่ในt (เช่นที่หนึ่งที่สามที่สาม ฯลฯ ) บวกสามครั้งรวมของตัวเลขทั้งหมดที่อยู่ในตำแหน่งที่เท่ากันในt (เช่นที่สองที่สี่หกและอื่น ๆ ) เป็น หลาย 10 ตัวอย่าง / กรณีทดสอบ อินพุต 978030640615 เอาท์พุต 9780306406157 เงื่อนไขชัยชนะ ในฐานะที่เป็นความท้าทายของรหัสกอล์ฟคำตอบที่สั้นที่สุดชนะ

30
ใช้งานการให้แสงเสียง / คำบรรยายโดยไม่ใช้ '^'
ความท้าทาย ติดตั้งtetration (aka Power Tower หรือ Hyperexponentiation) ด้วยจำนวนอักขระน้อยที่สุด เงื่อนไข อย่าใช้อำนาจ 'ผู้ประกอบการหรือเทียบเท่า (เช่นpow(x,y), x^y, x**yฯลฯ ) อินพุตที่ได้รับเป็น: x y(คั่นด้วยช่องว่าง) xมีการอธิบายด้วยตัวเองyครั้ง วิธีการของคุณจะต้องสามารถคำนวณได้อย่างน้อย4 3(4 exponentiated ด้วยตัวเอง 3 ครั้ง) เกณฑ์การให้คะแนน ชนะคะแนนต่ำสุด: (จำนวนตัวอักษร) การหักโบนัสหากคุณไม่ได้ใช้ตัวดำเนินการคูณ (-5 คะแนน) ไม่มีข้อกำหนดด้านความเร็ว / หน่วยความจำ ใช้เวลานานเท่าที่คุณต้องการ ตัวอย่าง x, 0 -> 1 2, 2 -> 2^2 = 4 2, 4 -> 2^(2^(2^2)) …
28 code-golf  math 

29
แสดงตัวเลข“ รูปแบบนาฬิกาดิจิตอล”
เขียนโปรแกรมที่สั้นที่สุดซึ่งจะนำสตริงตัวเลข ( ความยาวไม่เกิน 20 ตัวขึ้นไป) เป็นอินพุตและแสดงผลลัพธ์โดยใช้หมายเลขสไตล์นาฬิกาดิจิตอลมาตรฐาน เช่นอินพุท 81 โซลูชันที่มี ascii จะให้: _ |_| | |_| | เอาท์พุทกราฟิกยังเป็นที่ยอมรับถ้ามันช่วย

29
ฟังก์ชันโคลอมเบียแบบผกผัน
ให้กำหนดลำดับที่: ลำดับ n หลักข้อสรุป (n-DSS) เป็นลำดับที่เริ่มต้นด้วยn หากหมายเลขที่ผ่านมาเป็นkแล้วจำนวนต่อไปคือk + หลักผลรวม (k) นี่คือสองสาม n-DSS แรก: 1-DSS: 1, 2, 4, 8, 16, 23, 28, 38, 49, 62, 70... 2-DSS: 2, 4, 8, 16, 23, 28, 38, 49, 62, 70, 77... 3-DSS: 3, 6, 12, 15, 21, 24, 30, 33, 39, 51, 57... 4-DSS: …

24
เอาท์พุทรูปภาพ Super Mario
นี่เป็นปัญหาของ Luogu OJ ฉันตัดสินใจที่จะโพสต์ที่นี่เพราะใน Luogu OJ หลายคนรวมถึงฉันและเพื่อนของฉันสนใจที่จะแก้ปัญหานี้ด้วยตัวละครที่น้อยที่สุด งานของคุณคือการส่งออก ASCII-art ต่อไปนี้: ************ ####....#. #..###.....##.... ###.......###### ### ### ........... #...# #...# ##*####### #.#.# #.#.# ####*******###### #.#.# #.#.# ...#***.****.*###.... #...# #...# ....**********##..... ### ### ....**** *****.... #### #### ###### ###### ############################################################## #...#......#.##...#......#.##...#......#.##------------------# ###########################################------------------# #..#....#....##..#....#....##..#....#....##################### ########################################## #----------# #.....#......##.....#......##.....#......# #----------# ########################################## #----------# #.#..#....#..##.#..#....#..##.#..#....#..# #----------# ########################################## …

9
“ คุณต้องสร้างเสาเพิ่มเติม!”
บทนำ ในเกมวางแผนกลยุทธ์ Starcraft 2 มีสาม "เผ่าพันธุ์" ให้เลือก: Terran, Zerg และ Protoss ในการท้าทายนี้เราจะมุ่งเน้นไปที่ Protoss และวลีที่เป็นสัญลักษณ์ "คุณต้องสร้างเสาเพิ่มเติม!" ข้อความนี้มีการระบุไว้เมื่อคุณหมดอุปทานเพื่อสร้างกองทัพของคุณ ดังนั้นเพื่อช่วยชุมชนสตาร์คราฟคุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่บอกผู้เล่นถึงจำนวนเสาที่ต้องการ ความท้าทาย คุณจะได้รับอินพุตของสตริงซึ่งประกอบด้วยรายการจำนวนเต็มเดียวNและรายการที่คั่นด้วยช่องว่าง Nจะเป็นศูนย์หรือเป็นบวกเสมอและรายการของหน่วยจะมีหน่วยที่ถูกต้องหนึ่งหน่วยขึ้นไปเสมอ Nแสดงจำนวนเสาที่ผู้เล่นมีอยู่ในปัจจุบัน งานของคุณคือการคำนวณว่าจำนวนเสาที่ผู้เล่นมีเพียงพอที่จะสร้างหน่วยหรือไม่ โปรแกรมหรือฟังก์ชั่นของคุณจะต้องส่งออก / คืนค่าความจริงหากมีอุปทานเพียงพอหรือหากมีอุปทานไม่เพียงพอคุณจะต้องส่งออกYou must construct ZZZ additional pylonsโดยที่ZZZจำนวนของเสาที่จำเป็นในการสร้างหน่วย โปรดทราบว่าpylon(s)จะต้องเป็นพหูพจน์เมื่อจำเป็นและไม่ได้หลายแบบเมื่อไม่ได้ ( ...1 additional pylon!, ...2 additional pylons!) หน่วย Protoss และต้นทุนการจัดหา นี่คือรายการของทุกหน่วยและต้นทุนการจัดหาที่สอดคล้องกัน เสาให้เพิ่มอีก 8 อุปทาน Unit Supply Cost Probe 1 …

20
ความเข้ากันได้ของแวมไพร์
ข้อเท็จจริงที่ทราบกันเล็กน้อยเกี่ยวกับแวมไพร์คือพวกเขาต้องดื่มเลือดของเหยื่อที่มีกรุ๊ปเลือดของผู้บริจาค เมทริกซ์เข้ากันได้สำหรับแวมไพร์เป็นเช่นเดียวกับปกติสีแดงเม็ดเลือดบริจาค / ผู้รับเมทริกซ์ สามารถสรุปได้ดังต่อไปนี้ตาราง American Red Cross Type You Can Give Blood To You Can Receive Blood From A+ A+, AB+ A+, A-, O+, O- O+ O+, A+, B+,AB+ O+, O- B+ B+, AB+ B+, B-, O+, O- AB+ AB+ everyone A- A+, A-, AB+, AB- A-, O- O- …

9
เคล็ดลับสำหรับการเล่นกอล์ฟใน APL
ฉันเพิ่งเริ่มการแข่งขันกอล์ฟรหัสหนึ่งเมื่อเร็ว ๆ นี้และดูเหมือนว่าผู้ชนะคือ GolfScript (แปลกใจแปลกใจ!) สิ่งที่น่าสนใจคือมีคู่แข่งที่แข็งแกร่งมากคนหนึ่งที่มีโอกาสชนะการแข่งขัน GolfScript ชื่อของมันคือ APL ฉันเห็นคำตอบมากมายที่เขียนใน APL ที่นี่ ดูเหมือนว่าภาษานี้จะค่อนข้างมีประสิทธิภาพสำหรับการเล่นรหัสดังนั้นฉันตัดสินใจที่จะถามเคล็ดลับการเล่นกอล์ฟรหัสที่คุณรู้สำหรับโปรแกรม APL โพสต์ตัวอย่างโค้ดได้ฟรี ปกติแล้วมันน่าสนใจมากที่จะเห็นภาษาที่ใช้งานอยู่
28 code-golf  tips  apl 

10
เล่นเกม Chaos
ความโกลาหลเกมเป็นวิธีที่ง่ายในการสร้าง fractals เมื่อกำหนดจุดเริ่มต้นอัตราส่วนความยาวrและชุดของจุด 2D ให้ทำดังนี้: จากชุดคะแนนของคุณเลือกหนึ่งโดยการสุ่ม (เหมือนกัน) ค่าเฉลี่ยจุดนั้นและจุดดึงสุดท้าย (หรือจุดเริ่มต้น) โดยใช้rและ1 - rเป็นน้ำหนัก (เช่นr = 0หมายถึงคุณได้รับจุดเริ่มต้นr = 1หมายถึงคุณได้รับจุดสุ่มและr = 0.5หมายความว่าคุณ รับจุดกึ่งกลางในระหว่าง.) วาดจุดผลลัพธ์ ตัวอย่างเช่นหากคุณเลือกจุดยอดของรูปสามเหลี่ยมด้านเท่าและr = 0.5จุดที่พล็อตจะแมปสามเหลี่ยม Sierpinski: พบรูปภาพใน Wikipedia คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นที่ "เล่น" เกมความโกลาหลเพื่อสร้างเศษส่วน อินพุต คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและรับอินพุตต่อไปนี้ผ่าน ARGV, STDIN หรืออาร์กิวเมนต์ของฟังก์ชัน: จำนวนคะแนนที่จะพล็อต พิกัดเริ่มต้น (ซึ่งต้องมีการพล็อตด้วย!) น้ำหนักเฉลี่ยRในช่วง[0,1] รายการคะแนนที่จะเลือก เอาท์พุต คุณสามารถแสดงผลบนหน้าจอหรือเขียนไฟล์ภาพ หากผลเป็น rasterised จะต้องมีอย่างน้อย 600 พิกเซลในแต่ละด้านทุกจุดจะต้องอยู่บนผืนผ้าใบและอย่างน้อย 75% ของขอบเขตแนวนอนและแนวตั้งของภาพจะต้องใช้สำหรับจุด (เพื่อหลีกเลี่ยง …

30
การสื่อสารที่ง่ายยิ่งขึ้นหมายถึงการเข้ารหัสที่เร็วขึ้นหมายถึง coders ที่น้อยลงหมายถึง ...
พ่อของฉันซึ่งเป็น APLer ที่ดีมากและสอนฉันเกี่ยวกับพื้นฐานทั้งหมดของ APL (และอื่น ๆ อีกมากมาย) ที่ล่วงลับไปแล้วในวันนี้เมื่อห้าปีก่อน ในการเตรียมตัวเป็นเวลา50 ปีของ APLฉันพบจดหมายสิทธิบัตรฉบับนี้ (แปลเพื่อความสะดวกของผู้ที่ไม่ได้อ่านภาษาเดนมาร์ก) สำหรับโลโก้ที่เขียนด้วยลายมือ มันอธิบายถึงเหตุผลสำคัญสำหรับ APL ที่ไม่เคยมีฐานผู้ใช้จำนวนมากเหตุผลที่แน่นอนก็ใช้กับภาษากอล์ฟที่น่าตื่นตาตื่นใจของชุมชนนี้เช่นกัน: 3497/77 คำร้องขอ 29 THสิงหาคม 1977 วันที่ 13 Henri Brudzewskyบริษัท ที่ปรึกษาด้านวิศวกรรม, Mindevej 28, Søborg, class 9รวมถึงคอมพิวเตอร์โดยเฉพาะคอมพิวเตอร์ที่ใช้รหัส APL รุ่นที่ 42:บริษัท ตัวแทนด้านการบริการด้านไอทีโดยเฉพาะในระหว่างการใช้งานคอมพิวเตอร์ที่ใช้รหัส APL งาน สร้างผลลัพธ์การทำซ้ำของข้อความEASIER COMMUNICATION MEANS FASTER CODING MEANS FEWER CODERS MEANS โดยไม่ขึ้นบรรทัดใหม่ คุณอาจจะเริ่มต้นด้วยข้อความEASIERหรือหรือFASTERFEWER

30
อัตราส่วนของตัวอักษรตัวพิมพ์ใหญ่ต่อตัวพิมพ์เล็ก
ในการท้าทายนี้คุณและเพื่อนของคุณกำลังถกเถียงกันว่าคดีไหนดีกว่าตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก? หากต้องการค้นหาคุณเขียนโปรแกรมเพื่อทำสิ่งนี้ให้คุณ เนื่องจาก esolangs ทำให้ตกใจเพื่อนของคุณและรหัส verbose ทำให้คุณกลัวรหัสของคุณจะต้องสั้นที่สุด ตัวอย่าง PrOgRaMiNgPuZzLeS & CoDe GoLf 0.52 uppercase DowNGoAT RiGHtGoAt LeFTGoat UpGoAT 0.58 uppercase Foo BaR Baz 0.56 lowercase ข้อมูลจำเพาะ ข้อมูลที่ป้อนจะประกอบด้วยอักขระ ASCII เท่านั้น ควรละเว้นอักขระที่ไม่ใช่ตัวอักษรทั้งหมด แต่ละกรณีจะมีอย่างน้อย 1 ตัว เอาต์พุตควรเป็นปริมาณของเคสที่ปรากฏบ่อยที่สุดเกินจำนวนอักขระทั้งหมด มันควรจะเป็นทศนิยมที่ถูกต้องถึงทศนิยมอย่างน้อย 2 ตำแหน่ง ถ้าพิมพ์ใหญ่ปรากฏขึ้นบ่อยขึ้นการส่งออกควรจะจบลงด้วยหรือuppercaselowercase จะไม่มีตัวอักษรตัวพิมพ์ใหญ่และตัวพิมพ์เล็กเท่ากัน
28 code-golf  string 

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