เป้าหมายคือการเขียนโปรแกรมที่เข้ารหัสโปรแกรมอื่น (อินพุต) ด้วยอักขระที่น้อยที่สุดเท่าที่จะเป็นไปได้
เกณฑ์การให้คะแนน
- คะแนนเท่ากับจำนวนอักขระที่ต้องการสำหรับเอาต์พุต
- คะแนนต่ำกว่าดีกว่า
กฎระเบียบ
- ไม่มีภาษาเป้าหมายที่มีชุดคำสั่งที่ จำกัด (ไม่มี Brainf ** k, Whitespace และอื่น ๆ )
แก้ไข : ฉันหมายถึงอักขระที่สำคัญอย่างน้อย 26 ตัวA
ไม่เปลี่ยนวิธีการทำงานของโปรแกรม brainf ** k ดังนั้นคุณจึงไม่สามารถนับตัวละครนี้ได้ เช่นเดียวกับช่องว่าง - ต้องมีภาษาเป้าหมายในเวลาที่เขียนคำถามนี้
- คุณต้องรวมคำอธิบายเล็ก ๆ น้อย ๆ ว่าคุณเก็บคะแนนของคุณอย่างไร
- โปรแกรมอินพุตถูกต้อง
- โปรแกรมที่เข้ารหัสต้องเป็นโปรแกรมที่ถูกต้องในภาษาเดียวกันกับอินพุต
- โปรแกรมที่เข้ารหัสต้องทำงานเช่นเดียวกับโปรแกรมต้นฉบับ
- โปรแกรมเปลี่ยนไฟล์ของคุณต้องใช้งานได้กับทุกโปรแกรมที่ใช้งานได้ในภาษานั้น ๆ
- รวมตัวอย่างอินพุตและเอาต์พุตตัวอย่าง
หมายเหตุ
- โปรแกรมเปลี่ยนไฟล์อาจเขียนเป็นภาษาใดก็ได้ไม่เพียง แต่เป็นภาษาเป้าหมายเท่านั้น
- นี่ไม่ใช่โปรแกรมอ่านโค้ดที่ได้รับการสนับสนุน
- เป้าหมายที่ยิ่งใหญ่คือการดูว่าจำเป็นต้องใช้อักขระจำนวนเท่าใดในการเขียนสิ่งใด ๆ ในภาษานั้น ฉันไม่อนุญาตให้ BF ฯลฯ เพราะจะไม่มีการท้าทาย
- สิ่งนี้ได้รับแรงบันดาลใจจากการพิมพ์สตริงในตัวละครที่แตกต่างกันน้อยที่สุดเท่าที่จะเป็นไปได้คุณสามารถใช้มันเป็นmetagolfสำหรับคำถามนั้น
ตัวอย่าง
ใน Java คุณสามารถใช้\uXXXX
อักขระอื่นแทน รายการที่ถูกต้องเข้ารหัสอักขระทุกตัวจากอินพุตด้วยวิธีนี้ สิ่งนี้จะมีคะแนน 18 ( \ 0-9a-f
)
รหัสใน Tcl เข้ารหัสโปรแกรม Java:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
อ่านอินพุตเพียงบรรทัดเดียว และคุณพลาดการu
เข้ารหัสของคุณ (แต่ในอีกทางหนึ่งคุณไม่ต้องการช่องว่างและคะแนนก็ยังคงเท่าเดิม)