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

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

6
ตัวแปลงสี RGB เป็น Xterm
หน้าจอเทอร์มินัลที่รองรับ Xterm 256 สีเพิ่ม 240 สีด้านบนของสีระบบ 16 สีปกติ สี 16-231 ใช้ 6 ระดับ (0, 95, 135, 175, 215, 255) สีแดงสีเขียวและสีน้ำเงินเรียงคำศัพท์ สี 232-255 เป็นสีเทาเพียง 24 ระดับ (8 ... 238 คูณ 10 วินาที) เพื่อให้ได้แนวคิดที่ดีขึ้นเกี่ยวกับสิ่งที่ฉันกำลังพูดถึงดูตารางนี้ ความท้าทาย เป้าหมายของคุณคือสร้างโปรแกรมหรือฟังก์ชั่นที่ใช้ป้อนค่า rgb และส่งออกหมายเลขที่สอดคล้องกับสี Xterm ที่ใกล้เคียงที่สุดกับค่า rgb นั้น เนื่องจากสีของระบบ 16 สี (สี 0-15) มักจะสามารถปรับแต่งได้คุณจะไม่รวมค่าเหล่านี้จากการแปลงนี้ เพื่อกำหนดสิ่งที่สี "ใกล้เคียงที่สุด" ให้ใช้ระยะทางแมนฮัตตันตามส่วนประกอบสีแดงสีเขียวและสีน้ำเงิน ยกตัวอย่างเช่นrgb(10, …
13 code-golf  color 

3
รหัสกอล์ฟจำลองสนามกอล์ฟ
รับรายการของระยะหลุมขนาดสีเขียวมุมชิ้นและระยะทางสูงสุดคำนวณคะแนนกอล์ฟ สมมติฐาน โลกแบน ผักใบเขียวทั้งหมดเป็นวงกลม มุมสไลซ์จะอยู่ระหว่าง -45 ถึง 45 องศาและจะได้รับเป็นองศา ระยะทางทั้งหมดในตัวชี้วัดเดียวกัน (หลาหรือเมตรไม่สำคัญ) ไม่มีขอบเขตสิ่งกีดขวางหรือ doglegs คะแนนสูงสุดในหลุมใด ๆ คือ 8 ทุกช็อตจะเคลื่อนที่ไปในระยะที่น้อยกว่าหรือระยะทางสูงสุดไปยังรูในทิศทางที่กำหนดโดยมุมไปยังรูบวกกับมุมของชิ้น ระยะทางถูกวัดเป็นเส้นตรงหรือระยะทางแบบยุคลิดระหว่างจุดเริ่มต้นและจุดสิ้นสุด ระยะทางสูงสุดและมุมชิ้นจะเท่ากันสำหรับทุกช็อตในทุกหลุม นักกอล์ฟสองพัตหนึ่งครั้งบนกรีน (หรือที่ขอบกรีน) ตัวอย่าง ลองดูที่แฮ็กเกอร์จากกรณีทดสอบ # 5 ด้านล่างเพื่อหารู # 2 แฮ็กเกอร์สามารถตีลูกบอลได้ 320 หลา แต่จะแบ่ง 30 องศาเสมอ หากเราสมมติโดยไม่สูญเสียความคิดทั่วไปว่ากล่องทีออฟอยู่ที่ {0,0} และกรีนอยู่ที่ {497,0} จากนั้นเขาจะตีช็อตไปยังจุดต่อไปนี้มาถึงกรีนด้วยช็อตที่ 7: {{0.,0.},{277.128,-160.},{547.543,-131.372},{569.457,7.67088},{502.872,37.2564},{479.159,7.92741},{490.646,-7.85868},{500.078,-4.22987}} เมื่อมาถึงจุดนี้คะแนนของเขาจะเป็น 9 เนื่องจากทั้งสองพัตต์ที่ต้องการดังนั้นคะแนนสุดท้ายสำหรับเขาจะต่อยอดที่ 8 ตามสมมติฐาน กราฟิกมันจะมีลักษณะเช่นนี้: กรณีทดสอบ กรณีทดสอบทั้งหมดมีหลักสูตร …

2
วิธีการแก้ปัญหาทั้งหมดใน“ คืนความจริงเพื่อชนะ” ใน 21 ตัวอักษร
มีเว็บไซต์ที่เรียกว่าเป็น"กลับมาทรูที่จะชนะ"กับงานที่น่าสนใจสำหรับการเขียนโปรแกรมจาวาสคริ เป้าหมายคือการหาข้อโต้แย้งกับฟังก์ชั่นที่กำหนดซึ่งบังคับให้มันคืนค่าจริง ต่อไปนี้เป็นหนึ่งในภารกิจ: function total(x) { return (x < x) && (x == x) && (x > x); } ผู้ใช้ต้องค้นหาตัวอย่างสำหรับค่าxที่ทำให้ฟังก์ชันกลับจริง ในการทดสอบตัวอย่างคุณเรียกใช้ฟังก์ชันโดยมีตัวอย่างข้อมูลเป็นพารามิเตอร์ (เช่นtotal(<snippet>)) ฉันพบวิธีแก้ปัญหา 22 อักขระ: {valueOf:_=>n++%3},n=0 บางคนพบวิธีแก้ปัญหาใน 21 ตัวอักษร ฉันหาคำตอบนี้ไม่ได้ การแก้ปัญหาใน 21 ตัวอักษรคืออะไร?

5
จำนวนเต็มรูปสามเหลี่ยมที่มีเส้นรอบวงน้อยกว่า n
คำนิยาม "สามเหลี่ยมจำนวนเต็ม" คืออันที่มีพิกัดจำนวนเต็ม ตัวอย่างเช่นสามเหลี่ยมต่อไปนี้เป็นสามเหลี่ยมจำนวนเต็ม: (0, 0), (0, 1), (1, 2) with perimeter 1 + sqrt(2) + sqrt(5) ≈ 4.650. งาน เป้าหมายของความท้าทายนี้คือการนับรูปสามเหลี่ยมจำนวนเต็มทั้งหมด (ไม่เกินความสอดคล้อง) ด้วยขอบเขตน้อยกว่า n อินพุตและเอาต์พุต อาร์กิวเมนต์จะได้รับเป็นจำนวนเต็มและผลลัพธ์ควรเป็นจำนวนของรูปสามเหลี่ยมที่มีเส้นรอบวงน้อยกว่าการโต้แย้ง ตัวอย่าง สามเหลี่ยมจำนวนเต็มที่เล็กที่สุดโดยขอบเขตจะสอดคล้องกับ (0, 0), (0, 1), (1, 0) which has perimeter 2 + sqrt(2) ≈ 3.414 ที่เล็กที่สุดถัดไปคือ: (0, 0), (0, 1), (1, 2) with …

3
การทำให้เป็นสตริงย่อยแบบคอมมิวนิสต์
ถ้าสตริงTของความยาวKปรากฏKครั้งหรือมากกว่าในสตริงSแล้วมันอาจเป็นคอมมิวนิสต์ ยกตัวอย่างเช่น10ใน10/10อาจเป็นคอมมิวนิสต์มันปรากฏขึ้น2ครั้งและมีความยาว2 โปรดทราบว่าสตริงย่อยเหล่านี้ไม่สามารถทับซ้อนกันได้ เปลี่ยนแปลงคอมมิวนิสต์เป็นหนึ่งที่จะสายนี้Tและย้ายตัวละครแต่ละทีฉันของTกับฉันการเกิดขึ้นของTในS ดังนั้นสำหรับตัวอย่างก่อนหน้าการเปลี่ยนแปลงของคอมมิวนิสต์จะให้ผล1/0; ตัวอักษรตัวแรกของ10แทนที่10ครั้งแรกที่10พบและ0ครั้งที่สอง ฟื้นฟูคอมมิวนิสต์เป็นฟังก์ชั่นที่ใช้เวลาสตริงทั้งหมดเช่นTกับK ≥ 2 และดำเนินการเปลี่ยนแปลงคอมมิวนิสต์กับพวกเขา ข้อมูลจำเพาะบางอย่างเกี่ยวกับอัลกอริทึม: ดำเนินการแปลงคอมมิวนิสต์ในสายที่ยาวที่สุดที่ถูกต้องT แรก Favor เกิดขึ้นเป็นครั้งแรกของT จากนั้นทำการแปลงคอมมิวนิสต์ในสตริงถัดไปยาวที่สุดจากนั้นถัดไปยาวที่สุด ... ฯลฯ ทำซ้ำจนกระทั่งไม่มีสตริงดังกล่าวอยู่ในสตริง โปรดทราบว่าบางสตริงเช่นตัวอย่าง "Hello, Hello" ในกรณีทดสอบสามารถตีความได้สองวิธี คุณสามารถใช้ellสำหรับTlloแต่คุณยังสามารถใช้ ในกรณีนี้รหัสของคุณสามารถเลือกได้ทั้งตัวเลือก กรณีทดสอบที่แสดงใช้lloแต่คุณอาจได้ผลลัพธ์ที่แตกต่างและถูกต้องเท่ากัน งานของคุณคือการทำให้เป็นมาตรฐานคอมมิวนิสต์ ข้อมูลที่ป้อนจะประกอบด้วยอักขระ ASCII ที่พิมพ์ได้เท่านั้น (0x20 ถึง 0x7E, เว้นวรรคจนถึงเครื่องหมายตัวหนอน) คุณสามารถเขียนโปรแกรมหรือฟังก์ชันเพื่อแก้ปัญหานี้ อินพุตอาจถูกนำมาเป็นบรรทัดจาก STDIN, อาร์กิวเมนต์สตริง / อักขระอาร์เรย์, อาร์กิวเมนต์จาก ARGV เป็นต้น กรณีทดสอบ '123' -> '123' '111' -> '111' …
13 code-golf  string 

20
คำนวณเมทริกซ์จัตุรัสที่เหมาะสมที่สุด
เมทริกซ์ที่ดีที่สุด (สำหรับขอบเขตค่อนข้างแคบ ๆ ของความท้าทายนี้) จะได้รับโดย "ซิป" องค์ประกอบจากแถวที่สอดคล้องกันและคอลัมน์ของตารางเมทริกซ์และได้รับสูงสุดของแต่ละคู่ ตัวอย่างเช่นให้เมทริกซ์ต่อไปนี้: 4 5 6 1 7 2 7 3 0 คุณสามารถรวมมันเข้ากับ transpose เพื่อรับ: [[[4,5,6],[4,1,7]],[[1,7,2],[5,7,3]],[[7,3,0],[6,2,0]]]. [[(4,4),(5,1),(6,7)],[(1,5),(7,7),(2,3)],[(7,6),(3,2),(0,0)]]หากคุณซิปคู่ของรายการแต่ละท่านได้รับต่อไปนี้: ขั้นตอนสุดท้ายคือการรับค่าสูงสุดของแต่ละคู่เพื่อรับเมทริกซ์ที่ดีที่สุด: 4 5 7 5 7 3 7 3 0 งานของคุณคือการส่งออกเมทริกซ์ที่ดีที่สุดของเมทริกซ์สี่เหลี่ยมที่กำหนดเป็นอินพุต เมทริกซ์จะมีจำนวนเต็มเท่านั้น I / O สามารถทำได้ในรูปแบบที่เหมาะสม รหัสที่สั้นที่สุดในหน่วยไบต์ (ทั้งใน UTF-8 หรือในการเข้ารหัสที่กำหนดเองของภาษา) ชนะ! การทดสอบ [[172,29], [29,0]] -> [[172,29], [29,0]] [[4,5,6], …

9
พหุนามลักษณะ
พหุนามลักษณะเฉพาะของเมทริกซ์จัตุรัสถูกกำหนดให้เป็นพหุนามP (x) = det ( ฉัน x- ) ซึ่งผมเป็นเมทริกซ์เอกลักษณ์และdetปัจจัย โปรดทราบว่าคำจำกัดความนี้ให้พหุนาม monicกับเราเสมอว่าคำตอบนั้นมีเอกลักษณ์ งานของคุณสำหรับความท้าทายนี้คือการคำนวณค่าสัมประสิทธิ์ของพหุนามลักษณะสำหรับเมทริกซ์จำนวนเต็มสำหรับเรื่องนี้คุณอาจใช้บิวด์อิน แต่มันก็หมดกำลังใจ กฎระเบียบ input เป็นเมทริกซ์จำนวนเต็ม NxN (N ≥ 1) ในรูปแบบที่สะดวก โปรแกรม / ฟังก์ชั่นของคุณจะแสดงผล / คืนค่าสัมประสิทธิ์ไม่ว่าจะเพิ่มหรือลดลง (โปรดระบุว่า) สัมประสิทธิ์เป็นบรรทัดฐานที่สัมประสิทธิ์ของ x Nคือ 1 (ดูกรณีทดสอบ) คุณไม่จำเป็นต้องจัดการอินพุตที่ไม่ถูกต้อง Testcases สัมประสิทธิ์จะได้รับตามลำดับที่ลดลง (เช่น. x N , x N-1 , ... , x 2 , x, 1): [0] …

10
เครื่องคิดเลขเกรดเฉลี่ยของนักศึกษาวิทยาลัยที่กำลังดิ้นรน
เครื่องคิดเลขเกรดเฉลี่ย (เกรดเฉลี่ย = เกรดคะแนนเฉลี่ย) คุณเป็นนักศึกษาวิทยาลัยเครียดในรอบชิงชนะเลิศสัปดาห์ แทนที่จะเรียนสำหรับการสอบที่กำลังจะมาถึงคุณตัดสินใจว่าจะเป็นการดีที่สุดที่จะกำหนดเกรดเฉลี่ยที่คุณจะได้เมื่อจบภาคการศึกษา วิธีนี้คุณมีข้อมูลสำรองการตัดสินใจพักทั้งคืนเพื่อรับ A ในแคลคูลัสแทนที่จะเป็น B เพื่ออยู่ในรายการของ Dean! เป็นวิทยาการคอมพิวเตอร์ที่สำคัญที่คุณต้องการค้นหาวิธีเด็ดสุดในการกำหนดเกรดเฉลี่ยนี้ แน่นอนว่าวิธีที่ดีที่สุดคือใช้รหัสที่สั้นที่สุด! นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ! รายละเอียด วิทยาลัยที่คุณใช้เกรดเฉลี่ยขั้นต่ำพร้อมกับชั่วโมงเครดิต เกรดตัวอักษร A คือ 4.0, B คือ 3.0, C คือ 2.0, D คือ 1.0 และ F คือ 0.0 เกรดเฉลี่ยของคุณเป็นเกรดเฉลี่ยถ่วงน้ำหนักดังนั้นเกรด A ใน 4 ชั่วโมงเครดิตจึงนับเป็น 4 เท่าของคะแนน A ในระดับเครดิต 1 ชั่วโมง (ดูตัวอย่างด้านล่างเพื่อดูคำอธิบายเรื่องน้ำหนักเพิ่มเติม) ช่วงเวลาเครดิตเริ่มตั้งแต่ 1-4 …
13 code-golf 

4
มีอินสแตนซ์กำลังทำงานกี่อินสแตนซ์
เขียนโปรแกรมที่ทำงานอยู่เรื่อย ๆ เพื่อรายงานจำนวนอินสแตนซ์ของตัวเองที่กำลังทำงานอยู่ แต่ละอินสแตนซ์ของโปรแกรมควรรายงานลำดับที่เปิดจากอินสแตนซ์ที่กำลังทำงานอยู่ทั้งหมด ตัวอย่าง ผู้ใช้เปิดตัวโปรแกรมเป็นครั้งแรก - เราจะเรียกอินสแตนซ์นี้ว่า 1 อินสแตนซ์ 1 แสดง1/1เนื่องจากเป็นอินสแตนซ์แรกที่เปิดใช้จากอินสแตนซ์ที่กำลังทำงานอยู่ทั้งหมด1อินสแตนซ์ ในขณะที่อินสแตนซ์ 1 กำลังทำงานผู้ใช้จะเรียกใช้โปรแกรมเป็นครั้งที่สองเพื่อกลายเป็นอินสแตนซ์ 2 ตอนนี้อินสแตนซ์ 1 จะปรากฏขึ้น1/2โดยเป็นอินสแตนซ์แรกจากทั้งหมด2อินสแตนซ์ที่กำลังทำงานอยู่ อินสแตนซ์ 2 แสดงขึ้น2/2เนื่องจากเป็นอินสแตนซ์ที่สองจากทั้งหมด2อินสแตนซ์ที่กำลังทำงานอยู่ สมมติว่าผู้ใช้ยังคงวางไข่เพิ่มเติมจนกว่าจะมี5คน 1/5 2/5 3/5 4/5 5/5ในคำสั่งของการเปิดตัวเอาท์พุทของพวกเขาคือ ตอนนี้ขอบอกว่าผู้ใช้ตัดสินใจที่จะยุติอินสแตนซ์ 3. อินสแตนซ์ 4 แล้วจะกลายเป็นอินสแตนซ์ใหม่ 3 และอินสแตนซ์ 5 อินสแตนซ์ใหม่ 4 เพราะพวกเขาเป็นลำดับที่สามและสี่กรณีที่จะมีการเปิดตัวออกมาจากสิ่งที่มีอยู่ในขณะนี้มีทั้งหมด4ตัวอย่าง. ดังนั้นการเปลี่ยนแปลงของแต่ละอินสแตนซ์จะเป็นดังนี้: 1/5 → 1/4 2/5 → 2/4 3/5 → (ยกเลิก) 4/5 …

25
คำนวณ Divmod ด้านบน
งาน รับจำนวนเต็มบวกสองตัว ( หารe nd และ divis o r) ให้คำนวณq uotient และr emainder ปกติมันจะคำนวณเป็นe = o*q+rที่และq*o<=e สำหรับความท้าทายนี้ก็ยังคงแต่และ ตัวอย่างและปกติก็จะเป็นตั้งแต่และ ที่นี่จะเป็นที่ไหนและ0<=r<oe = o*q+rq*o>=e-o<r<=0e=20o=320/3 -> 20=3*6+218<=200<=2<320/3 -> 20=3*7-121>=20-3<-1<=0 กรณีทดสอบ Input -> Output 20, 3 -> 7, -1 10, 5 -> 2, 0 7, 20 -> 1, -13 100, 13 -> 8, -4 o=0คุณไม่จำเป็นต้องจับ

6
ASCII Hexagon Chain
ปัญหา วาดห่วงโซ่หกเหลี่ยมxยาวแต่ละข้างมีyความยาว อินพุต x - ความยาวของโซ่ <= 50 y - ความยาวของแต่ละด้าน <= 50 ตัวอย่าง x=1,y=1 _ / \ \_/ x=4,y=1 _ _ / \_/ \_ \_/ \_/ \ \_/ \_/ x=3,y=2 __ __ / \ / \ / \__/ \ \ / \ / \__/ \__/ \ / \__/ กฎระเบียบ …

6
หมุนวนตัวอักษร!
ดูที่สตริงต่อไปนี้ สังเกตรูปแบบหรือไม่ ABEFNOPEFGH DC GQI MHRJ LKJI SK DTL CUM BAZYXWV N EO DP CQ BAZYXWVUTSR บางคนอาจสังเกตเห็นว่ามันเป็นเกลียวของตัวอักษรโดยที่ระยะทางระหว่างแถว / คอลัมน์ค่อยๆเพิ่มขึ้น 1 ช่องว่าง / บรรทัดใหม่ คำจำกัดความที่เข้มงวด ลองมีตัวนับcซึ่งเริ่มเป็น 0 เราเขียนออกมาเป็นครั้งแรกC + 1Aตัวอักษรของตัวอักษรจากซ้ายไปขวา: จากนั้นจากบนลงล่างต่อไป(C + 1) (C + 2) / 2ตัวอักษร (เพิ่ม):BAB จากซ้ายไปขวาถัดไป(c + 1) (c + 2) / 2 (เพิ่มC): AB C และจากล่างขึ้นบนจะใช้ตัวอักษรc …

4
มันคือสองฝ่าย?
ฝ่ายกราฟเป็นกราฟที่มีจุดสามารถแบ่งออกเป็นสองชุดเคลื่อนเช่นว่าขอบไม่เชื่อมต่อสองจุดอยู่ในชุดเดียวกัน กราฟเป็นสองฝ่ายถ้าหากมันเป็น 2 สี ท้าทาย งานของคุณคือการให้กราฟadjacencyของกราฟง่าย ๆ ไม่ได้บอกทิศทางว่าเป็นกราฟสองฝ่ายหรือไม่ นั่นคือถ้าขอบเชื่อมต่อจุดยอด i และ j ทั้งสองรายการ (i, j) และ (j, i) ของเมทริกซ์คือ 1 เนื่องจากกราฟนั้นไม่ได้บอกทิศทางและเรียบง่ายเมทริกซ์ adjacency จึงมีความสมมาตรและมีเพียง 0 และ 1 ข้อมูลจำเพาะ คุณควรใช้เมทริกซ์ N-by-N เป็นอินพุต (ในรูปแบบใด ๆ เช่นรายการของรายการ, รายการสตริง, C-like int**และขนาด, อาร์เรย์ที่แบน, อินพุตดิบ ฯลฯ ) ฟังก์ชั่น / โปรแกรมควรกลับ / ส่งออกค่าความจริงถ้ากราฟเป็นสองฝ่ายและเป็นเท็จอย่างอื่น กรณีทดสอบ ['00101', '00010', '10001', '01000', …

21
ย้ำลำดับพี
ที่เกี่ยวข้อง: ซ้ำพี (n) ฟังก์ชั่น ความท้าทายของคุณคือการคำนวณฟังก์ชั่นซ้ำซ้อน: f(n) = number of iterations of φ for n to reach 1. ที่ไหนφเป็นtotient ฟังก์ชันออยเลอร์ ที่เกี่ยวข้องOEIS นี่คือกราฟของมัน: กฎ: เป้าหมายของคุณคือการส่งออกf(n)จากการn=2n=100 นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ นี่คือค่าที่คุณสามารถตรวจสอบได้: 1, 2, 2, 3, 2, 3, 3, 3, 3, 4, 3, 4, 3, 4, 4, 5, 3, 4, 4, 4, 4, 5, 4, …

14
ปิรามิด Scheme Negation
ในPyramid Schemeภาษาของฉันมีโครงสร้างที่ตลกเล็กน้อย: สามเหลี่ยมว่าง: ^ - 0เมื่อได้รับการขัดแย้งใดก็จะส่งกลับ เพื่อสร้าง1โดยใช้โครงสร้างนี้เราสามารถใช้สิ่งนี้: ^ /!\ ^--- - นี่จะผ่าน0ไปยังฟังก์ชันลบ เราสามารถคัดค้านผลลัพธ์นี้ต่อไป: ^ /!\ ---^ /!\ ^--- - ในการรับ 0. การปฏิเสธเพิ่มอีกหนึ่งรายการ: ^ /!\ ^--- /!\ ---^ /!\ ^--- - ท้าทาย รับจำนวนเต็มn ≥ 1 ส่งออกพีระมิดที่ว่างเปล่าเมื่อตะกี้nครั้งในรูปแบบที่อธิบายไว้ กรณีทดสอบ input output 1 ^ /!\ ^--- - 2 ^ /!\ ---^ /!\ ^--- - …

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