การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

30
ทำไฟฉายตัวอักษร!
แรงบันดาลใจจากข้อบกพร่องในการแก้ไขปัญหานี้ความท้าทายของคุณคือการสร้างข้อความที่แน่นอนนี้: ZYXWVUTSRQPONMLKJIHGFEDCBA YXWVUTSRQPONMLKJIHGFEDCBA XWVUTSRQPONMLKJIHGFEDCBA WVUTSRQPONMLKJIHGFEDCBA VUTSRQPONMLKJIHGFEDCBA UTSRQPONMLKJIHGFEDCBA TSRQPONMLKJIHGFEDCBA SRQPONMLKJIHGFEDCBA RQPONMLKJIHGFEDCBA QPONMLKJIHGFEDCBA PONMLKJIHGFEDCBA ONMLKJIHGFEDCBA NMLKJIHGFEDCBA MLKJIHGFEDCBA LKJIHGFEDCBA KJIHGFEDCBA JIHGFEDCBA IHGFEDCBA HGFEDCBA GFEDCBA FEDCBA EDCBA DCBA CBA BA A บรรทัดแรกจะมี 25 ช่องว่างจากนั้นตัวอักษรย้อนกลับเริ่มต้นจากตัวอักษร 26 ( ZYXWVUTSRQPONMLKJIHGFEDCBA) แล้วขึ้นบรรทัดใหม่ บรรทัดที่สองจะมี 24 ช่องว่างจากนั้นตัวอักษรย้อนกลับเริ่มต้นจากตัวอักษรที่ 25 ( YXWVUTSRQPONMLKJIHGFEDCBA) แล้วขึ้นบรรทัดใหม่ ... บรรทัดสุดท้าย (26) จะไม่มีช่องว่างจากนั้นตัวอักษรย้อนกลับเริ่มต้นจากตัวอักษรที่ 1 ( A) แล้วขึ้นบรรทัดใหม่ กฎเพิ่มเติม: …

30
ตัวอักษรแนวทแยง
ไม่มีการป้อนข้อมูลงานของคุณคือสร้างสิ่งต่อไปนี้: a b c d e f g h i j k l m n o p q r s t u v w x y z ไม่ใช่งานของคุณคือสร้างตัวอักษรแต่ละตัวในตัวอักษรโดยมีช่องว่างก่อนที่จะเท่ากับตำแหน่งในตัวอักษรลบหนึ่ง หากคุณพิมพ์สิ่งนี้จะต้องปรากฏดังด้านบน ช่องว่างภายนอกที่ไม่ส่งผลกระทบต่อลักษณะที่ปรากฏรวมถึงบรรทัดใหม่ที่ต่อท้ายจะได้รับอนุญาต คุณสามารถใช้ตัวพิมพ์เล็กทั้งหมดหรือพิมพ์ใหญ่ทั้งหมด นอกจากนี้คุณยังสามารถส่งคืนจากฟังก์ชันตามกฎปกติไม่ว่าจะเป็นสตริงที่มีการขึ้นบรรทัดใหม่หรือรายการสตริง นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ!

30
นี่คือหมอนของฉัน
... คุณจะช่วยฉันให้เป็นอมตะได้ไหม ฉันมีหมอนนี้มากี่ปีแล้วและดูเหมือนว่าถึงเวลาที่ต้องกำจัดมัน คุณช่วยกรุณาเขียนฟังก์ชั่นหรือโปรแกรมที่ฉันสามารถนำมากับฉันและใช้ในการสร้างหมอนนี้เมื่อใดก็ตามที่ฉันต้องการระลึกถึงเล็กน้อย มันจะต้องทำงานโดยไม่มีข้อโต้แย้งอินพุต ผลลัพธ์ควรมีลักษณะเช่นนี้ (ขึ้นบรรทัดใหม่และช่องว่างเป็น OK) /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ /////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\ \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// \\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\/////\\\\\///// นี่คือรหัสกอล์ฟดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะชนะ! ลีดเดอร์บอร์ด แสดงตัวอย่างรหัส var QUESTION_ID=98701,OVERRIDE_USER=31516;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var …

5
กำลังโปรแกรม: O (1 ^ N), O (N ^ 1), O (2 ^ N), O (N ^ 2) ทั้งหมดในที่เดียว
เขียนโปรแกรม (หรือฟังก์ชั่น) ที่แสดงความซับซ้อนของเวลาO ขนาดใหญ่ สี่ทั่วไปขึ้นอยู่กับวิธีการทำงาน ในรูปแบบใดก็จะใช้เวลาในจำนวนเต็มบวก N ที่คุณอาจคิดน้อยกว่า 2 วันที่ 31 เมื่อโปรแกรมทำงานในรูปแบบดั้งเดิมควรมีความซับซ้อนคงที่ นั่นคือความซับซ้อนควรจะΘ (1)หรือเท่ากันΘ (1 ^ N) เมื่อโปรแกรมกลับด้านและรันควรมีความซับซ้อนเชิงเส้น นั่นคือความซับซ้อนควรจะΘ (N)หรือเท่ากันΘ (N ^ 1) (สิ่งนี้สมเหตุสมผลเนื่องจากN^1มีการ1^Nย้อนกลับ) เมื่อโปรแกรมสองเท่า , ตัดแบ่งเช่นกับตัวเองและเรียกมันควรจะมีการชี้แจงความซับซ้อนโดยเฉพาะ2 N นั่นคือความซับซ้อนควรจะΘ (2 ^ N) (นี้ทำให้รู้สึกตั้งแต่2ใน2^Nเป็นสองเท่า1ใน1^N.) เมื่อโปรแกรมสองเท่าและย้อนกลับและเรียกมันควรจะมีพหุนามความซับซ้อนโดยเฉพาะN 2 นั่นคือความซับซ้อนควรจะΘ (N ^ 2) (สิ่งนี้สมเหตุสมผลเนื่องจากN^2มีการ2^Nย้อนกลับ) สี่กรณีนี้เป็นกรณีเดียวที่คุณต้องจัดการ โปรดทราบว่าเพื่อความแม่นยำฉันใช้สัญลักษณ์ขนาดใหญ่ที (Θ)แทนO ใหญ่เพราะรันไทม์ของโปรแกรมของคุณจะต้องล้อมรอบทั้งด้านบนและด้านล่างด้วยความซับซ้อนที่จำเป็น มิฉะนั้นเพียงแค่เขียนฟังก์ชั่นใน O (1) จะตอบสนองทั้งสี่จุด มันไม่สำคัญเกินไปที่จะเข้าใจความแตกต่างที่นี่ ส่วนใหญ่หากโปรแกรมของคุณกำลังดำเนินการ …

13
ตัวดำเนินการมาก่อน: ฉันจะผิดได้อย่างไร?
พูดว่าฉันมีการแสดงออก: 9 * 8 + 1 - 4 การแสดงออกนี้สามารถตีความได้ในหกวิธีที่แตกต่างกันขึ้นอยู่กับลำดับความสำคัญของโอเปอเรเตอร์: (((9 * 8) + 1) - 4) = 69 (* + -) ((9 * 8) + (1 - 4)) = 69 (* - +) ((9 * (8 + 1)) - 4) = 77 (+ * -) (9 * ((8 + 1) …

30
Hare Krishna Hare Krishna Krishna Krishna Hare Hare Hare
เมื่อเร็ว ๆ นี้ฉันเคยเห็นคน Hare Krishna พร้อมกับตราสัญลักษณ์ของพวกเขาและฉันพบว่ามันค่อนข้างน่าสนใจในการเขียนโปรแกรมกอล์ฟ ความท้าทาย เขียนมนต์พระกฤษณะเช่น: Hare Krishna Hare Krishna Krishna Krishna Hare Hare Hare Rama Hare Rama Rama Rama Hare Hare เกณฑ์การชนะ นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ! กฎระเบียบ ปลอกจะต้องเก็บรักษาไว้ ข้อความควรมีบรรทัดใหม่ บรรทัดอาจมีช่องว่างต่อท้าย อนุญาตการขึ้นบรรทัดใหม่ แยกจากเว็บหรือทรัพยากรภายนอกอื่น ๆ ไม่ได้รับอนุญาต

27
ไม่ได้ทำเครื่องหมายในช่องทำเครื่องหมาย?
ในการตรวจสอบรหัสฉันพบรหัสต่อไปนี้ซึ่งทดสอบสถานะของช่องทำเครื่องหมาย: if (!isNotUnchecked()) { ... } ฉันต้องระดมสมองเป็นเวลา 30 นาทีเพื่อหาสถานะช่องทำเครื่องหมายที่แท้จริงของรหัสที่ต้องการ โปรดเขียนโปรแกรมที่สามารถทำให้การแสดงออกเหล่านี้ง่ายขึ้น! โปรแกรมที่ควรจะยอมรับเป็น input สตริงเป็นตัวแทนของการแสดงออกเพื่อลดความซับซ้อน (ตัวอย่างเช่น: !isNotUnchecked()) โปรแกรมควรส่งออกเทียบเท่าเหตุผลการแสดงออกที่เรียบง่ายอย่างใดอย่างหนึ่งหรือisChecked()!isChecked() ชื่อวิธีการในการแสดงออกของการป้อนข้อมูลที่มักจะเริ่มต้นด้วยการisมี 0..n Notและจบลงด้วยหรือChecked() วิธีการที่สามารถนำหน้าด้วยจำนวนใดUnchecked() ๆ! ตัวอย่าง isChecked() => isChecked() isUnchecked() => !isChecked() isNotChecked() => !isChecked() !isNotChecked() => isChecked() !!!isNotNotUnchecked() => isChecked()
65 code-golf 

27
“ เมื่อตอนเป็นเด็กฉันได้รับคำบอกเล่าจากแมงมุมว่าไม่มีอารมณ์”
ความท้าทาย: แสดงผลงานศิลปะ ASCII ที่แน่นอนนี้ของใยแมงมุมในหน้าต่าง: _______________________________ |\_____________________________/| || \ | / || || \ /|\ / || || /\'.__.' : '.__.'/\ || || __.' \ | / '.__ || ||'. /\'---':'---'/\ .'|| ||\ '. /' \__ _|_ __/ '\ .' /|| || | /. /\ ' : ' /\ .\ | …

7
Regex Golf: ตรวจสอบโซลูชันของ Sudoku
เขียน regex ที่ตรงกับโซลูชันของซูโดกุที่ถูกต้องและไม่ตรงกับโซลูชันของซูโดกุที่ไม่ถูกต้อง การป้อนข้อมูลที่เป็นคลี่รุ่นของซูโดกุคือไม่มีตัวคั่นบรรทัด เช่นกระดานต่อไปนี้: 7 2 5 8 9 3 4 6 1 8 4 1 6 5 7 3 9 2 3 9 6 1 4 2 7 5 8 4 7 3 5 1 6 8 2 9 1 6 8 4 2 9 5 3 7 …

30
นี่มันแปลกหรือเปล่า?
หมายเหตุ: ยังไม่มีการทดสอบความเท่าเทียมกันของวานิลลา (มี C / C ++ หนึ่ง แต่ไม่สามารถใช้ภาษาอื่นนอกเหนือจาก C / C ++ และปิดไม่ใช่วานิลลาอื่น ๆ ส่วนใหญ่) ดังนั้นฉันกำลังโพสต์ หนึ่ง. รับจำนวนเต็มบวกเอาท์พุทพาริตี้ของมัน (เช่นถ้าจำนวนคี่หรือคู่) ในค่าความจริง / เท็จ คุณสามารถเลือกได้ว่าผลลัพธ์ที่เป็นความจริงจะตรงกับคี่หรืออินพุท ตัวอย่าง สมมติว่าเป็น True / False เป็นเลขคู่และคี่ (ไม่จำเป็นคุณอาจใช้ค่า Truthy / Falsy อื่น ๆ สำหรับแต่ละรายการ) โดยตอบสนอง: (Input):(Output) 1:False 2:True 16384:True 99999999:False ลีดเดอร์บอร์ด แสดงตัวอย่างรหัส var QUESTION_ID=113448,OVERRIDE_USER=64499;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var …

24
แคร็กปริศนา?
บทนำ Enigma เป็นหนึ่งในเครื่องเข้ารหัสโรเตอร์แบบอิเล็กทรอนิกส์เครื่องแรกที่ใช้ในสงครามโลกครั้งที่สอง นั่นหมายความว่าหลังจากเขียนตัวอักษรตัวเดียวมันจะเปลี่ยนคีย์สำหรับตัวอักษรถัดไป นี่คือการพิจารณาแตกโดยเยอรมันเนื่องจากพื้นที่สำคัญมหาศาล แม้แต่การใช้กำลังอย่างโหดร้ายก็แทบจะเป็นไปไม่ได้ อย่างไรก็ตามมีข้อผิดพลาดในการออกแบบในปริศนา การเข้ารหัสจดหมายจะไม่มีผลกับตัวเอง นั่นหมายความว่าตัวอักษรที่สามารถเข้ารหัสทุกตัวอักษรยกเว้นตัวอักษรAA ลองมาตัวอย่างของข้อความที่เข้ารหัส: BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ คำภาษาเยอรมันทั่วไปWETTERBERICHTหรือรายงานสภาพอากาศเป็นภาษาอังกฤษ เมื่อมองจากข้างบนเราสามารถกำหนดตำแหน่งที่คำนั้นจะเป็น: BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ สิ่งนี้เป็นไปไม่ได้เพราะIไม่สามารถเข้ารหัสได้ด้วยตัวเองดังนั้นเราจึงไปต่อที่ 1: BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ เป็นไปไม่ได้ดังนั้นเราจึงย้ายสถานที่อื่นอีกครั้ง: BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT ^ สิ่งนี้เป็นไปไม่ได้อีกแล้ว ในความเป็นจริงการเกิดขึ้นครั้งแรกที่เป็นไปได้WETTERBERICHTคือ: BHGEFXWFTIUPITHHLPETTTCLOEWOELMRXXPAKAXMAMTXXUDLTWTNHKELEPPLHPRQ WETTERBERICHT 0123456789012345678901234567890123456789012345678901234567890123 ^ 13 ดังนั้นเรากลับมาอยู่ในตำแหน่งที่ 0 การจัดทำดัชนีของการเกิดขึ้นเป็นไปได้ที่แรกซึ่งเป็น13 งาน ได้รับข้อความรหัสและคำค้นหาดัชนีของที่เกิดขึ้นเป็นไปได้เป็นครั้งแรก สมมติว่าจะใช้ตัวอักษรตัวพิมพ์ใหญ่พื้นฐานเท่านั้น ( ABCDEFGHIJKLMNOPQRSTUVWXYZ) หากไม่มีการเกิดขึ้นพบว่าคุณสามารถส่งออกใด ๆในเชิงลบจำนวนเต็มตัวอักษรหรือไม่มีอะไร (เช่น-1, X) อินพุตอาจได้รับการยอมรับว่าเป็นอาร์กิวเมนต์ในบรรทัดใหม่แยกรายการหรืออะไรก็ได้ นี่คือโค้ดกอล์ฟดังนั้นการส่งที่มีจำนวนไบต์น้อยที่สุดจะชนะ! กรณีทดสอบ Input: BHGEFXWFTIUPITHHLPETTTCLOEWOELM, WETTERBERICHT …
65 code-golf  string 

22
คำสั่งลูกแมว
ลูกแมวนั้นเหมือนแมวมาก ความแตกต่างที่สำคัญบางประการคือความน่ารักขาดสติปัญญาและขนาด ในทำนองเดียวกันcatคำสั่งจะแตกต่างจากkittenคำสั่ง โชคดีที่มีความแตกต่างเพียงอย่างเดียวในกรณีนี้ ในคำสั่ง kitten ตัวอักษรตัวพิมพ์ใหญ่ทั้งหมดจะถูกแทนที่ด้วยตัวอักษรตัวเล็ก วัตถุประสงค์ catจะใช้โปรแกรมที่มีลักษณะการทำงานคล้ายกับ อักขระทั้งหมด[A-Z]เป็นตัวพิมพ์เล็กที่แสดงผลลัพธ์ อินพุต รายการไฟล์เป็นอาร์กิวเมนต์บรรทัดคำสั่ง หากไม่มีไฟล์อยู่ในรายการให้อ่านจากอินพุตมาตรฐาน อินพุตอาจมีอักขระและอักขระที่ไม่สามารถพิมพ์ได้นอกช่วง ASCII เอาท์พุต หากอินพุตเป็นไฟล์จำนวนมากให้ต่อเนื้อหาและส่งออกอักขระทั้งหมดเป็นตัวพิมพ์เล็ก หากอ่านจาก STDIN ให้ส่งเนื้อหาของ STDIN ด้วยตัวอักษรตัวพิมพ์ใหญ่ทั้งหมดเป็นตัวพิมพ์เล็ก หมายเหตุ: ทำให้ตัวอักษรเป็นตัว[A-Z]พิมพ์เล็กเท่านั้น เป็นที่ยอมรับไม่ได้หากตัวละครอื่น ๆ ทำด้วยตัวพิมพ์เล็ก ตัวอย่าง $ echo "HelLo" > file.txt $ kitten file.txt hello $ echo "Good Bye" | kitten good bye $ echo "Ä" | kitten …

26
การกำหนดหมายเลขหน้าสไตล์ xkcd
หนังสือของ Randall Munroe "xkcd, volume 0" ใช้ระบบตัวเลขที่ค่อนข้างแปลกสำหรับหมายเลขหน้า หมายเลขหน้าสองสามครั้งแรกคือ 1, 2, 10, 11, 12, 20, 100, 101, 102, 110, 111, 112, 120, 200, 1000, 1001, ... นี้มีลักษณะบิตเช่น ternary แต่สังเกตเห็นว่าเขาข้ามจาก20ตรงไปยัง100จาก120ไป200และกลับจากไป200 1000วิธีหนึ่งในการกำหนดลำดับนี้คือการบอกว่ามันระบุหมายเลข ternary ทั้งหมดที่มีมากที่สุดคนหนึ่ง2และไม่มีการหลังจากนั้น1 2คุณสามารถค้นหานี้ใน OEIS ในรายการA169683 ระบบตัวเลขนี้เป็นที่รู้จักกันไบนารีลาด งานของคุณคือการหาการแสดงจำนวนเต็มบวกที่กำหนดNในระบบจำนวนนี้ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ เอาท์พุทอาจจะเป็นสตริงจำนวนที่มีการแทนทศนิยมเท่ากับการเป็นตัวแทนไบนารีเอียงหรือรายการของตัวเลข (เป็นจำนวนเต็มหรือตัวอักษร / สตริง) คุณต้องไม่ส่งคืนเลขศูนย์นำหน้า นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด …

30
โปรแกรมการเล่นกอล์ฟพังพอน
ริชาร์ดว์คินส์ในหนังสือของเขาตาบอดนาฬิกาอธิบายโปรแกรมพังพอน อัลกอริทึมสามารถอธิบายได้ดังนี้ เริ่มต้นด้วยสตริงสุ่ม 28 ตัวอักษร อักขระที่ถูกต้องคือตัวอักษรตัวพิมพ์ใหญ่และเว้นวรรค ทำสำเนา 100 ของสตริงนั้นโดยมีโอกาส 5% ต่อตัวละครของตัวละครนั้น ๆ ที่ถูกแทนที่ด้วยตัวอักษรแบบสุ่ม เปรียบเทียบแต่ละสตริงใหม่กับเป้าหมาย "วิธีการมันเหมือนพังพอน" และให้คะแนนแต่ละคะแนนตามจำนวนตัวอักษรในสตริงที่ถูกต้องและอยู่ในตำแหน่งที่ถูกต้อง หากสตริงใหม่ใด ๆ มีคะแนนสมบูรณ์แบบ (28) ให้หยุด เลือกสตริงที่ให้คะแนนสูงสุดจากขั้นตอนที่ 3 วิธีการผูกเน็คไทล์ของคุณนั้นขึ้นอยู่กับคุณ แต่อาจเลือกได้เพียงหนึ่งสาย ใช้สตริงที่เลือกและไปที่ขั้นตอนที่ 2 ผู้ชนะจะเป็นข้อมูลโค้ดสั้นที่สุดเพื่อไปยังคำตอบที่ถูกต้องในขณะที่พิมพ์สตริงที่ให้คะแนนสูงสุดของแต่ละรุ่นในรูปแบบต่อไปนี้: หากคนสามารถช่วยได้โดยการตรวจสอบคำตอบของคนอื่น ๆ จะเป็นประโยชน์มาก!

30
ตัวอักษรของลูกสาวฉัน
วันก่อนเรากำลังเขียนประโยคกับลูกสาวของฉันพร้อมจดหมายแม่เหล็กตู้เย็น ในขณะที่เราสามารถทำบางอย่าง ( I love cat) เราไม่มีตัวอักษรมากพอที่จะทำให้คนอื่น ( I love you too) เนื่องจากจำนวนตัวอักษรไม่เพียงพอo(4) จากนั้นฉันก็พบว่าในขณะที่ชุดหนึ่งมี 3 eตัวอักษรมันมีเพียง 2 oตัว อาจได้รับแรงบันดาลใจจากhttp://en.wikipedia.org/wiki/Letter_frequencyสิ่งนี้จะไม่สะท้อนสถานการณ์จริง "บนตู้เย็น" ปัญหา กำหนดไฟล์ข้อความที่แต่ละบรรทัดมี "ประโยคตัวอย่าง" หนึ่งต้องการเขียนบนตู้เย็นเสนอชุดตัวอักษรที่มีจำนวนตัวอักษรขั้นต่ำ แต่ก็เพียงพอที่จะเขียนแต่ละประโยค หมายเหตุ: ไม่สนใจเคสตัวอักษรแม่เหล็กทั้งหมดเป็นตัวพิมพ์ใหญ่อยู่แล้ว อินพุต ไฟล์มีประโยคที่คั่นด้วยการขึ้นบรรทัดใหม่: hello i love cat i love dog i love mommy mommy loves daddy เอาท์พุต จัดเตรียมรายการเรียงตัวอักษรด้านหลังโดยที่แต่ละตัวอักษรปรากฏหลายครั้งเพียงพอที่จะเขียนประโยคใด ๆ : acdddeghillmmmoostvyy (ขอบคุณ isaacg!) ผู้ชนะ …
65 code-golf 

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