คำถามติดแท็ก restricted-complexity

ความท้าทายด้วยสเป็คที่ต้องใช้คำตอบทั้งหมดเพื่อให้บรรลุข้อ จำกัด ด้านเวลาที่ซับซ้อน นี่อาจเป็นเรื่องเฉพาะ ("คำตอบของคุณต้องเป็น O (n ^ 2) โดยที่ n คือจำนวนรายการในอินพุต") หรือที่ระดับความซับซ้อนของคลาส ("คำตอบของคุณต้องเป็นพหุนามในจำนวนรายการใน การป้อนข้อมูล ")

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) จะตอบสนองทั้งสี่จุด มันไม่สำคัญเกินไปที่จะเข้าใจความแตกต่างที่นี่ ส่วนใหญ่หากโปรแกรมของคุณกำลังดำเนินการ …

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

22
พื้นฐาน ASCII Tallies
หัวข้อสำรอง: นับประโยคที่เรือนจำของคุณติดไว้ที่ผนัง กำหนดตัวเลขการnส่งออกนับเป็นกลุ่มแบบดั้งเดิม 5 ต่อกลุ่มและ 50 ต่อแถว ตัวอย่าง 1 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

29
มันเป็นรหัสคำนำหน้า?
ในทฤษฎีข้อมูล "รหัสคำนำหน้า" เป็นพจนานุกรมที่ไม่มีคีย์ใดเป็นคำนำหน้าของอีก กล่าวอีกนัยหนึ่งนี่หมายความว่าไม่มีสตริงใดเริ่มต้นด้วยสตริงอื่นใด ตัวอย่างเช่น{"9", "55"}เป็นรหัสคำนำหน้า แต่{"5", "9", "55"}ไม่ใช่ ข้อได้เปรียบที่ใหญ่ที่สุดของเรื่องนี้คือข้อความที่เข้ารหัสสามารถเขียนลงโดยไม่มีตัวคั่นระหว่างพวกเขาและมันจะยังสามารถถอดรหัสได้โดยไม่ซ้ำกัน สิ่งนี้แสดงให้เห็นในอัลกอริธึมการบีบอัดเช่นการเข้ารหัส Huffmanซึ่งจะสร้างรหัสคำนำหน้าที่ดีที่สุดเสมอ งานของคุณง่าย: ได้รับรายการของสตริงตรวจสอบว่ามันเป็นรหัสคำนำหน้าที่ถูกต้องหรือไม่ ข้อมูลของคุณ: จะมีรายการของสตริงในรูปแบบที่เหมาะสม จะมีสตริง ASCII ที่พิมพ์ได้เท่านั้น จะไม่มีสตริงว่างเปล่า ผลลัพธ์ของคุณจะเป็นค่าจริง / เท็จ : ความจริงถ้ามันเป็นรหัสคำนำหน้าที่ถูกต้องและเป็นเท็จถ้ามันไม่ ต่อไปนี้เป็นกรณีทดสอบจริง: ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", …

30
Mirage ของคนฉลาด
กาลครั้งหนึ่งฉันได้อ่านคำถาม / คำตอบนี้เกี่ยวกับ Quora มีโปรแกรมเมอร์ที่มีองศาวิทยาศาสตร์คอมพิวเตอร์ซึ่งไม่สามารถผ่านการทดสอบ FizzBuzz ได้หรือไม่ รหัสนี้เป็นคำตอบที่ชัดเจน for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i แน่นอนว่าFizzBuzzได้รับการตีกอล์ฟให้ตาย แต่นั่นไม่ใช่สิ่งที่คำถามนี้เกี่ยวกับ ในความเห็นมีคนพูดว่าคำตอบที่ชัดเจนนี้ดีมากเพราะมันง่ายที่จะเพิ่มเงื่อนไขพิเศษเช่นพิมพ์ "Jazz" …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

3
ใช้การจัดช่องไฟแบบง่าย
บทนำ การจัดช่องไฟหมายถึงการปรับระยะห่างระหว่างตัวอักษรของข้อความ ยกตัวอย่างพิจารณาคำที่Topเขียนด้วยร่ายมนตร์ต่อไปนี้สามอัน: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... เราสามารถเติมช่องว่างระหว่างร่ายมนตร์ด้วยจุดแล้วเติมลงไปได้ แต่ช่องว่างก็ดูกว้างเกินไป แต่เราเลื่อนร่ายมนตร์ไปทางซ้ายเพื่อให้พวกมันสัมผัสเกือบ: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... มันดูดีขึ้นมาก! หมายเหตุวิธีบาร์ของด้านบนของเส้นขอบด้านซ้ายของT oในการท้าทายนี้งานของคุณคือการใช้โปรแกรมการจัดช่องไฟอย่างง่ายสำหรับร่ายมนตร์รูปสี่เหลี่ยมผืนผ้าดังกล่าว กระบวนการจัดช่องไฟ พิจารณาสองสี่เหลี่ยม 2D อาร์เรย์ของตัวอักษร.และ#รูปทรงเดียวกัน ในขั้นตอนการจัดช่องไฟอย่างง่ายของเราอันดับแรกเราวางอาร์เรย์แบบเรียงต่อกันโดยมีคอลัมน์หนึ่งคอลัมน์.อยู่ระหว่างกัน จากนั้นเราย้ายแต่ละรายการ#ในอาเรย์ขวาหนึ่งก้าวไปทางซ้ายจนกระทั่ง#อาเรย์ซ้ายและขวาบางอันอยู่ติดกันแบบมุมฉากหรือแนวทแยงมุม ผลลัพธ์ของการจัดช่องไฟเป็นขั้นตอนก่อนที่เราจะแนะนำ#s ที่อยู่ติดกัน งานของคุณคือการใช้กระบวนการนี้ …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

2
เขียน tokeniser ของเหตุการณ์
พื้นหลัง เหตุการณ์เป็นภาษาการเขียนโปรแกรมที่ค่อนข้างแปลกในรายการของโทเค็นไม่ได้กำหนดไว้ล่วงหน้า แต่อนุมานจากอินพุต ดังนั้นการโทเค็นโปรแกรมเหตุการณ์อาจค่อนข้างยากโดยเฉพาะอย่างยิ่งถ้าคุณต้องการทำอย่างมีประสิทธิภาพ งานนี้เกี่ยวกับการทำด้วยตัวเอง งาน โปรแกรมของคุณจะได้รับสตริงเป็นอินพุต นี่คืออัลกอริทึมที่เหตุการณ์ใช้เพื่อทำเครื่องหมาย: ระบุสตริงทั้งหมดที่เกิดขึ้นเป็นสตริงย่อยของอินพุตในสามวิธีอย่างแน่นอน (เช่นมีสตริงที่เกิดขึ้นสามครั้งภายในอินพุต) ยกเลิกสตริงใด ๆ ที่เป็นสตริงย่อยของสตริงอื่น (เช่นสำหรับอินพุตabababสตริงที่เหลือเท่านั้นจะabไม่ใช่aหรือbเพราะaและbเป็นสตริงย่อยของทั้งสองab) ยกเลิกสตริงใด ๆ ที่ทับซ้อนกันภายในอินพุต (ยกตัวอย่างเช่นaaaaมีเพียงแค่สามเล่มaaแต่สำเนาเหล่านี้ทับซ้อนกันที่ตัวละครสองและสามนั้นจะถูกยกเลิก. ในทำนองเดียวกันในabababaมีสามสำเนาabและสามสำเนาของbaแต่สองตัวละครที่หกแต่ละที่ ทับซ้อนของabและbaดังนั้นทั้งสองabและbaจะถูกทิ้ง) สตริงใด ๆ ที่ยังคงอยู่ ณ จุดนี้เป็นโทเค็นที่ใช้โดยโปรแกรม โทเค็นอินพุตต้นฉบับเป็นลำดับโทเค็นเหล่านี้ (เนื่องจากการละทิ้งในขั้นตอนก่อนหน้าจะมีเพียงวิธีเดียวเท่านั้นที่ทำได้) อักขระใด ๆ ในอินพุตที่ไม่ได้เป็นส่วนหนึ่งของโทเค็นจะถือว่าเป็นความคิดเห็นและถูกละทิ้ง โปรแกรมของคุณจะต้องใช้สตริงเป็นอินพุตและส่งกลับโทเค็นที่สอดคล้องกันของสตริง (รายการโทเค็นซึ่งแต่ละรายการจะแสดงเป็นสตริง) เป็นเอาต์พุต นอกจากนี้สิ่งนี้จะต้องทำอย่างน้อยในระดับปานกลางอย่างมีประสิทธิภาพ โดยเฉพาะโปรแกรมจะต้องทำงานในเวลากำลังสอง ("O (n²)") หรือดีกว่า (บังเอิญมันเป็นไปได้ที่จะเร็วกว่าสมการกำลังสอง แต่นี่ไม่ใช่อัลกอริธึมที่เร็วที่สุดดังนั้นอย่าลังเลที่จะใช้อัลกอริธึมที่ยากที่สุดที่คุณจะพบว่าเหมาะกับขอบเขตความซับซ้อน) ชี้แจง แม้ว่าในทางทฤษฎีแล้วโปรแกรมสามารถมี 256 octets ใด ๆ ก็ตามมันเป็นที่ยอมรับได้สำหรับวัตถุประสงค์ของการท้าทายนี้สำหรับโปรแกรมของคุณที่จะจัดการเฉพาะอินพุตที่เกิดขึ้นจาก ASCII ที่พิมพ์ได้ (รวมถึงช่องว่าง) …

3
การเปลี่ยนแปลงรูตสแควร์
ในวิชาคณิตศาสตร์มีการเปลี่ยนแปลง σของการสั่งซื้อnเป็นฟังก์ชัน bijective จากเลข 1 ... nกับตัวเอง รายการนี้: 2 1 4 3 แสดงให้เห็นถึงการเปลี่ยนแปลงσดังกล่าวว่าσ (1) = 2 σ (2) = 1 σ (3) = 4 และσ (4) = 3 รากของการเปลี่ยนแปลงσคือการเปลี่ยนแปลงที่เมื่อนำไปใช้กับตัวเองให้σ ตัวอย่างเช่น2 1 4 3มีรากที่τ3 4 2 1 = k 1 2 3 4 τ(k) 3 4 2 1 τ(τ(k)) 2 1 …

2
เรียงสแต็คหนังสือ
เมื่อทำการซ้อนหนังสือคุณมักต้องการวางหนังสือที่ใหญ่ที่สุดไว้ที่ด้านล่างและหนังสือที่มีขนาดเล็กที่สุดอยู่ด้านบน อย่างไรก็ตาม OCD แฝงตัวของฉันทำให้ฉันรู้สึกไม่สบายใจมากถ้าฉันมีหนังสือสองเล่มที่หนึ่งสั้น (สูง) แต่กว้างกว่าหนังสือเล่มอื่น ไม่ว่าจะเรียงตามลำดับใดก็ตามฉันจะวางหนังสือยอดนิยมไว้บนหนังสือเล่มใดเล่มหนึ่งด้านล่าง เป็นตัวอย่างที่บอกว่าหนังสือเล่มหนึ่งมีขนาด(10,15)และอื่น ๆ (11,14)มีขนาด ไม่ว่าฉันจะใส่พวกมันไปทางไหนฉันก็จะยื่นออกมา แต่ถ้าฉันมีหนังสือที่มีมิติ(4,3)และ(5,6)ฉันสามารถหลีกเลี่ยงการแขวนโดยวางหนังสือไว้ด้านล่างเก่า สำหรับวัตถุประสงค์ของการท้าทายนี้เราจะพิจารณายื่นเฉพาะในความสัมพันธ์กับหนังสือเล่มนี้ได้ทันทีด้านล่าง เช่นถ้าฉันมีสแต็(5,5)ก(3,3), (4,4)(ไม่ใช่คนที่มีสติจะทำอย่างนั้น) หนังสือยอดนิยมนับว่าเป็นสิ่งที่แขวนอยู่แม้ว่ามันจะไม่ขยายออกไปจากหนังสือด้านล่าง ในทำนองเดียวกันสแต็ค(3,3), (3,3),(4,4)นอกจากนี้ยังมีเพียงคนเดียวที่แขวนอยู่แม้จะมีหนังสือด้านบนขยายเกินหนึ่งด้านล่าง ความท้าทาย รับรายการคู่เต็มจำนวนสำหรับขนาดหนังสือเรียงลำดับคู่ / หนังสือเหล่านั้นเพื่อให้จำนวนของสิ่งที่แขวนอยู่มีน้อยที่สุด คุณต้องไม่หมุนหนังสือ - ฉันต้องการหนามทั้งหมดหันไปในทิศทางเดียวกัน หากมีวิธีแก้ปัญหาหลายอย่างที่มีจำนวนกระเช้าแขวนเท่ากันคุณสามารถเลือกคำสั่งดังกล่าวได้ อัลกอริทึมการเรียงลำดับของคุณไม่จำเป็นต้องมีเสถียรภาพ การดำเนินงานของคุณอาจคิดว่าหนังสือเล่มขนาดน้อยกว่า 2 16แต่ละ ความซับซ้อนของเวลา:ในการทำให้สิ่งนี้น่าสนใจยิ่งขึ้นความซับซ้อนเชิงกรณีที่แย่ที่สุดของอัลกอริทึมของคุณจะต้องเป็นพหุนามในขนาดของสแต็ก ดังนั้นคุณไม่สามารถทดสอบการเปลี่ยนรูปทุกครั้งที่เป็นไปได้ โปรดรวมการพิสูจน์สั้น ๆ เกี่ยวกับการเพิ่มประสิทธิภาพและความซับซ้อนของอัลกอริทึมของคุณ แน่นอนคุณไม่สามารถใช้ขนาดสูงสุดของอินพุตเป็นอาร์กิวเมนต์ที่โค้ดของคุณทำงานใน O (1) คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นรับอินพุตผ่าน STDIN, ARGV หรืออาร์กิวเมนต์ของฟังก์ชันในรูปแบบรายการที่สะดวก (ไม่ได้ประมวลผลล่วงหน้า) และพิมพ์หรือส่งคืนผลลัพธ์ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ ฉันมั่นใจว่ามีคำตอบพหุนามอยู่ แต่หากคุณพิสูจน์ได้ว่าผิดฉันอาจส่งหลักฐานดังกล่าวแทนการยื่นแบบกอล์ฟ ในกรณีนี้คุณอาจคิดP …

3
หนึ่งขึ้นไปที่อื่น ๆ ลงมา
บทนำ ในการท้าทายนี้งานของคุณคือการตัดสินใจว่าลำดับของตัวเลขที่กำหนดสามารถแบ่งออกเป็นสองชุดย่อยซึ่งหนึ่งในนั้นเพิ่มขึ้นและลดลงอีก 8 3 5 5 4 12 3เป็นตัวอย่างให้พิจารณาลำดับ มันสามารถแบ่งออกเป็นสององค์ประกอบดังนี้: 3 5 5 12 8 4 3 การเรียงลำดับของแถวแรกเพิ่มขึ้นและแถวลำดับที่สองลดลง นอกจากนี้คุณควรปฏิบัติงานนี้อย่างมีประสิทธิภาพ อินพุต ข้อมูลที่คุณป้อนเป็นรายการLจำนวนเต็มที่ไม่ว่างในช่วง 0 - 99999 มันมีให้ในรูปแบบดั้งเดิมของภาษาของคุณหรือคั่นด้วยช่องว่าง เอาท์พุต ผลลัพธ์ของคุณเป็นค่าจริงหากLสามารถแบ่งออกเป็นลำดับที่เพิ่มขึ้นและลดลงและมูลค่าที่เป็นเท็จเป็นอย่างอื่น ลำดับไม่จำเป็นต้องเพิ่มหรือลดลงอย่างเคร่งครัดและทั้งคู่อาจว่างเปล่า กฎและโบนัส คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต นอกจากเดรัจฉานบังคับให้เป็นที่ต้องห้ามในความท้าทายนี้: โปรแกรมของคุณจะต้องทำงานในเวลาพหุนามในความยาวของการป้อนข้อมูล คุณไม่จำเป็นต้องส่งคืนทั้งสององค์ประกอบจริง แต่มีโบนัส -20%สำหรับการทำเช่นนั้น เพื่อให้โบนัสง่ายขึ้นในการอ้างสิทธิ์ในภาษาที่พิมพ์แบบคงที่มันเป็นที่ยอมรับได้ที่จะคืนรายการคู่ที่ว่างเปล่าสำหรับอินสแตนซ์ที่ผิดพลาด กรณีทดสอบ กำหนดในรูปแบบinput -> Noneของอินพุตที่ผิดพลาดและinput -> inc decอินพุตที่เป็นความจริง มีการแจกแจงคู่ลำดับความเป็นไปได้เพียงคู่เดียว อาจมีมากกว่านี้ [4,9,2,8,3,7,4,6,5] -> None [0,99999,23423,5252,27658,8671,43245,53900,22339] …

11
เพิ่มความแตกต่างยกกำลังสอง
พิจารณาการเปลี่ยนแปลงของค่าจำนวนเต็มจากไป1 Nเช่นตัวอย่างนี้สำหรับN = 4: [1, 3, 4, 2] เราจะถือว่ารายการนี้เป็นวงจรเช่นนั้น1และ2ได้รับการปฏิบัติเหมือนติดกัน ปริมาณหนึ่งที่เราสามารถคำนวณได้สำหรับรายการดังกล่าวคือผลต่างกำลังสองรวมของค่าที่อยู่ติดกัน: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 Nงานของคุณคือการหาการเปลี่ยนแปลงซึ่งจะเพิ่มปริมาณนี้ให้เป็นจำนวนเต็มบวก ในกรณีของN = 4ตัวอย่างข้างต้นจะไม่เหมาะสมที่สุด (อันที่จริงแล้วเป็นเพียงเล็กน้อย) เราสามารถบรรลุผลต่างกำลังสองรวม18กับการเปลี่ยนแปลงต่อไปนี้ (รวมถึงการเปลี่ยนแปลงอื่น ๆ ): [1, 4, 2, 3] อัลกอริทึมของคุณต้องทำงานในเวลาพหุนาม (จากN) โดยเฉพาะอย่างยิ่งคุณไม่สามารถคำนวณความแตกต่างยกกำลังสองทั้งหมดของพีชคณิตทั้งหมดได้ คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่น, รับอินพุตผ่าน STDIN (หรือทางเลือกที่ใกล้เคียงที่สุด), อาร์กิวเมนต์บรรทัดคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชันและส่งผลลัพธ์ผ่าน STDOUT (หรือทางเลือกที่ใกล้เคียงที่สุด), ค่าส่งคืนของฟังก์ชันหรือพารามิเตอร์ ผลลัพธ์อาจอยู่ในรูปแบบรายการแบบแบนหรือแบบสตริงที่สะดวกใด ๆ คุณอาจเลือกที่จะกลับรายการที่มีค่าจาก0การN-1แทนไป1N ใช้กฎมาตรฐานของกอล์ฟ ทดสอบข้อมูล มีวิธีการวิเคราะห์ที่ดีสำหรับปัญหานี้ เช่นโซลูชันที่ถูกต้องทั้งหมดN …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

20
ให้การเรียงสับเปลี่ยนโดยไม่มีจำนวนเต็มต่อเนื่องสองตัวติดกัน
ท้าทาย รับจำนวนเต็มn ≥ 4เอาท์พุทการเปลี่ยนแปลงของจำนวนเต็ม[0, n-1]ด้วยคุณสมบัติที่ไม่มีจำนวนเต็มต่อเนื่องสองตัว (จำนวนเต็มที่มีผลต่างแน่นอน 1) อยู่ติดกัน ตัวอย่าง 4 → [1, 3, 0, 2] 5 → [0, 2, 4, 1, 3] 6 → [0, 2, 4, 1, 3, 5] 7 → [0, 2, 4, 1, 5, 3, 6] คุณสามารถใช้การจัดทำดัชนี 1 แบบแทน (ใช้จำนวนเต็ม[1, n]แทน[0, n-1] ) รหัสของคุณจะต้องทำงานในเวลาพหุนามในnดังนั้นคุณจึงไม่สามารถลองเปลี่ยนลำดับและทดสอบแต่ละอันได้

10
เมทริกซ์จากน้อยไปมาก
"เมทริกซ์จากน้อยไปมาก" เป็นเมทริกซ์ที่ไม่มีที่สิ้นสุดของจำนวนเต็ม (รวม 0) ซึ่งองค์ประกอบใด ๆ เป็นองค์ประกอบที่มีขนาดเล็กที่สุดซึ่งไม่เคยใช้ในแถวและคอลัมน์นั้นมาก่อน: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

6
การจับคู่สตริงตามเวลาจริง
งาน ภารกิจคือการจับคู่อัลกอริทึมการจับคู่สตริงตามเวลาจริงที่คุณต้องการ อินพุต ข้อความสองบรรทัดที่ให้มากับอินพุตมาตรฐานคั่นด้วยบรรทัดใหม่ บรรทัดแรกมี "รูปแบบ" และก็จะเป็นสตริง ASCII a-zดึงออกมาจากตัวอักษร บรรทัดที่สองมีข้อความ "" อีกต่อไปและยังจะเพียงแค่เป็นสตริง ASCII a-zดึงออกมาจากตัวอักษร เอาท์พุต รายการดัชนีที่มีการจับคู่ที่ตรงกันเกิดขึ้น คุณควรส่งออกตำแหน่งของการเริ่มต้นของการแข่งขันแต่ละครั้งที่เกิดขึ้น สเปค อัลกอริทึมของคุณสามารถใช้เวลาเชิงเส้นในการประมวลผลรูปแบบล่วงหน้า จากนั้นจะต้องอ่านข้อความจากซ้ายไปขวาและใช้เวลาคงที่สำหรับตัวละครทุกตัวในข้อความและส่งผลการแข่งขันใหม่ ๆ ทันทีที่เกิดขึ้น แน่นอนว่าการแข่งขันสามารถซ้อนทับกันได้ ขั้นตอนวิธี มีอัลกอริธึมการจับคู่แบบเรียลไทม์มากมาย ตัวอย่างหนึ่งถูกกล่าวถึงบนวิกิสำหรับ KMPเช่น คุณสามารถใช้คนที่คุณชอบ แต่คุณต้องออกคำตอบที่ถูกต้องเสมอ ฉันจะเก็บตารางผู้นำต่อภาษาเพื่อให้ผู้ที่ชื่นชอบภาษายอดนิยมสามารถชนะในแบบของตนเอง โปรดอธิบายอัลกอริทึมที่คุณใช้ แบบ Real-time ดูเหมือนว่ามีความสับสนมากมายเกี่ยวกับความหมายของเวลาจริง มันไม่ได้หมายถึงเวลาเชิงเส้น ดังนั้น KMP มาตรฐานไม่ใช่แบบเรียลไทม์ ลิงก์ในคำถามนั้นชี้ไปที่ส่วนหนึ่งของหน้าวิกิสำหรับ KMP เกี่ยวกับชุดตัวแปร KMP ตามเวลาจริง Boyer-Moore-Galil เรียลไทม์ คำถาม / คำตอบcstheoryนี้กล่าวถึงปัญหาหรือเพียงแค่สามารถ "จับคู่แบบตรงทุกเวลา" หรือคำที่คล้ายกัน

4
ค้นหา axe สูงสุด + b
คุณจะได้รับรายชื่อของ (เป็นA, B ) และรายการของx คำนวณสูงสุดขวาน + Bสำหรับแต่ละx คุณสามารถสมมติa , bและxเป็นจำนวนเต็มไม่เป็นลบ โปรแกรมหรือฟังก์ชั่นของคุณจะต้องทำงานตามที่คาดไว้ (ตามแบบแผนหากโค้ดของคุณเกี่ยวข้องกับสิ่งนั้นไม่ใช่อินพุต) เวลาO ( n log n )โดยที่nคือความยาวอินพุตทั้งหมด (ผลรวมหรือความยาวสูงสุดของความยาวของทั้งสองรายการ) นี่คือรหัสกอล์ฟ รหัสที่สั้นที่สุดชนะ ตัวอย่าง [[2 8] [4 0] [2 1] [1 10] [3 3] [0 4]] [1 2 3 4 5] เอาท์พุท: [11 12 14 16 20] คำอธิบาย: 11 = 1*1 …

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