คำถามติดแท็ก combinatorics

สำหรับความท้าทายที่เกี่ยวข้องกับ combinatorics

4
นับจำนวนวิธีในการวางลูกบอลลงในถังขยะ
ในภารกิจนี้คุณจะได้รับลูกบอลสีขาวจำนวนคี่และลูกบอลสีดำจำนวนเดียวกัน ภารกิจคือการนับวิธีการทั้งหมดของการวางลูกบอลลงในถังขยะเพื่อให้ในแต่ละถังขยะมีจำนวนคี่ของแต่ละสี ตัวอย่างเช่นสมมติว่าเรามีลูกบอลสีขาว 3 ลูก วิธีที่แตกต่างคือ: (wwwbbb) (wb)(wb)(wb) สำหรับสองโอกาสที่แตกต่างกัน หากเรามีลูกบอลสีขาว 5 ลูกวิธีที่ต่างกันคือ: (wwwwwbbbbb) (wwwbbb)(wb)(wb) (wwwb)(wbbb)(wb) (wb)(wb)(wb)(wb)(wb) คุณสามารถรับอินพุตซึ่งเป็นจำนวนเต็มเดียวในแบบที่คุณต้องการ ผลลัพธ์เป็นเพียงจำนวนเต็มเดียว รหัสของคุณจะต้องเร็วพอเพื่อให้คุณเห็นรหัสสีขาว 11 ลูก คุณสามารถใช้ภาษาหรือไลบรารีที่คุณต้องการ

4
ตอนนี้เรากำลังคิดในมิติ n!
คำถาม: ด้วยตัวเลขn≥ 2 จำนวนจุดคู่ที่แตกต่างกันของโครงตาข่ายnมิติn x n x n x n x n x n ... x nที่พิกัดอยู่ในช่วงตั้งแต่0ถึงถึงn - 1มีระยะห่างอย่างน้อยที่สุด n ? คู่{(2,1,3,1), (3,2,1,3)}และ{(3,2,1,3), (2,1,3,1)}ไม่ถือว่าแตกต่างจากกันและกันเนื่องจากประกอบด้วยสองจุดเดียวกันในลำดับย้อนกลับ โปรดทราบว่าจำนวนคู่ทั้งหมดเติบโตอย่างรวดเร็ว จำนวนคู่รวมไป6, 351, 32 640, 4 881 250, 1 088 367 840ฯลฯ กรณีทดสอบ: 2 -> 0 (all pairs are at most a distance of sqrt(2) < …

7
ตีกอล์ฟหลอก!
บทนำ / ความเป็นมา ในการสนทนาเมื่อเร็ว ๆ นี้ในการแชท cryptoฉันถูกท้าทายให้พูดคุย / ช่วยเหลือเกี่ยวกับการทดสอบแบบดั้งเดิมของแฟร์มาต์และหมายเลขคาร์ไมเคิล การทดสอบนี้ขึ้นอยู่กับสถานที่ตั้งที่a^(p-1) mod p==1จะถือเป็นช่วงเวลาpเสมอ แต่ไม่เสมอไปสำหรับคอมโพสิต ขณะนี้จำนวน Carmichael เป็นหลักทดสอบศัตรูที่เลวร้ายที่สุดของแฟร์มาต์: จำนวนที่คุณต้องเลือกaที่จะไม่ร่วมกับนายกรัฐมนตรีที่จะได้รับp a^(p-1) mod p!=1ทีนี้ถ้าaไม่ใช่เพื่อนร่วมคุณก็พบว่าปัจจัยที่ไม่ใช่เรื่องไร้สาระpและอย่างที่เราทุกคนรู้ว่าแฟคตอริ่งนั้นค่อนข้างยาก โดยเฉพาะอย่างยิ่งหากปัจจัยทั้งหมดมีขนาดใหญ่พอสมควร ตอนนี้คุณอาจรู้ว่าทำไมการทดสอบแฟร์มาต์ไม่ได้ถูกใช้ในทางปฏิบัติบ่อยครั้ง (มีอัลกอริธึมที่ดีกว่า) เนื่องจากมีตัวเลขที่คุณเป็นผู้พิทักษ์ ผู้โจมตี (คือปัจจัยจำนวน) ตอนนี้เรารู้แล้วว่าทำไมตัวเลขเหล่านี้ถึงน่าสนใจเราจะสร้างมันขึ้นมาให้สั้นที่สุดเท่าที่จะเป็นไปได้ดังนั้นเราสามารถจำรหัสการสร้างได้หากเราต้องการ! หมายเลขร์ไมเคิลยังเป็นที่รู้จักA002997 ใน OEIS มีความท้าทายที่เกี่ยวข้องอยู่แล้ว แต่รายการจากที่นั่นไม่สามารถแข่งขันได้ที่นี่เพราะสิ่งเหล่านี้ได้รับการปรับให้เหมาะสมกับความเร็วเมื่อเทียบกับขนาด อาร์กิวเมนต์เดียวกันถือสำหรับทิศทางผกผันรายการที่นี่มีแนวโน้มที่จะทำให้การแลกเปลี่ยนกับความเร็วในความโปรดปรานของขนาด สเปค อินพุต นี่คือมาตรฐาน ลำดับความท้าทายดังนั้นคุณจึงใช้จำนวนเต็มบวกหรือไม่ใช่ลบnเป็นอินพุต nอาจเป็นดัชนี 0- หรือ 1 ตามที่คุณต้องการ (โปรดระบุ) เอาท์พุต ผลลัพธ์ของคุณอาจเป็นnหมายเลข -m carmichael หรือnหมายเลข carmichael แรกตามที่คุณต้องการ …
9 code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

13
ขยายเครือข่ายเปรียบเทียบ
ซึ่งแตกต่างจากภาษาส่วนใหญ่งูหลามประเมินa<b<cเท่าที่จะทำได้ในคณิตศาสตร์จริงเปรียบเทียบตัวเลขสามเมื่อเทียบกับการเปรียบเทียบแบบบูลไปa<b cวิธีที่ถูกต้องในการเขียนใน C (และอื่น ๆ อีกมากมาย) a<b && b<cจะเป็น ในความท้าทายนี้งานของคุณคือการขยายเครือข่ายการเปรียบเทียบที่มีความยาวตามอำเภอใจจากการเป็นตัวแทนของ Python / การใช้งานง่ายไปจนถึงการเขียนในภาษาอื่น ข้อมูลจำเพาะ ==, !=, <, >, <=, >=โปรแกรมของคุณจะต้องมีการจัดการกับผู้ประกอบการ: อินพุตจะมีกลุ่มการเปรียบเทียบโดยใช้จำนวนเต็มเท่านั้น ไม่ต้องกังวลเกี่ยวกับความแท้จริงของการเปรียบเทียบใด ๆ ระหว่างทางนี่เป็นความท้าทายที่แยกวิเคราะห์ / สร้างประโยคอย่างแท้จริง อินพุตจะไม่มีช่องว่างใด ๆ เพื่อป้องกันคำตอบที่ทำให้การแยกวิเคราะห์เป็นเรื่องเล็กน้อยโดยแบ่งช่องว่างออก อย่างไรก็ตามผลลัพธ์ของคุณอาจมีพื้นที่เดียวโดยรอบไม่ว่าจะเป็น&&'s หรือทั้งสองตัวดำเนินการเปรียบเทียบและ&&' s หรือไม่ก็ตาม แต่ก็มีความสอดคล้องกัน กรณีทดสอบ Input Output --------------------------------------------------------------- 3<4<5 3<4 && 4<5 3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 …
9 code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

30
รับอินพุท int n พิมพ์ n * กลับด้าน (n)
รับจำนวนเต็มnพิมพ์ออกมาn * reversed(n) reversed(n)เป็นหมายเลขที่คุณได้รับเมื่อคุณตัวเลขของreversen reverse(512) = 215 reverse(1) = 1 reverse(101) = 101 >>>>>>>> func(5) = 5*5 = 25 func(12) = 12*21 = 252 func(11) = 11*11 = 121 func(659) = 659*956 = 630004 รหัสที่สั้นที่สุดชนะ! ลีดเดอร์บอร์ด แสดงตัวอย่างโค้ด var QUESTION_ID=144816,OVERRIDE_USER=71625;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 …
9 code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

4
จำนวนสูงสุดของสตริงย่อยที่แตกต่างกัน
ลักษณะ เมื่อกำหนดความยาวnและขนาดตัวอักษรk>0โปรแกรมของคุณจะต้องกำหนดจำนวนสตริงด้วยพารามิเตอร์เหล่านั้นซึ่งมีจำนวนสตริงย่อยสูงสุด ในกรณีของการk=2นี้สร้าง OEIS A134457 ตัวอย่าง ตัวอย่างเช่น2210มีสตริง , 2, 22, 221, 2210, 2, 21, 210, 1, 10และ0รวม 11 แต่2ปรากฏขึ้นเป็นครั้งที่สองจึงมีเพียง 10 สตริงที่ไม่ซ้ำกัน นี่คือมากที่สุดเท่าที่เป็นไปได้สำหรับสตริงความยาว 4 มี 3 สัญลักษณ์ที่แตกต่างกัน แต่ความสัมพันธ์กับ 35 สายอื่น ๆ รวมเป็น 36 สาย tieing รวมทั้ง0012, และ2101 0121ดังนั้นสำหรับn=4และk=3โปรแกรมของคุณควรส่งออก 36 กรณีทดสอบ n k output 0 5 1 1 3 3 5 1 …

5
นับจำนวนลำดับระยะทาง Hamming
ระยะ Hammingระหว่างสองสายความยาวเท่ากันคือจำนวนของตำแหน่งที่สัญลักษณ์ที่สอดคล้องกันจะแตกต่างกัน ให้Pเป็นสตริงไบนารีของความยาวnและเป็นสตริงไบนารีของความยาวT 2n-1เราสามารถคำนวณnระยะทาง Hamming ระหว่างPและnสตริงย่อย -length ของTตามลำดับจากซ้ายไปขวาและใส่ลงในอาร์เรย์ (หรือรายการ) ตัวอย่างลำดับระยะทาง Hamming ขอและP = 101 T = 01100ลำดับของ Hamming 2,2,1ระยะทางที่คุณได้รับจากคู่นี้คือ งาน สำหรับการnเริ่มต้นที่เพิ่มขึ้นn=1ให้พิจารณาคู่สายอักขระไบนารีที่มีPความยาวnและTความยาวที่เป็น2n-1ไปได้ทั้งหมด มี2**(n+2n-1)คู่ดังกล่าวและด้วยเหตุนี้จึงมีหลายลำดับของระยะทาง Hamming อย่างไรก็ตามลำดับเหล่านั้นจำนวนมากจะเหมือนกัน nงานคือการหาวิธีการจำนวนมากที่แตกต่างกันสำหรับแต่ละ nรหัสของคุณควรส่งออกจำนวนหนึ่งต่อมูลค่าของ คะแนน คะแนนของคุณคือnรหัสสูงสุดของคุณถึงบนเครื่องของฉันใน 5 นาที nระยะเวลาเป็นเวลาการทำงานรวมเวลาไม่เพียงแค่นั้น ใครชนะ ผู้ที่มีคะแนนสูงสุดจะเป็นผู้ชนะ หากคนสองคนหรือมากกว่านั้นจบลงด้วยคะแนนเดียวกันมันเป็นคำตอบแรกที่ชนะ ตัวอย่างคำตอบ สำหรับการnจาก1ไปคำตอบที่ดีที่สุดที่มี82, 9, 48, 297, 2040, 15425, 125232, 1070553 ภาษาและห้องสมุด คุณสามารถใช้ภาษาและไลบรารี่ที่คุณต้องการได้ หากเป็นไปได้จะเป็นการดีที่จะสามารถเรียกใช้รหัสของคุณได้ดังนั้นโปรดระบุคำอธิบายโดยละเอียดเกี่ยวกับวิธีเรียกใช้ / รวบรวมรหัสของคุณใน Linux หากเป็นไปได้ …

1
จำนวนนอตนายกที่มีการข้าม n
ปมที่สำคัญคือ ปมที่ไม่สำคัญซึ่งไม่สามารถเขียนเป็นผลรวมของปมที่ไม่ใช่ปมสองอัน คำอธิบายของknot-sum : ใส่นอตสองตัวที่อยู่ติดกัน ... จากนั้นให้ลากสองเส้นระหว่างเส้นเหล่านั้นไปยังเส้นเดียวกันในแต่ละด้านแล้วเอาส่วนที่อยู่ระหว่างบรรทัดที่คุณเพิ่งวาด การประกอบของสองนอตนี้จะเป็นปมใหม่ที่ไม่ใช่นายก นี่คือนอตที่สำคัญทั้งหมดที่มีการข้าม 7 ครั้งหรือน้อยกว่า (Unknot ไม่ใช่ไพร์ม): คุณจำเป็นต้องส่งออกจำนวน knots เฉพาะที่ไม่ซ้ำกันสำหรับจำนวนการข้ามที่กำหนด 1 0 2 0 3 1 4 1 5 2 6 3 7 7 8 21 9 49 10 165 11 552 12 2176 13 9988 14 46972 15 253293 16 1388705 ฉันไม่คิดว่าค่าเหล่านี้เป็นที่รู้จักสำหรับอินพุตที่ใหญ่กว่า16แต่หากได้รับอินพุตดังกล่าวรหัสของคุณจะต้องค้นหาผลลัพธ์ที่ถูกต้องที่ให้เวลาพอสมควร OEIS …

4
จำนวนโดมิโนเอียง
เขียนโปรแกรมหรือฟังก์ชั่นที่ได้รับในเชิงบวกnและม.คำนวณจำนวน tilings โดมิโนที่แตกต่างกันที่ถูกต้องที่คุณสามารถใส่ในnโดยม.รูปสี่เหลี่ยมผืนผ้า นี่คือลำดับA099390ในสารานุกรมออนไลน์ของจำนวนเต็มลำดับ คุณสามารถรับอินพุตเป็นฟังก์ชันอาร์กิวเมนต์, CLA หรือบน stdin ในรูปแบบที่สมเหตุสมผล คุณต้องส่งคืนหรือพิมพ์จำนวนเต็มเดียวเป็นเอาต์พุต การปูกระเบื้องแต่ละครั้งจะต้องไม่เว้นช่องว่างใด ๆ และการนับการเรียงต่อกันทั้งหมดรวมถึงการหมุนการสะท้อนกลับเป็นต้นตัวอย่างเช่นการเอียงของ 2x3 คือ: |-- ||| --| |-- ||| --| ตัวอย่างอินพุต / เอาท์พุต: 1, 9 -> 0 2, 2 -> 2 2, 3 -> 3 4, 4 -> 36 4, 6 -> 281 6, 6 -> 6728 7, 10 …

4
คำนวณความน่าจะเป็นอย่างแน่นอน
งานนี้เกี่ยวกับการเขียนโค้ดเพื่อคำนวณความน่าจะเป็น ผลลัพธ์ควรเป็นความน่าจะเป็นที่แม่นยำที่เขียนเป็นเศษส่วนในรูปแบบที่ลดลงมากที่สุด นั่นคือไม่ควรเอาท์พุท4/8แต่จะดี1/2กว่า สำหรับจำนวนเต็มบวกnพิจารณาสตริงสุ่มอย่างสม่ำเสมอของ 1s และ -1s ของความยาวnและเรียกมันว่า A ตอนนี้เชื่อมต่อกับAค่าแรก นั่นคือA[1] = A[n+1]ถ้าการจัดทำดัชนีจาก 1. ในขณะนี้มีความยาวA n+1ทีนี้ลองพิจารณาความยาวสตริงที่สองแบบสุ่มnซึ่งnค่าแรกคือ -1, 0 หรือ 1 ที่มีความน่าจะเป็น 1/4, 1, 2, 1/4 แต่ละอันและเรียกมันว่า B n=3ตัวอย่างเช่นพิจารณา ค่าที่เป็นไปได้AและBอาจจะเป็นและA = [-1,1,1,-1] B=[0,1,-1]ในกรณีนี้ผลิตภัณฑ์ทั้งสองด้านมีและ02 ตอนนี้พิจารณาผลิตภัณฑ์ภายในA[1,...,n]และBและสินค้าภายในของและA[2,...,n+1]B รหัสของคุณจะต้องแสดงผลความน่าจะเป็นที่ผลิตภัณฑ์ทั้งสองนั้นมีค่าเป็นศูนย์ สำหรับความน่าจะเห็นผลชัดเจนn=11/2 ฉันไม่สนใจว่าnจะมีการระบุไว้อย่างไรในรหัส แต่ควรจะง่ายและชัดเจนในการเปลี่ยน ภาษาและห้องสมุด คุณสามารถใช้ภาษาและห้องสมุดที่คุณต้องการ ฉันต้องการเรียกใช้รหัสของคุณดังนั้นโปรดระบุคำอธิบายแบบเต็มสำหรับวิธีเรียกใช้ / รวบรวมรหัสของคุณใน linux หากเป็นไปได้

1
จำนวนเอาต์พุตที่ไม่ซ้ำกันโดยการแทนที่ตัวแปร
รับชุดของสูตรดังนี้: bacb bcab cbba abbc ให้อัลกอริทึมที่ค้นหาจำนวนผลลัพธ์ที่ไม่ซ้ำกันซึ่งคุณสามารถรับได้เมื่อแต่ละตัวแปรถูกแทนที่ด้วย "0" หรือ "1" ในทุกสูตร มี(k!)^2สูตรแต่ละสูตรมี2k-1ตัวแปรและk^2เงื่อนไข แสดงความ asymptotics kคุณในแง่ของ อัลกอริทึมที่เร็วที่สุดชนะ ในกรณีที่วิธีการแก้ปัญหาที่มีการใช้หน่วยความจำ asymptotic ที่ต่ำกว่าชนะ หากยังคงเสมอกันโพสต์แรกจะชนะ สำหรับตัวอย่างด้านบนผลลัพธ์ต่อไปนี้สามารถรับได้โดยการแทนที่ตัวแปร: 1110, 0110, 1001, 0100, 1000, 0000, 0010, 1101, 1111, 0001, 1011, 0111 ดังนั้นคำตอบที่ถูกต้องคือ 12 หมู่คนอื่น ๆ1010ไม่สามารถทำได้โดยใช้สูตรข้างต้น ผมได้ทำอีกสามกรณีการทดสอบกับการแก้ปัญหาที่เกี่ยวข้องของ230 , 12076และ1446672

2
นับการจัดการรั้วสูงสุด
พื้นหลัง ฉันต้องการสร้างรั้ว ด้วยเหตุนี้ฉันจึงรวบรวมเสาจำนวนมากและติดมันกับพื้น ฉันได้รวบรวมกระดานมากมายที่ฉันจะตอกตะปูกับเสาเพื่อทำรั้วจริง ฉันมักจะถูกพาตัวไปสร้างสิ่งต่าง ๆ และส่วนใหญ่ฉันจะเอาไม้กระดานไปไว้ที่เสาจนกว่าจะไม่มีที่ว่างสำหรับใส่มัน ฉันต้องการให้คุณแจกแจงรั้วที่เป็นไปได้ที่ฉันสามารถท้ายด้วย อินพุต อินพุตของคุณคือรายการของพิกัดจำนวนเต็มสองมิติที่แสดงถึงตำแหน่งของเสาในรูปแบบที่สะดวก คุณสามารถสันนิษฐานได้ว่ามันไม่มีสิ่งที่ซ้ำกัน แต่คุณไม่สามารถคิดอะไรเกี่ยวกับคำสั่งซื้อ บอร์ดถูกแสดงโดยเส้นตรงระหว่างเสาและเพื่อความง่ายเราพิจารณาเฉพาะบอร์ดแนวนอนและแนวตั้ง สองขั้วสามารถเข้าร่วมโดยคณะกรรมการหากไม่มีเสาอื่น ๆ หรือบอร์ดระหว่างพวกเขาหมายความว่าบอร์ดไม่สามารถข้ามกันและกัน การจัดเรียงของเสาและแผงเป็นสูงสุดถ้าไม่มีบอร์ดใหม่ที่สามารถเพิ่มลงไป (เท่ากันมีทั้งเสาหรือคณะกรรมการใด ๆ ระหว่างสองขั้วในแนวนอนหรือแนวตั้งชิดก) เอาท์พุต ผลลัพธ์ของคุณคือจำนวนข้อตกลงสูงสุดที่สามารถสร้างขึ้นได้โดยใช้เสา ตัวอย่าง พิจารณารายการอินพุต [(3,0),(1,1),(0,2),(-1,1),(-2,0),(-1,-1),(0,-2),(1,-1)] มองจากด้านบนการจัดเรียงที่สอดคล้องกันของเสามีลักษณะดังนี้: o o o o o o o o มีการจัดเรียงสูงสุดสามอย่างที่สามารถสร้างได้โดยใช้เสาเหล่านี้: o o o o-o o|o o-o o----o o||| o o| | o o-o o|o o-o …

4
ภัณฑารักษ์ของภัณฑารักษ์
บทนำ คุณเป็นเพื่อนของภัณฑารักษ์พิพิธภัณฑ์ศิลปะการที่ได้มีความสุขที่ผ่านมาของการได้รับงานศิลปะสมัยใหม่จากสี่ศิลปิน ( ซึ่งบางส่วนอาจจะให้ผู้ดูแลศูนย์ชิ้นงานศิลปะ, วายร้ายหนุ่ม ) เนื่องจากนี่คือศิลปะสมัยใหม่ชิ้นส่วนของศิลปินที่ได้รับจึงมีลักษณะเหมือนกันทุกประการ เพื่อนของคุณต้องการใช้คอมพิวเตอร์เพื่อช่วยตัดสินใจว่าจะสั่งซื้อชิ้นส่วนเหล่านี้ได้อย่างไร ข้อกำหนดของโปรแกรม โปรแกรมของคุณต้องใช้จำนวนเต็มห้าจำนวน (ส่งผ่านไปยังฟังก์ชันหรือป้อนผ่าน stdin (หรืออีกวิธีหนึ่ง)) สี่คนแรกคือจำนวนภาพวาดที่จัดทำโดยศิลปินสี่คนแต่ละคน ค่าสุดท้ายคือดัชนีการเปลี่ยนแปลงi(นับจาก 1 ไม่ใช่ 0) ภัณฑารักษ์มีความประสงค์ที่จะเห็นการiเรียงสับเปลี่ยนลำดับตามคำสั่งของภาพเขียน โปรแกรมต้องออกของคุณเปลี่ยนแปลงนี้ในรูปแบบใด ๆ ที่เหมาะสม: เช่นหรือabbccd [0 1 1 2 2 3]รันไทม์สำหรับการป้อนข้อมูลที่รวมจำนวนภาพน้อยกว่าสิบภาพต้องใช้เวลาน้อยกว่าหนึ่งชั่วโมง (หวังว่าจะไม่มีปัญหา) คุณไม่ได้รับอนุญาตให้ใช้ฟังก์ชั่นใด ๆ ที่สร้างขึ้นเพื่อเปลี่ยนวิธีเรียงสับเปลี่ยน ตัวอย่าง อินพุต: 0 1 2 0 2 เนื่องจากเรามีหนึ่งภาพวาดโดยศิลปิน B และสองโดยศิลปิน C (และพวกเขาทั้งหมดเหมือนกัน), เรียงลำดับตามลำดับคำศัพท์คือ: [ 'สำเนาลับ', ' CBC …

6
การเปลี่ยนหมายเลข
ความท้าทาย สำหรับชุดจำนวนเต็ม n จำนวนที่กำหนดให้เขียนโปรแกรมที่จะส่งออกดัชนี lexicographic กฎระเบียบ อินพุตจะต้องเป็นชุดของจำนวนเต็มที่ไม่เป็นลบเท่านั้นคั่นด้วยช่องว่าง คุณควรส่งออกดัชนี lexicographic (ช่วง 0 ถึง n! -1 รวม) ของการเปลี่ยนแปลง ไม่สามารถใช้ไลบรารีการเปลี่ยนแปลงหรือการแปลงร่างภายในได้ คุณไม่สามารถสร้างชุดการเรียงสับเปลี่ยนหรือชุดย่อยของการเรียงสับเปลี่ยนของอินพุตเพื่อช่วยคุณค้นหาดัชนี นอกจากนี้คุณยังไม่สามารถเพิ่มหรือลดการเปลี่ยนแปลงที่ให้กับการเปลี่ยนลำดับถัดไป / ก่อนหน้า (การทำพจนานุกรม) คะแนนโบนัส (-10 ไบต์) หากคุณพบวิธีที่จะทำให้เสร็จโดยไม่ต้องใช้แฟกทอเรียล รันไทม์ควรน้อยกว่า 1 นาทีสำหรับ n = 100 รหัสที่สั้นที่สุดนับเป็นไบต์ชนะ ผู้ชนะที่ได้รับเลือกวันอังคาร (22 กรกฎาคม 2014) เพิ่มเติมเกี่ยวกับการเรียงสับเปลี่ยน http://www.monkeyphysics.com/articles/read/26/numbering_permutations.html การดำเนินการกลุ่มการเปลี่ยนแปลง http://lin-ear-th-inking.blogspot.com/2012/11/enumerating-permutations-using.html ตัวอย่าง 0 1 2 --> 0 0 2 1 …

21
สร้างชุดค่าผสมที่มีคำสั่งด้วยการทำซ้ำ
กำหนดสตริงของอักขระที่แตกต่างกันและตัวเลข n สร้างชุดค่าผสมที่เรียงลำดับทั้งหมดด้วยการทำซ้ำความยาว 1 ถึง n โดยใช้อักขระเหล่านั้น อีกวิธีในการกำหนดคือดูอักขระที่กำหนดเป็นตัวเลข "กำหนดเอง" ในฐาน (radix) ของจำนวนอักขระจากนั้นโปรแกรมควรสร้าง "ตัวเลข" ทั้งหมดที่มี 1 ถึง n หลักในฐานนั้น "ศูนย์" รวมอยู่ด้วย ชุดค่าผสมควรเรียงตามความยาว (1 ตัวอักษรก่อนจากนั้น 2 และอื่น ๆ ) แต่นอกเหนือจากนั้นสามารถเรียงลำดับได้ คุณสามารถเลือกวิธีที่สะดวกที่สุดในการจัดการอินพุตและเอาต์พุต รหัสที่สั้นที่สุดชนะ ตัวอย่าง: ab, 3-> a,b,aa,ab,ba,bb,aaa,aab,aba,baa,abb,bab,bba,bbb 0123456789, 2->0,1,2,3,4,5,6,7,8,9,00,01,...,09,10,11,...,99

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