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

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

9
รูปแบบเวลาของเกมที่เพิ่มขึ้น
รูปแบบเวลาของเกมที่เพิ่มขึ้น เป้าหมาย เกมที่เพิ่มขึ้นมักจะมีตัวจับเวลานับถอยหลังที่แสดงวันชั่วโมงนาทีและวินาทีจนกว่างานจะเสร็จสมบูรณ์ ขึ้นอยู่กับพื้นที่ที่มีอยู่พวกเขาสามารถจัดรูปแบบเป็น: 2d 13h 23h 59m 48s 14m 3h 0m 0s เป้าหมายของรหัสกอล์ฟนี้คือการเขียนฟังก์ชั่นหรือโปรแกรมที่ดำเนินการจัดรูปแบบนี้ ปัจจัยการผลิต จำนวนวินาทีทั้งหมด จำนวนเซ็กเมนต์สูงสุดที่จะส่งออก เอาท์พุต กลุ่มรวมถึง: 0สัปดาห์ 0วัน 0hชั่วโมง 0นาที 0วินาที แต่ละส่วนจะถูกคั่นด้วยช่องว่างเดียว กลุ่มที่แสดงจะต้องต่อเนื่องกัน ตัวอย่างเช่นคุณจะไม่แสดงชั่วโมงและวินาทีโดยไม่แสดงนาทีแม้ว่าจะมีศูนย์เป็นนาที 0ค่าหลักเดียวไม่ได้มีเลขศูนย์นำแม้ว่าค่าเป็นศูนย์จะต้องแสดงให้เห็นว่า ค่าจะถูกปัดเศษลง ส่วนแรกที่แสดงเป็นค่าที่ไม่ใช่ศูนย์แรก กรณีทดสอบ seconds segments output 0 1 0s 123 1 2m 123 2 2m 3s 123 3 2m 3s 82815 3 …
18 code-golf  date 

30
เวลาอะไรบ้าง
ฉันไม่อยากเชื่อเลยว่านี่ยังไม่เป็นปัญหาสำหรับ Code Golf แต่ .... พิมพ์เวลาท้องถิ่น (ด้วย am หรือ pm) เป็นสตริงไปยังคอนโซลนำหน้าด้วย "It's" ตัวอย่าง: Run code.... เอาท์พุท: It's 12:32p.m. รหัสที่สั้นที่สุดชนะ รหัสออกไป! ลีดเดอร์บอร์ด แสดงตัวอย่างโค้ด var QUESTION_ID=57552,OVERRIDE_USER=42854;function answersUrl(e){return"http://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"http://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 s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i; body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table …
18 code-golf  date 

9
วาดกองที่เพิ่มขึ้นของกล่อง
งาน ในความท้าทายนี้งานของคุณคือการวาดภาพตัวแทน ASCII ของกล่องหลายกล่องที่มีความสูงเพิ่มขึ้น คุณจะได้รับเป็นอินพุตจำนวนสแต็กซึ่งเป็นจำนวนเต็มบวก 2x2สแต็คแรกมีกล่องหนึ่งที่มีขนาด สแต็คที่สองมี 2 3x3กล่องขนาด โดยทั่วไปkสแต็กที่สิบมีkกล่องขนาด(k+1)x(k+1) เส้นขอบของแต่ละกล่องถูกวาดโดยใช้ตัวอักษร-|+และการตกแต่งภายในประกอบด้วยช่องว่าง กล่องที่อยู่ติดกันแบ่งปันเส้นขอบของพวกเขาและควรวาดมุมด้วยเสมอ+แม้ว่าพวกเขาจะเป็นส่วนหนึ่งของเส้นขอบของกล่องอื่น ตัวอย่าง เอาท์พุทสำหรับ1: ++ ++ เอาท์พุทสำหรับ2: +-+ | | +-+ ++ | ++-+ เอาท์พุทสำหรับ3: +--+ | | | | +--+ | | +-+ | | +--+ +-+ | ++ | | ++-+--+ เอาท์พุทสำหรับ5: +----+ | | | | | …

6
นักเก็ตแห่งรหัส
นักเก็ตแห่งรหัส มันเป็นสถานการณ์สมมุติที่มันเป็นเย็นวันศุกร์และคุณได้รับเชิญมากกว่าเพื่อนเล่นกอล์ฟตามปกติจะมีส่วนร่วมในงานอดิเรกที่คุณชื่นชอบ: รหัสการเล่นกอล์ฟ อย่างไรก็ตามเนื่องจากเป็นงานที่ต้องใช้สมองอย่างหนักคุณจึงต้องเลือกอาหารสมองสำหรับกลุ่มเพื่อที่คุณจะได้เล่นกอล์ฟให้มากที่สุดเท่าที่จะเป็นไปได้ ตอนนี้ขนมที่ชื่นชอบของทุกคนคือนักเก็ตไก่ แต่มีปัญหา: ไม่มีชุดเดียวที่ครอบคลุมความต้องการของทุกคน ดังนั้นเนื่องจากคุณอยู่ในอารมณ์ของการเล่นกอล์ฟคุณจึงตัดสินใจที่จะสร้างโปรแกรมที่แสดงให้เห็นว่าแพ็คที่คุณต้องซื้อเพื่อให้ครอบคลุมความต้องการของนักเก็ตทุกคน ขนาดก้อนนักเก็ตไก่อยู่ทั่วทุกที่และขึ้นอยู่กับว่าคุณอาศัยอยู่ที่ไหนในโลกขนาดมาตรฐานก็เปลี่ยนไปเช่นกัน อย่างไรก็ตาม[สถานที่ที่ให้บริการนักเก็ต]ที่ใกล้เคียงที่สุดจะมีขนาดของก้อนนักเก็ตต่อไปนี้: 4, 6, 9, 10, 20, 40 ตอนนี้คุณอาจสังเกตเห็นว่าคุณไม่สามารถสั่งชุดนักเก็ตได้ ยกตัวอย่างเช่น11นักเก็ตเป็นไปไม่ได้เนื่องจากมีการรวมกันที่เท่ากับไม่มี11ตรง แต่คุณสามารถทำให้43โดยได้รับ 1 แพ็คของ201 แพ็คของ101 แพ็คของ9และ 1 แพ็คของ4, 20 + 10 + 9 + 4 = 43 (597) ที่597อยู่ในแต่ละระยะยืดและรวมเข้าด้วยกัน(คำใบ้: ทางออกที่ดีที่สุดมีนี้เป็นค่าสูงสุด) แน่นอนว่ามีวิธีอื่นในการทำ43แต่เท่าที่คุณรู้นักเก็ตต่อแพ็คยิ่งมีราคาถูกลงเท่าใดนักต่อนักเก็ต ดังนั้นคุณต้องการซื้อแพ็คจำนวนน้อยที่สุดและในปริมาณมากที่สุดเพื่อลดต้นทุนของคุณ งาน คุณควรสร้างโปรแกรมหรือฟังก์ชั่นที่รับรายการจำนวนเต็มที่สอดคล้องกับข้อกำหนดของแต่ละคน จากนั้นคุณควรคำนวณและพิมพ์คำสั่งαที่คุ้มค่าที่สุดเพื่อซื้อนักเก็ตไก่ คำสั่งαที่คุ้มค่าที่สุดคือการรวมกันโดยผลรวมของกำลังสองของแต่ละปริมาณนั้นสูงที่สุด ถ้ามีอย่างวิธีที่จะซื้อนักเก็ตได้อย่างสมบูรณ์แบบไม่มีคุณต้องพิมพ์ค่า falsy เช่น0, False, Impossible!หรือสิ่งที่มีให้บริการในภาษาของคุณ ตัวอย่าง I …
18 code-golf 

2
แต่ละขั้นตอนของระยะทาง Levenshtein
ในการท้าทายนี้คุณจะเขียนโปรแกรมที่รับสตริงที่คั่นด้วยสองบรรทัดใหม่คือ s1 (บรรทัดแรก) และ s2 (บรรทัดที่สอง) เป็นอินพุต (STDIN หรือใกล้เคียงที่สุด) คุณสามารถสันนิษฐานได้ว่าความยาวของ s1 นั้นจะเล็กกว่า 30 และใหญ่กว่าความยาวของ s2 เสมอ โปรแกรมควรแสดงผลแต่ละขั้นตอนในระยะทางของ levenshtein จาก s1 ถึง s2 เพื่ออธิบายความหมายของแต่ละขั้นตอนในระยะทางของ levenshtein โปรแกรมจะพิมพ์สตริง n โดยที่ n คือระยะทาง levenshtein ระหว่าง s1 และ s2 และระยะทาง levenshtein ระหว่างสองสายที่อยู่ติดกันจะเป็นหนึ่งเสมอ ลำดับไม่สำคัญ เอาต์พุตควรคั่นด้วยบรรทัดใหม่และไม่รวม s1 เฉพาะ in-betweens และ s2 โปรแกรมควรทำงานภายในหนึ่งนาทีบนคอมพิวเตอร์ที่ทันสมัย ตัวอย่าง: การป้อนข้อมูล: Programming Codegolf เอาท์พุท: …
18 code-golf  string 

2
ค้นหา Deadlock
ค้นหา Deadlock เมื่อโปรแกรมมิงแบบมัลติเธรดต้องใช้ความระมัดระวังเพื่อหลีกเลี่ยงการล็อคเธรดต่าง ๆ เมื่อเข้าถึงทรัพยากรที่ใช้ร่วมกัน การหยุดชะงักเกิดขึ้นเมื่อเธรดพยายามเข้าถึงทรัพยากรที่ถูกล็อคในเธรดอื่นในเวลาเดียวกันกับที่เธรดอื่นกำลังพยายามเข้าถึงทรัพยากรที่ถูกล็อคโดยเธรดแรก นี่เป็นกรณีที่ง่าย แต่อาจมีความซับซ้อนมากขึ้นด้วยโซ่ทรัพยากรที่ยาวขึ้น ความท้าทาย คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่สามารถตรวจจับสถานการณ์การหยุดชะงักที่เป็นไปได้ในรายการทรัพยากรที่เข้าถึงได้โดยแต่ละเธรด นี่คือ code-golf ดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ ทุกเธรดเริ่มต้นในเวลาเดียวกัน แต่หลังจากนั้นเธรดสามารถทำงานร่วมกันได้ หากมี 2 หัวข้อ 4 การกระทำของแต่ละคนก็อาจจะทำงานเป็น (ที่แต่ละหมายเลขเป็นการกระทำที่เกิดจากด้ายกับว่า ID) 1,1,1,1,2,2,2,2, 2,2,2,2,1,1,1,1, 1,2,1,2,1,2,1,2, 1,1,2,2,2,2,1,1หรือใด ๆ รวมกันเป็นไปได้อื่น ๆ อินพุต คุณจะได้รับรายการของสตริงผ่านทาง STDIN พารามิเตอร์ฟังก์ชันหรือทางเลือกที่ใกล้เคียงที่สุด +a -bแต่ละสายจะอยู่ในรูปแบบ ทุกสตริงนี้แสดงถึงการล็อค ( +) / ปลดล็อค ( -) ของทรัพยากรโดยเธรด ระหว่างทุกเธรดจะเป็น---ตัวคั่น มีการรับประกันว่าเธรดจะไม่พยายามล็อกทรัพยากรที่ถูกล็อกไปแล้วและเธรดทั้งหมดจะปลดล็อกรีซอร์สทั้งหมดที่ล็อกไว้อย่างชัดเจนก่อนออก ต่อไปนี้เป็นตัวอย่างที่แสดงให้เห็น: +a # Lock resource …

28
ค้นหารหัสแหล่ง Interwoven (Cops)
นี่คือด้ายของตำรวจ สำหรับด้ายโจรไปที่นี่ บทนำ สำหรับความท้าทายของ Cops / Robbers ตำรวจจะเขียนโปรแกรมที่สร้างผลผลิตและรวมเข้าด้วยกัน มันเป็นหน้าที่ของโจรที่จะแยกโปรแกรมของตำรวจออกมาเพื่อสร้างผลลัพธ์ที่ต้องการ กฎตำรวจ ตำรวจอาจใช้ผลรวมสูงสุด 256 ไบต์ในการเขียนระหว่างโปรแกรม 2 ถึง 8 (รวม) ซึ่งทั้งหมดต้องสร้างเอาต์พุตบางตัว โปรแกรมทั้งหมดที่เขียนต้องเป็นภาษาเดียวกัน ตำรวจจะ "ประสาน" โปรแกรมของพวกเขาร่วมกันเพื่อให้ยากขึ้นสำหรับโจรที่จะคิดออกว่าโปรแกรมคืออะไร ตอนนี้สำหรับคำอธิบายของการผสมผสาน พิจารณาสตริงที่แทนโปรแกรมต่าง ๆ กระบวนการของการรวมเข้าด้วยกันเป็นการดึงออกจากตัวอักษรตัวแรกของโปรแกรมใด ๆ และต่อเข้ากับส่วนท้ายของสตริงใหม่จนกว่าจะไม่มีตัวอักษรในโปรแกรมใด ๆ เหลืออยู่ ตัวอย่างเช่นหากมีสองโปรแกรมlionและTIGERมีการผสมผสานTIliGoEnRระหว่างกัน อย่างไรก็ตามโปรแกรมไม่สามารถถูกรบกวนในทางใดทางหนึ่งดังนั้นจึงRoITEnlGiไม่เป็นที่ยอมรับ มันควรจะสังเกตว่าเมื่อตัวละครของทุกคนยกเว้นหนึ่งโปรแกรมจะถูกลบออกจากผลของการผสมผสาน, โปรแกรมที่เหลือจะแสดงเหมือนเดิม การถอดตัวอักษรTIGERจากผลลัพธ์ในTIliGoEnRlion ทั้งหมดของโปรแกรมตำรวจและผลจะต้องมีเพียงตัวอักษรพิมพ์ ASCII (20-7E) และการขึ้นบรรทัดใหม่ โปรแกรมต้องไม่มีข้อผิดพลาดและต้องทำงานใน 10 วินาทีบนเครื่องที่เหมาะสม สำหรับการส่งใด ๆ จะต้องมีล่ามภาษาฟรีที่ใดที่หนึ่ง ไม่อนุญาตให้เพิ่มความคิดเห็นในการส่งเช่นเดียวกับการแฮชและการเข้ารหัสในรูปแบบอื่น ๆ ไม่อนุญาตให้ใช้โปรแกรมเปล่า (ขออภัยติดอยู่ ) …

5
การบีบอัดบอร์ดเกรงกลัว
เมื่อทำงานกับNon-Palindromic Polyglot Boggleฉันพบว่ามันค่อนข้างน่าเบื่อที่จะบรรจุรหัสอย่างมีประสิทธิภาพที่สุดเท่าที่จะเป็นไปได้บนบอร์ดเกรงขามแม้จะมีเพียงสองสาย แต่เราเป็นโปรแกรมเมอร์ใช่ไหม เรารู้วิธีทำให้สิ่งต่างๆเป็นไปโดยอัตโนมัติ รับรายการสตริงคุณจะต้องสร้างบอร์ดเกรงกลัวที่แต่ละสตริงสามารถพบได้ (เป็นอิสระจากคนอื่น ๆ ) ความท้าทายคือการทำให้กระดานเกรงกลัวมีขนาดเล็กที่สุดเท่าที่จะทำได้ เนื่องจากนี่คือ (หวังว่า) เป็นงานที่ค่อนข้างยากนี่เป็นความท้าทายของรหัส : ไม่มีข้อกำหนดสำหรับการเพิ่มประสิทธิภาพ - ความท้าทายคือการทำมันให้ดีที่สุดเท่าที่จะทำได้ กฎระเบียบ บอร์ดเกรงกลัวจะเป็นรูปสี่เหลี่ยมผืนผ้าและมีตัวอักษรตัวพิมพ์ใหญ่เท่านั้น ดังนั้นสตริงอินพุตจะมีเฉพาะตัวอักษรตัวพิมพ์ใหญ่เท่านั้น ใช้กฎการเกรงกลัวตามปกติ: สตริงเป็นส่วนหนึ่งของบอร์ดหากเริ่มต้นที่ใดก็ได้คุณสามารถค้นหาสตริงโดยการย้ายไปยังอักขระที่อยู่ติดกันซ้ำ ๆ (แนวนอนแนวตั้งหรือแนวทแยงมุม) ในการสร้างสตริงเดี่ยวคุณไม่สามารถใช้เซลล์ใด ๆ ของบอร์ดมากกว่าหนึ่งครั้ง อย่างไรก็ตามตัวละครอาจถูกนำมาใช้ซ้ำระหว่างสตริงที่แตกต่างกัน คุณมีเวลา 30 นาทีในการประมวลผลข้อมูลทดสอบและรหัสของคุณจะต้องไม่ใช้หน่วยความจำเกิน 4 GB ฉันจะให้ระยะเพิ่มขึ้นเล็กน้อยบนขีด จำกัด หน่วยความจำ แต่ถ้าโปรแกรมของคุณใช้มากกว่า 4 GB หรือ spikes อยู่เหนือมันอย่างมีนัยสำคัญฉันจะ (ชั่วคราว) ตัดสิทธิ์การใช้งาน ฉันจะทดสอบการส่งทั้งหมดในเครื่องของตัวเองซึ่งใช้ Windows 8 ฉันมี Ubuntu VM …

2
สตริงไปยังรูปภาพ
พื้นหลังเล็กน้อย: เมื่อฉันเรียนรู้เกี่ยวกับ Brainf * ck สิ่งแรกที่ฉันทำคือเขียนแอปพลิเคชัน Java ที่จะใช้สตริงและสร้างโปรแกรมที่ปรับให้เหมาะสมเพื่อพิมพ์สตริงดังกล่าว เมื่อเร็ว ๆ นี้ฉันได้เล่นกับPietและฉันก็เล่นกับทำสิ่งเดียวกัน ฉันได้ตระหนักว่า Piet เป็นภาษาที่ค่อนข้างน่าสนใจซึ่งเพิ่มความท้าทายนี้เล็กน้อย ดังนั้นฉันต้องการที่จะนำความท้าทายออกไปให้เพื่อนของฉันที่ SE มาดูกันว่าคุณสามารถทำอะไรกับภาษานี้ ความท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับสายอักขระ ASCII ที่ไม่ว่างเปล่า ประมวลผลสตริงเพื่อให้คุณสร้างโปรแกรม Piet ที่จะพิมพ์สตริงและยุติ เอาต์พุตเป็นรูปภาพต้นฉบับแบบ piet ในรูปแบบใดก็ตามที่ดีที่สุดสำหรับคุณ เป็นที่ต้องการ PNG แต่ไม่บังคับ ฟังก์ชั่น Piet สามารถทดสอบได้ที่นี่ที่นี่ รหัส Piet จะต้องสร้างสตริงเอาต์พุตเอง ไม่อนุญาตให้ป้อนข้อมูลจากผู้ใช้ อาจใช้สีที่ได้รับการอนุมัติ Piet เท่านั้นดังที่แสดงด้านล่าง: เนื่องจากเป็นการประกวดความนิยมผู้ชนะจะถูกเลือกด้วยคะแนนเสียง ความสัมพันธ์จะถูกทำลายโดยขนาดซอร์สโค้ด คะแนนโบนัสจะมอบให้ตามดุลยพินิจของฉันโดยพิจารณาจากความคิดสร้างสรรค์ของภาพที่ส่งออก นี่คือรูปภาพหลังจากทั้งหมด

13
ขยายสตริงที่เข้ารหัส
มีการเข้ารหัสและถอดรหัสความยาวแบบคลาสสิค input output a3b2c5 aaabbccccc และนั่นก็ตรงไปตรงมาและทำมาก่อน ความท้าทายคือการบัญชีสำหรับพฤติกรรมที่ไม่ได้มาตรฐานเมื่อตัวละครหลายตัวนำหน้าความยาว ( หลักเดียวจาก 0-9) อักขระแต่ละตัวก่อนหน้าหลักความยาวการรัน (หลักสุดท้ายก่อนหน้าไม่ใช่ตัวเลขหรือจุดสิ้นสุดของสตริง) มีค่าที่ใช้กับมันทีละตัวและพิมพ์ออกมาตามลำดับ อินพุตและเอาต์พุตทดสอบบางรายการรวมถึงกรณีขอบบางอย่าง: input output ab3c5 aaabbbccccc a0b3 bbb 13b1 111b a13b1 aaa111b a123b1 aaa111222b aa2a1b1 aaaaab ลำดับอักขระ ( [a-zA-Z0-9]+) ต้องตามด้วยความยาวความยาว ( [0-9]) ต้องพิจารณาอินพุตที่ถูกต้องเท่านั้น ( ([a-zA-Z0-9]+[0-9])*) ใช่สตริงว่างคืออินพุตที่ถูกต้อง อินพุตคือผ่านอินพุตมาตรฐานเอาต์พุตผ่านเอาต์พุตมาตรฐาน นี่คือรหัสกอล์ฟจำนวนไบต์เป็นตัวกำหนดผู้ชนะ
18 code-golf  string 

8
Classic Proof Fallacy [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Code Golf Stack Exchange ปิดให้บริการใน3 ปีที่ผ่านมา พื้นหลัง ดังนั้นเราทุกคนรู้หลักฐานคลาสสิกที่เป็นเช่นนี้: A = ข รฒร = AB รฒร - b² = AB - b² (AB) (A + B) = b (AB) (A + B) = b B + B = b 2b = b 2 = 1 (ฮ่า!) …

3
สร้อยคอไข่มุก
ภาพรวม Pearls (หรือ Masyu)เป็นเกมลอจิกที่เล่นบนกริด มีไข่มุกสีดำและสีขาววางอยู่บนตาราง วัตถุคือการสร้างวงปิดเดี่ยวที่เดินทางผ่านแต่ละมุกโดยใช้เฉพาะส่วนของเส้นตรงและมุมฉาก มีกฎบางอย่างที่ควบคุมว่าลูปโต้ตอบกับไข่มุกอย่างไร: ไข่มุกสีขาวจะต้องเดินทางตรงผ่าน แต่ห่วงจะต้องเปิดในก่อนหน้านี้และ / หรือเซลล์ถัดไปในเส้นทางของมัน ไข่มุกดำจะต้องหันเมื่อ แต่ห่วงจะต้องเดินทางตรงผ่านต่อไปและเซลล์ก่อนหน้าในเส้นทางของมัน การวนซ้ำต้องไม่ข้ามหรือตัดกันเอง เซลล์ทั้งหมดมีการวนเข้า / ออกจากศูนย์หรือสองอย่างแน่นอน ตัวอย่างปริศนาจาก Wikipedia (และวิธีแก้ปัญหา): วัตถุประสงค์ของคุณคือการไขปริศนา หากมีวิธีแก้ปัญหาที่เป็นไปได้หลายวิธีไม่สำคัญว่าคุณจะให้ทางใด อินพุต การป้อนข้อมูลจะเป็นปริศนาตารางตาราง ตัวอย่างที่แสดงด้านบนจะเป็นดังนี้: ..w.w..... ....w...b. ..b.b.w... ...w..w... b....w...w ..w....w.. ..b...w... w...b....w ......ww.. ..b......b wเป็นไข่มุกสีขาวbเป็นไข่มุกดำและ.เป็นเซลล์ว่าง สมมติว่าอินพุตถูกต้อง ซึ่งหมายความว่ามีรูปแบบที่ดีและมีวิธีแก้ปัญหาอย่างน้อยหนึ่งวิธี ปริศนาที่ถูกต้องทั้งหมดมีอย่างน้อย 3x3 และมีไข่มุกอย่างน้อยหนึ่งชิ้น เอาท์พุต เอาท์พุทเป็นสตริงของพิกัดที่เป็นตัวแทนของเส้นทาง มุมซ้ายบนของกริดคือ0 0ด้านขวาบนคือn-1 0ที่nคือความกว้างของกริด เส้นทางเป็นเพียงชุดของพิกัดที่สั่ง: x1 y1 x2 …

5
ลบตะเข็บผลรวมขั้นต่ำออกจากอาร์เรย์
อัลกอริธึมการแกะสลักตะเข็บหรือรุ่นที่ซับซ้อนกว่านั้นใช้สำหรับการปรับขนาดภาพที่รับรู้เนื้อหาในโปรแกรมกราฟิกและไลบรารีต่างๆ มาเล่นกอล์ฟกันเถอะ! ข้อมูลที่คุณป้อนจะเป็นจำนวนเต็มอาร์เรย์สองมิติ เอาต์พุตของคุณจะเป็นอาร์เรย์เดียวกันซึ่งแคบลงหนึ่งคอลัมน์โดยที่หนึ่งรายการถูกลบออกจากแต่ละแถวรายการเหล่านั้นจะแทนพา ธ จากบนลงล่างโดยมีผลรวมต่ำสุดของพา ธ ดังกล่าวทั้งหมด https://en.wikipedia.org/wiki/Seam_carving ในภาพประกอบด้านบนค่าของแต่ละเซลล์จะแสดงเป็นสีแดง ตัวเลขสีดำคือผลรวมของค่าของเซลล์และหมายเลขสีดำที่ต่ำที่สุดในหนึ่งในสามของเซลล์ด้านบน (ชี้โดยลูกศรสีเขียว) เส้นทางที่ไฮไลต์สีขาวเป็นเส้นทางผลรวมต่ำสุดสองเส้นทางโดยมีผลรวมเป็น 5 (1 + 2 + 2 และ 2 + 2 + 1) ในกรณีที่มีสองเส้นทางเชื่อมโยงกับผลรวมต่ำสุดไม่สำคัญว่าคุณจะลบออก อินพุตควรถูกนำมาจาก stdin หรือเป็นพารามิเตอร์ฟังก์ชัน สามารถจัดรูปแบบในลักษณะที่สะดวกกับภาษาที่คุณเลือกรวมถึงเครื่องหมายวงเล็บและ / หรือตัวคั่น โปรดระบุคำตอบของคุณว่าจะให้นำเข้าข้อมูลอย่างไร เอาต์พุตควรเป็น stdout ในรูปแบบที่มีการคั่นอย่างไม่น่าเชื่อหรือเป็นค่าส่งคืนฟังก์ชันในภาษาของคุณเทียบเท่ากับอาร์เรย์ 2d (ซึ่งอาจรวมถึงรายการที่ซ้อนกัน ฯลฯ ) ตัวอย่าง: Input: 1 4 3 5 2 3 2 5 …

3
ค้นหาการจับคู่ทั้งหมด แต่หนึ่ง
ความท้าทายนี้เกี่ยวกับการเขียนรหัสเพื่อแก้ไขปัญหาต่อไปนี้ รับสองสาย A และ B รหัสของคุณควรส่งออกดัชนีเริ่มต้นและสิ้นสุดของสตริงย่อยของ A กับคุณสมบัติดังต่อไปนี้ สตริงย่อยของ A ควรจับคู่สตริงย่อยของ B ด้วยการแทนที่อักขระเดี่ยวในสตริงได้สูงสุดหนึ่งรายการ ไม่ควรมีสตริงย่อยของ A ที่สอดคล้องกับคุณสมบัติแรกอีกต่อไป ตัวอย่างเช่น: A = xxxappleyyyyyyy B = zapllezzz สตริงย่อยที่appleมีดัชนี4 8(การทำดัชนีจาก 1) จะเป็นเอาต์พุตที่ถูกต้อง คะแนน คะแนนคำตอบของคุณจะเป็นผลรวมของความยาวของรหัสของคุณเป็นไบต์ + เวลาเป็นวินาทีในคอมพิวเตอร์ของฉันเมื่อทำงานกับสตริง A และ B แต่ละความยาว 1 ล้าน การทดสอบและการป้อนข้อมูล ฉันจะเรียกใช้รหัสของคุณในสองสายยาว 1 ล้านนำมาจากสายใน http://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/ อินพุตจะเป็นแบบมาตรฐานและจะเป็นสองสตริงโดยคั่นด้วยบรรทัดใหม่ ภาษาและห้องสมุด คุณสามารถใช้ภาษาใดก็ได้ที่มีคอมไพเลอร์ / ล่าม / อื่น ๆ …

7
ภาพไบนารีของการนับสามเหลี่ยม
ความท้าทายของฉันนั้นค่อนข้างยากและไม่ดึงดูดเลย ดังนั้นนี่คือสิ่งที่ง่ายและสนุก ลำดับของ Alcuin ลำดับของ Alcuin A(n)ถูกกำหนดโดยการนับสามเหลี่ยม คือจำนวนของรูปสามเหลี่ยมที่มีด้านจำนวนเต็มและปริมณฑลA(n) nลำดับนี้เรียกว่าหลังจาก Alcuin of York องค์ประกอบแรก ๆ ของลำดับนี้เริ่มต้นด้วยn = 0: 0, 0, 0, 1, 0, 1, 1, 2, 1, 3, 2, 4, 3, 5, 4, 7, 5, 8, 7, 10, 8, ... ยกตัวอย่างเช่นA(9) = 3เพราะสามเหลี่ยมเฉพาะกับด้านจำนวนเต็มและปริมณฑล9มี1 - 4 - 4, และ3 - 3 - …

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