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

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

14
อัลกอริทึมแบบยุคลิด (สำหรับการค้นหาตัวหารร่วมมาก)
ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับอินพุตจำนวนเต็มสองตัวiและjและเอาท์พุทตัวหารร่วมที่ยิ่งใหญ่ที่สุด คำนวณโดยใช้อัลกอริทึมแบบยุคลิด (ดูด้านล่าง) อินพุต อินพุตอาจถูกใช้เป็นการแทนค่าสตริงที่คั่นด้วยช่องว่างiและjหรือเป็นจำนวนเต็มสองตัวแยกกัน คุณสามารถสันนิษฐานได้ว่าจำนวนเต็มจะน้อยกว่าหรือเท่ากับ 10,000 คุณสามารถสันนิษฐานได้ว่าจำนวนเต็มอินพุทจะไม่เป็นไพรม์ต่อกัน การสลายแบบยุคลิด จำนวนที่มากขึ้นระหว่างiและjหารด้วยจำนวนที่น้อยกว่าให้มากที่สุด จากนั้นส่วนที่เหลือจะถูกเพิ่ม 0ขั้นตอนนี้ซ้ำกับที่เหลือและจำนวนก่อนจนเหลือจะกลายเป็น ตัวอย่างเช่นถ้าอินพุตคือ1599 650: 1599 = (650 * 2) + 299 650 = (299 * 2) + 52 299 = (52 * 5) + 39 52 = (39 * 1) + 13 39 = (13 * 3) + 0 …
22 code-golf  math 

6
วาดลวดลาย Houndstooth
เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้จำนวนเต็มบวกสองตัวความกว้างและความสูงและวาดรูปแบบกริดศิลปะ ASCII houndstoothกับมิติเหล่านั้นโดยใช้ขนาดข้อความ 25 × 26 เป็นเซลล์ฐาน: .......#.....#####....... .......##.....#####...... .......###.....#####..... .......####.....####..... .......#####.....###..... .......######.....##..... .......#######.....#..... .......########.......... ####################..... .####################.... ..####################... ...####################.. ....####################. .....#################### #.....##############.#### ##.....#############..### ###....#############...## ####...#############....# #####..#############..... .#####.#############..... ..##################..... ........#####............ .........#####........... ..........#####.......... ...........#####......... ............#####........ ดังนั้นถ้าอินพุตเป็น2,1เอาต์พุตจะเป็น: .......#.....#####..............#.....#####....... .......##.....#####.............##.....#####...... .......###.....#####............###.....#####..... .......####.....####............####.....####..... .......#####.....###............#####.....###..... .......######.....##............######.....##..... .......#######.....#............#######.....#..... .......########.................########.......... ####################.....####################..... .####################.....####################.... ..####################.....####################... ...####################.....####################.. ....####################.....####################. .....####################.....#################### #.....##############.#####.....##############.#### ##.....#############..#####.....#############..### …

4
การเพิ่มประสิทธิภาพคอมไพเลอร์ SKI
SKI แคลคูลัสเป็นตัวแปรของแคลคูลัสแลมบ์ดาที่ไม่ได้ใช้การแสดงออกแลมบ์ดา ใช้เฉพาะแอปพลิเคชันและ combinators S , Kและฉันเท่านั้น ในความท้าทายนี้งานของคุณคือการแปลแง่สกีเข้าแง่แลมบ์ดาในรูปแบบปกติβ ข้อกำหนดการป้อนข้อมูล อินพุตเป็นคำ SKI ในการแสดงข้อความต่อไปนี้ คุณอาจเลือกที่จะรับบรรทัดใหม่ที่เป็นตัวเลือก การป้อนข้อมูลที่ประกอบด้วยตัวอักษรS, K, I, (และ)และตอบสนองไวยากรณ์ต่อไปนี้ (ในรูปแบบ ABNF) กับstermการเป็นสัญลักษณ์เริ่มต้น: sterm = sterm combinator ; application sterm = combinator ; sterm = '(' sterm ')' ; grouping combinator = 'S' | 'K' | 'I' ; primitives สเปคเอาท์พุท เอาต์พุตเป็นคำแลมบ์ดาที่ไม่มีตัวแปรอิสระในการแสดงข้อความต่อไปนี้ คุณอาจเลือกที่จะแสดงบรรทัดใหม่ที่เป็นตัวเลือก ผลลัพธ์จะต้องเป็นไปตามหลักไวยากรณ์ต่อไปนี้ในรูปแบบ …

2
คุณสามารถเสกคาถาได้ไหม?
ในเวทย์มนตร์: กลุ่มผู้วิเศษ (เรียกว่า "planeswalkers") ต่อสู้กันโดยการร่ายคาถา คาถาต้นทุนมานา มีมานาห้าสี ได้แก่ สีขาวสีน้ำเงินสีดำสีแดงและสีเขียวแสดงเป็น {W}, {U}, {B}, {R} และ {G} ตามลำดับ ค่าใช้จ่ายของคาถาซับซ้อนกว่าเล็กน้อย ค่าใช้จ่ายสามารถรวมกันดังต่อไปนี้: หนึ่งสีขึ้นไป ไม่มีสีหนึ่งรายการหรือมากกว่าแสดงเป็น {X} โดยที่ X เป็นจำนวนเต็มบวก ลูกผสมหนึ่งตัวหรือมากกว่าแสดงเป็น {Y / Z} โดยที่ Y และ Z มีทั้งสี (แสดงโดยหนึ่งในห้าตัวอักษร) หรือไม่มีสีแทนด้วยจำนวนเต็มบวก ใช้กฎต่อไปนี้เมื่อพยายามเสกคาถา: สีในค่าใช้จ่ายจะต้องได้รับความพึงพอใจจากมานาหนึ่งสี ต้นทุนที่ไม่มีสี {X} อาจใช้ได้กับ X มานาทุกสี ค่าใช้จ่ายไฮบริด {Y / Z} อาจพอใจโดยการทำให้พอใจ Y หรือ Z …

8
ความสูงของกล่อง
ดูแผนภาพศิลปะ ascii นี้ของกล่องต่างๆ: +--------------------------------------------------------------+ | | | +-------------------------------+ +-------+ | | | | | | | | | | | | | | | +----------------+ | | | | | | | | | +-------+ | | | | | | | | | | | | +-------+ | | …

18
เอาท์พุทลำดับ Iccanobif
เขียนโปรแกรมหรือฟังก์ชั่นที่มีชื่อที่ออกจะกลับมาหรือลำดับขึ้นไปnจำนวนเต็ม TH ในลำดับ Iccanobif, เอกสารเกี่ยวกับ OEIS เป็นA014258 โปรดทราบว่าเฉพาะองค์ประกอบศูนย์ในลำดับ ( 0) จะถูกพิมพ์หากnเป็นศูนย์ ลำดับถูกสร้างขึ้นโดยเริ่มต้นเช่นลำดับ Fibonacci มาตรฐาน แต่หลังจากเพิ่มหมายเลขก่อนหน้านี้สองหมายเลขคุณพลิกผลลัพธ์และวางศูนย์นำหน้าใด ๆ ความจริงที่น่าสนใจสำหรับฉันอย่างน้อยก็คือลำดับนี้ไม่เพิ่มขึ้นอย่างเข้มงวด (ดูรายการด้านล่าง) มันก็ดูเหมือนจะเป็น (และอาจจะเป็น) มากกว่าหรือเท่ากับลำดับฟีโบนักชีอย่างเคร่งครัด โปรแกรมที่คุณป้อนต้องเป็นจำนวนเต็ม ลำดับ 20 หมายเลขแรกมีให้ที่นี่เพื่อความสุขในการรับชมของคุณ: 0, 1, 1, 2, 3, 5, 8, 31, 93, 421, 415, 638, 3501, 9314, 51821, 53116, 739401, 715297, 8964541, 8389769 ช่องโหว่มาตรฐานเป็นสิ่งต้องห้าม โปรแกรมที่สั้นที่สุดชนะ แก้ไข: เพิ่มหมายเหตุเพื่อชี้แจงว่าลำดับเริ่มต้นด้วยองค์ประกอบศูนย์และควรรวมหากnเป็นศูนย์ ตัวอย่างความเป็นไปได้ของ …

2
น้ำที่เก็บไว้ใน scuplture แกนหกเหลี่ยม
ฉันมีแท่งหกเหลี่ยมติดกันเป็นรูปปั้นแปลก ๆ แท่งมีความยาว 1 ถึง 99 เซนติเมตร (ซม.) และ 1 ตารางเซนติเมตรในพื้นที่หน้าตัด แท่งทั้งหมดจะติดกาวบนใบหน้าหกเหลี่ยมถึงแท่งอื่นอย่างน้อยหนึ่ง แท่งอยู่ในแนวเดียวกันที่ขอบด้านล่าง หลังจากฝนตกหนักประติมากรรมก็เต็มไปด้วยน้ำ ถือน้ำเท่าไหร่? อินพุต โปรแกรมของคุณควรอ่าน (ผ่าน stdin หรือไฟล์) จำนวนบรรทัดประกอบด้วยคู่ของช่องว่างและคู่ของตัวเลขที่ระบุความยาวของแท่งในรูปแบบนี้: aa bb cc dd ee ff gg แต่ละแท่ง (เช่น dd ที่นี่) ติดกาวได้สูงสุด 6 แท่งโดยรอบตามที่แสดงในตัวอย่าง แท่งที่หายไปคือหลุมและไม่รวบรวมน้ำ ตัวอย่างเช่นการป้อนข้อมูล 04 04 04 01 03 04 04 จะเป็นตัวแทนของประติมากรรมดังต่อไปนี้: แกนกลางมีความสูง1(ฉันไม่พบมุมที่ดีที่มองเห็นแท่งนั้นด้วย) ตอนนี้เสาเหนือแท่งนั้นสามารถกักเก็บน้ำไว้ได้ 2 ซม. ก่อนที่มันจะล้นเหนือ3แกนทางด้านขวา …

16
Riffle Array ทั่วไป
สนามกอล์ฟที่ง่ายต่อการเริ่มต้นสัปดาห์! คุณกำลังได้รับสามอาร์เรย์ที่: อาร์เรย์ฐาน Bที่ค่าอาร์เรย์ Vและอาร์เรย์ดัชนี Iคุณควรผลิตอาร์เรย์อื่นที่ค่าจากVจะแทรกเข้าไปในดัชนีที่กำหนดโดยB Iนี่คือตัวอย่าง: Base: [5, 1, 4, 1, 3] Values: [0, 0, 7] Indices: [5, 0, 3] ดัชนีชี้ไปที่ตำแหน่งต่อไปนี้ในอาร์เรย์ฐาน: [ 5, 1, 4, 1, 3 ] ^ ^ ^ 0 3 5 ดังนั้นการแทรกองค์ประกอบที่สอดคล้องกันจากอาร์เรย์ค่าผลลัพธ์ควรเป็น: [0, 5, 1, 4, 7, 1, 3, 0] กฎระเบียบ คุณอาจจะเขียนโปรแกรมหรือฟังก์ชั่นการป้อนข้อมูลผ่านทาง STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด) อาร์กิวเมนต์บรรทัดคำสั่งหรือข้อโต้แย้งฟังก์ชั่นและการส่งออกผลผ่าน STDOUT …

12
ตัวเลขที่ไม่ใช่ศูนย์ล่าสุดของแฟคทอเรียลในฐาน
คุณควรจะเขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับสามจำนวนเต็มบวกn b kเป็นผลการป้อนข้อมูลหรือผลตอบแทนที่ผ่านมาkตัวเลขก่อนที่ศูนย์ต่อท้ายในฐานตัวแทนของbn! ตัวอย่าง n=7 b=5 k=4 factorial(n) is 5040 5040 is 130130 in base 5 the last 4 digits of 130130 before the trailing zeros are 3013 the output is 3013 อินพุต 3 จำนวนเต็มบวกที่n b k2 <= b <= 10 ลำดับของจำนวนเต็มอินพุทสามารถเลือกได้เอง เอาท์พุต รายการของตัวเลขที่ส่งคืนหรือส่งออกเป็นรายการจำนวนเต็มหรือจำนวนเต็ม เลขศูนย์นำหน้าเป็นตัวเลือก โซลูชันของคุณต้องแก้กรณีทดสอบตัวอย่างใด ๆในคอมพิวเตอร์ของฉัน (ฉันจะทดสอบเฉพาะกรณีที่ปิดฉันมีพีซีที่ต่ำกว่าค่าเฉลี่ย) ตัวอย่าง เพิ่มการทดสอบใหม่เพื่อตรวจสอบความถูกต้องของการส่ง …

10
ต่อแผ่นระนาบกับวงกลมที่ถูกดัดแปลงนี้
นำหน่วยวงกลมตรงกลางที่จุดกำเนิด ในจตุภาคที่อยู่ใกล้เคียงสองจุดให้สะท้อนโค้งของวงกลมข้ามเส้นที่เชื่อมระหว่างจุดตัดแกน x และ y ด้วยรูปร่างที่ได้คุณสามารถเรียงแผ่นระนาบ: ฉันสร้างภาพนี้ด้วยกล่องทรายฟิสิกส์ 2D สุดยอด Algodoo ! เขียนโปรแกรมที่ให้ภาพคล้ายกับภาพนี้ในรูปแบบไฟล์ภาพ lossless ทั่วไปบางรูปแบบ คุณสามารถบันทึกภาพเป็นไฟล์ที่มีชื่อที่คุณเลือกหรือคุณอาจแสดงมัน ไม่ควรป้อนข้อมูลใด ๆ กฎ: ทั้งภาพจะต้อง tessellated กับกระเบื้องปรับเปลี่ยนวงกลมโดยใช้สองสี RGB ที่แตกต่างกันทางสายตาหนึ่งสำหรับกระเบื้องในแนวตั้งชี้หนึ่งสำหรับกระเบื้องแนวนอนชี้ รัศมีของแผ่นวงกลมควรมีอย่างน้อย 32 พิกเซล (รัศมีในภาพด้านบนมีประมาณ 110 พิกเซล) รูปภาพควรมีขนาดอย่างน้อย 4 แผ่นและสูง 4 แผ่น สิ่งนี้รวมกับกฎข้างต้นหมายความว่ารูปภาพสามารถมีขนาดขั้นต่ำ 256 × 256 พิกเซล (ภาพด้านบนคือ 4 แผ่นโดย 4 แผ่น) tessellation อาจถูกแปลด้วยจำนวนเงินใด ๆ ตัวอย่างเช่นมุมซ้ายบนของรูปภาพไม่จำเป็นต้องเป็นจุดสุดยอดที่แผ่นกระเบื้องมาบรรจบกัน (tessellation ไม่ควรหมุนอย่างไรก็ตาม) …

7
ทำนายดินถล่ม
แผ่นดินถล่ม ในการท้าทายนี้งานของคุณคือการคาดการณ์ขอบเขตของความเสียหายที่เกิดจากแผ่นดินถล่มขนาดใหญ่ เราใช้ต่อไปนี้ง่ายรูปแบบสองมิติมันแปรโดยความสูงเริ่มต้น h >= 0และค่าสัมประสิทธิ์ที่สำคัญ c > 0คุณเริ่มต้นด้วยหน้าผาสูงhและมีการสันนิษฐานว่าภูมิประเทศนั้นแบนราบไปทางซ้ายและทางขวาของมันอย่างไม่สิ้นสุด สำหรับh = 6สถานการณ์จะเป็นดังนี้: ########## ########## ########## ########## ########## ########## ----------------------- -มีข้อเท็จจริงอสังหาริมทรัพย์และ#เป็นดินที่ไม่เสถียร หากความแตกต่างของความสูงระหว่างสองคอลัมน์ที่อยู่ใกล้เคียงเป็นมากกว่าcการถล่มเกิดขึ้น: ด้านบนcหน่วยของดินจากคอลัมน์ด้านซ้ายล้มลงไปยังcคอลัมน์ทางด้านขวาหนึ่งไปยังแต่ละ คอลัมน์ที่ไม่ว่างด้านขวาสุดในรูปนั้นไม่เสถียรc = 2ดังนั้นจึงมีการเรียกดินถล่ม: ######### ######### ########## ########## ########## ############ ----------------------- คอลัมน์ยังคงไม่เสถียรซึ่งทำให้เกิดแผ่นดินถล่มครั้งที่สอง: ######### ######### ######### ######### ############ ############ ----------------------- ตอนนี้คอลัมน์ทางซ้ายไม่เสถียรดังนั้นดินถล่มใหม่จึงถูกเรียกขึ้นมาที่นั่น: ######## ######## ######### ########### ############ ############ ----------------------- หลังจากนี้หน้าผาก็มั่นคงอีกครั้ง สิ่งที่ดีเกี่ยวกับโมเดลนี้คือลำดับของการถล่มที่ประมวลผลไม่สำคัญ: …
22 code-golf 

6
สร้าง De Bruijn ที่สั้นที่สุด
ลำดับ De Bruijn เป็นที่น่าสนใจ: มันเป็นลำดับวงจรที่สั้นที่สุดและมีลำดับที่เป็นไปได้ทั้งหมดของตัวอักษรที่กำหนดตามความยาวที่กำหนด ตัวอย่างเช่นหากเราพิจารณาตัวอักษร A, B, C และความยาว 3 เอาต์พุตที่เป็นไปได้คือ: AAABBBCCCABCACCBBAACBCBABAC คุณจะพบว่าเป็นไปได้ลำดับที่ 3 ตัวละครทุกตัวโดยใช้ตัวอักษรA, BและCมีอยู่ใน ความท้าทายของคุณคือการสร้างลำดับ De Bruijn ในตัวละครน้อยที่สุด ฟังก์ชั่นของคุณควรใช้สองพารามิเตอร์จำนวนเต็มแทนความยาวของลำดับและรายการที่มีตัวอักษร ผลลัพธ์ของคุณควรเป็นลำดับในรูปแบบรายการ คุณอาจคิดว่าทุกรายการในตัวอักษรมีความแตกต่าง เครื่องกำเนิดตัวอย่างสามารถพบได้ที่นี่ ช่องโหว่มาตรฐานใช้

9
ซีซาร์-Cypher-Mania
ซีซาร์ศูนย์เป็นศูนย์เปลี่ยนตัวง่ายมากที่ตัวอักษรแต่ละตัวจะเลื่อนโดยคงชดเชย (บ่วงรอบ Z ถึง A) ในทำนองเดียวกันเรายังสามารถ Caesar Cypher สำหรับชุดอักขระ ASCII ที่พิมพ์ได้ นี่คืออักขระ 95 ตัวจากรหัสจุด 0x20 ถึง 0x7E สำหรับการชดเชยที่กำหนดdเราจะจับคู่รหัสCกับ (C - 32 + d) % 95 + 32 ซึ่งเปลี่ยนอักขระทั้งหมดโดย a dและวนรอบจาก~พื้นที่ อักขระที่อยู่นอกช่วงนี้ (อักขระควบคุมเช่นบรรทัดใหม่แท็บและอักขระที่อยู่นอกช่วง ASCII) จะไม่ได้รับผลกระทบ คุณต้องเขียนโปรแกรมหรือฟังก์ชั่นสองอย่าง (อาจแตกต่างกันในภาษาต่าง ๆ ) ซึ่งเป็นการชดเชยdและสตริง โปรแกรมแรกควรกลับหรือพิมพ์ Cypher ของ Caesar ของอินพุต โปรแกรมที่สองควรส่งคืนหรือพิมพ์ผกผันซีซาร์เลขศูนย์ (เช่นใช้ชดเชย-d) คุณสามารถรับอินพุตผ่าน STDIN อาร์กิวเมนต์บรรทัดคำสั่งหรือฟังก์ชันอาร์กิวเมนต์ เพื่อให้สิ่งต่าง …

27
เครื่องกำเนิดไฟฟ้า Palindromic Palindrome
สร้างโปรแกรมที่แปลงสตริงอินพุตเป็น palindrome เริ่มต้นด้วยสตริงอินพุต ตัวโปรแกรมเองจะต้องเป็นแบบ palindrome ยกตัวอย่างเช่นการป้อนข้อมูล: พิมพ์neverod neveroddorevenคุณควรจัดการอินพุตแบบหลายคำหลายบรรทัดเช่นกัน

6
Quines เชิงลบร่วมกัน
สิ่งนี้ได้รับแรงบันดาลใจจากปรินท์การลบประมวลกฎหมายและกอล์ฟของคุณ พิจารณาสี่เหลี่ยมผืนผ้าของอักขระที่ตรงตามข้อ จำกัด ต่อไปนี้: ประกอบด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้น ขนาดทั้งใหญ่กว่า 1 แต่ละแถวและแต่ละคอลัมน์มีช่องว่างอย่างน้อยหนึ่งช่อง แต่ละแถวและแต่ละคอลัมน์มีอักขระที่ไม่ใช่ช่องว่างอย่างน้อยหนึ่งตัว ตัวอย่างเช่นต่อไปนี้เป็นสี่เหลี่ยมผืนผ้า 6x4 ที่ถูกต้อง: %n 2e 1 g 3 &* __ 3 เชิงลบสำหรับสี่เหลี่ยมผืนผ้านี้ถูกกำหนดให้เป็นรูปสี่เหลี่ยมผืนผ้าขนาดเท่ากันกับช่องว่างทั้งหมดแทนที่ด้วยอักขระที่ไม่ใช่พื้นที่และทุกอักขระที่ไม่ใช่พื้นที่แทนที่ด้วยช่องว่าง ค่าลบของสี่เหลี่ยมด้านบนอาจเป็น: f ^ 33 > 9 $ ^ }|Q' อักขระ ASCII ที่ไม่สามารถพิมพ์ได้ใด ๆ ที่ไม่ใช่ช่องว่างอาจถูกใช้เพื่อแทนที่ช่องว่าง งาน งานของคุณคือการเขียนโปรแกรมด้วยซอร์สโค้ดรูปสี่เหลี่ยมผืนผ้าซึ่งให้ผลลบที่ถูกต้องกับตัวมันเอง ผลลัพธ์เชิงลบจะต้องเป็นโปรแกรมที่ถูกต้องในภาษาเดียวกันกับต้นฉบับและจะต้องส่งออกแหล่งที่มาของต้นฉบับ ไม่มีช่องว่างต่อท้ายที่อาจจะเพิ่มหรือลบยกเว้นบรรทัดใหม่ต่อท้ายเดียวในตอนท้ายของการส่งออกอย่างใดอย่างหนึ่งซึ่งเป็นตัวเลือก โปรแกรมไม่ได้รับอนุญาตให้อ่านซอร์สโค้ดของทั้งคู่ และไม่อาจถือว่าสภาพแวดล้อม REPL เกณฑ์การให้คะแนน คะแนนของคุณคือผลคูณของรหัสของคุณ (เช่นถ้าซอร์สโค้ดของคุณอยู่ในสี่เหลี่ยม 12 คูณ 25 …

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