คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

12
เบอร์แรมซีย์หมายเลขเล็ก
ความเป็นมา: หมายเลขแรมซีย์R(r,s)R(r,s)R(r,s)ให้จำนวนจุดยอดต่ำสุดvvvในกราฟสมบูรณ์KvKvK_vซึ่งการระบายสีขอบสีแดง / น้ำเงินของKvKvK_vมีอย่างน้อยหนึ่งสีแดงKrKrK_rหรือสีน้ำเงินหนึ่งKsKsK_sอัน ขอบเขตขนาดใหญ่สำหรับr,sr,sr, sเป็นเรื่องยากมากที่จะสร้าง งานของคุณคือการส่งออกจำนวนR(r,s)R(r,s)R(r,s)สำหรับ1≤r,s≤51≤r,s≤51 \le r,s \le 5 5 อินพุต สองจำนวนเต็มr,sr,sr, sกับ1≤r≤51≤r≤51 \le r \le 5และ1≤s≤51≤s≤51 \le s \le 5 5 เอาท์พุต R(r,s)R(r,s)R(r,s)ตามที่กำหนดในตารางนี้: s 1 2 3 4 5 r +-------------------------- 1 | 1 1 1 1 1 2 | 1 2 3 4 5 3 | …

6
โซ่กอล์ฟ (ด้ายของตำรวจ)
นี่คือความท้าทาย Cops และ Robbers สำหรับด้ายโจรไปที่นี่ ตำรวจมีสามภารกิจ 1) เลือกลำดับจากที่OEIS 2) เลือกภาษา (แนะนำให้ใช้กับ golflang แต่ไม่จำเป็นต้องเป็น) ซึ่งเมื่อป้อนข้อมูลnแล้วเอาต์พุตA(n)(ซึ่งA(n)เป็นลำดับที่เลือก) โดยใช้กฎการเข้ารหัสกอล์ฟทั้งหมดตามปกติ เรียกภาษานี้LและรหัสC ยกตัวอย่างเช่นเยลลี่และJelly_code 3) จากนั้นเลือกภาษาอื่น (แนะนำให้เป็นแบบ non-golflang แต่ไม่จำเป็นต้องเป็น) และเขียนรหัสที่ไม่มีอินพุตและเอาต์พุตรหัสC Aอีกครั้งโดยปฏิบัติตามกฎของรหัสกอล์ฟ (หมายเหตุ: นี้สามารถ obfuscated รหัสและไม่จำเป็นต้องมีการแข็งแรงเล่นกอล์ฟ แต่อีกต่อไปรหัสนี้ได้ง่ายขึ้นมันก็จะเป็นโจรที่จะแตกส่งของคุณ.) โทรนี้ภาษาL BและรหัสC B ยกตัวอย่างเช่นงูหลามและPython_code การส่ง Cop ของการท้าทายนี้เป็นลำดับ (ระบุว่า 0- หรือ 1-indexed), ชื่อของสองภาษาL AและL B (และอันที่แก้ส่วนใดส่วนหนึ่ง) และนับไบต์ของC Bเท่านั้น เก็บรหัสจริงของทั้งสองส่วนและความยาวของC A เป็นความลับ สำหรับตำรวจลิงค์ไปยังเอกสารสำหรับL …

12
สนุกกับสตริงและตัวเลข
นี่คือปริศนาการเขียนโปรแกรมสำหรับคุณ: รับรายการคู่ของสายอักขระและหมายเลขที่เกี่ยวข้องตัวอย่างเช่น[[A,37],[B,27],[C,21],[D,11],[E,10],[F,9],[G,3],[H,2]]เอาท์พุทรายการอื่นซึ่งจะมีเพียงสตริงในลักษณะดังต่อไปนี้: จำนวนรวมของสตริงใด ๆ ควรเท่ากับจำนวนที่สอดคล้องกันในข้อมูลอินพุต ไม่ควรมีสตริงซ้ำติดกันในลำดับและทุกสตริงควรปรากฏในรายการผลลัพธ์ การเลือกสตริงถัดไปควรทำแบบสุ่มตราบเท่าที่พวกเขาไม่ได้อยู่เหนือกฎสองข้อ แต่ละโซลูชันควรมีความน่าจะเป็นที่ไม่เป็นศูนย์ของการเลือก 0ถ้ารวมกันไม่มีความเป็นไปได้การส่งออกควรเป็นเพียง รายการอินพุตอาจได้รับในลำดับใด ๆ (เรียงลำดับหรือไม่เรียง) และสตริงในรายการอาจมีความยาวเท่าใดก็ได้ เอาต์พุตตัวอย่างสำหรับอินพุตตัวอย่างด้านบน 1 [A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,B,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,A,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,D,C,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,F,E,G,H,G,H,G] อินพุตตัวอย่าง 2: [[A,6],[B,1],[C,1]] เอาต์พุตสำหรับอินพุตที่สอง: 0 เนื่องจากไม่มีรายการที่เป็นไปได้ตามกฎ ตัวอย่างอินพุต 3: [[AC,3],[BD,2]] ผลลัพธ์ที่ถูกต้อง: [AC,BD,AC,BD,AC] ผลลัพธ์ที่ไม่ถูกต้อง: [AC,BD,AC,AC,BD] หากต้องการคำชี้แจงเพิ่มเติมโปรดอย่าลังเลที่จะบอกฉันในความคิดเห็นและฉันจะทำตามทันที นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดเป็นไบต์สำหรับแต่ละภาษาที่ชนะ!

4
รหัสสีเทาทั่วไป
อินพุต:อาร์เรย์Iของจำนวนเต็มบวกk จำนวนเต็มจะมีขนาดไม่เกิน 100 k ≤ 100 เอาท์พุท:อาร์เรย์เป็นไปได้ทั้งหมดต้องรหัสการส่งออกของคุณOของจำนวนเต็มไม่ใช่เชิงลบของความยาวkกับข้อ จำกัด ที่0 ≤ O ฉัน ≤ฉันฉัน ที่จะได้รับจากอาร์เรย์หนึ่งไปยังอีกคุณสามารถเพิ่มหรือลบ 1 ถึงหนึ่งมูลค่าในอาร์เรย์ รหัสของคุณจะต้องไม่ส่งออกอาร์เรย์เดียวกันสองครั้ง หากจำนวนของอาร์เรย์ที่แตกต่างกันที่จะส่งออกมีขนาดใหญ่มากรหัสของคุณควรดำเนินการในการส่งออกตลอดไปจนกว่าจะถูกฆ่าตาย ตัวอย่าง ถ้าฉันเป็นอาร์เรย์ของkแล้วนี่เป็นปัญหาของการวนซ้ำรหัสสีเทาทั้งหมดของความกว้างบิตkยกเว้นว่าองค์ประกอบแรกและองค์ประกอบสุดท้ายไม่จำเป็นต้องเข้าถึงได้ในขั้นตอนเดียว ถ้าI = [2,1]เป็นไปได้การเรียงลำดับของเอาต์พุตเอาท์พุตอย่างใดอย่างหนึ่งคือ(0,0),(0,1),(1,1),(1,0),(2,0),(2,1) หากแล้วหนึ่งการสั่งซื้อเป็นไปได้ของอาร์เรย์ออกเป็นI = [2,1,3](0,0,0),(0,0,1),(0,0,2),(0,0,3),(0,1,3),(0,1,2),(0,1,1),(0,1,0),(1,1,0),(1,1,1),(1,1,2),(1,1,3),(2,1,3),(2,1,2),(2,1,1),(2,1,0),... นี่คือความท้าทายของรหัสกอล์ฟการส่งพร้อมซอร์สโค้ดที่มีความยาวสั้นที่สุดชนะ อย่าปล่อยให้คำตอบสั้น ๆ ในภาษากอล์ฟกีดกันคุณจากการโพสต์คำตอบในภาษาอื่น ลองคิดหาคำตอบที่สั้นที่สุดในทุกภาษา นี่เป็นความท้าทายที่ จำกัด อย่างซับซ้อน อาร์เรย์ใหม่ทุกตัวควรถูกส่งออกด้วยการผ่านเวลาO (k)นับตั้งแต่อาร์เรย์เอาท์พุทก่อนหน้า (หรือจุดเริ่มต้นของโปรแกรมสำหรับอาร์เรย์แรกที่เอาต์พุต) ซึ่งหมายความว่าเวลาการทำงานต่ออาร์เรย์ส่งออกใหม่ (พวกเขาจะมีความยาวแต่ละk ) ที่ควรจะเป็นมากขึ้นกว่าไม่มีO (k) นั่นคือมันควรจะใช้สัดส่วนของเวลาที่จะkและไม่ได้ตัวอย่างเช่นk 2หรือ2 k หมายเหตุนี่ไม่ใช่เวลาเฉลี่ยต่อเอาต์พุต แต่เวลาที่เลวร้ายที่สุดสำหรับแต่ละอาร์เรย์ที่เอาต์พุต คุณสามารถสันนิษฐานได้ว่าการคำนวณทางคณิตศาสตร์ทั้งหมดในจำนวนเต็ม 64 บิตสามารถดำเนินการได้ในเวลาคงที่เช่นเดียวกับการอ่านและส่งออกรวมถึงการมอบหมายและค้นหาและการเปลี่ยนแปลงค่าในอาร์เรย์ …

30
กู้กำลังสำคัญจากพลังพิเศษ
คำจำกัดความ : พลังพิเศษเป็นจำนวนธรรมชาติที่สามารถแสดงในรูปแบบ p nโดยที่ p คือจำนวนเฉพาะและ n เป็นจำนวนธรรมชาติ ภารกิจ : เมื่อได้รับพลังพิเศษ p n > 1 ให้คืนค่านายกรัฐมนตรี ทดสอบ : input output 9 3 16 2 343 7 2687 2687 59049 3 เกณฑ์การให้คะแนน : นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์
13 code-golf  arithmetic  primes  king-of-the-hill  python  board-game  code-golf  number  subsequence  code-golf  ascii-art  code-golf  array-manipulation  decision-problem  grid  fastest-algorithm  logic-gates  logic  code-golf  cards  code-golf  rational-numbers  code-golf  math  number  sequence  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  code-golf  number  sequence  decision-problem  code-golf  ascii-art  number  code-challenge  sequence  arithmetic  sorting  code-golf  date  fastest-algorithm  code-golf  string  number  random  combinatorics  code-golf  combinatorics  code-golf  ascii-art  base-conversion  code-golf  array-manipulation  code-golf  string  code-golf  string  number  arithmetic  code-golf  kolmogorov-complexity  code-golf  string  array-manipulation  json  code-golf  puzzle-solver  code-golf  binary  graph-theory  code-golf  arithmetic  haskell  code-golf  string  cipher  code-golf  code-golf  string  parsing  alphabet  code-golf  string  code-golf  ascii-art  code-golf  string  number  code-golf  string  balanced-string 

7
กองน้ำหนัก
ท้าทาย: คุณจะได้รับภาพ ASCII ของน้ำหนักกองเป็นอินพุตและต้องส่งออกน้ำหนักรวมของกอง รูปแบบ: มีน้ำหนักแตกต่างกัน 5 น้ำหนัก1, 2, 5, 10, 20 Passerees (หรือหน่วยอื่นโดยพลการ) น้ำหนักมีลักษณะดังนี้ตามลำดับ: 1: __ |__| 2: ______ |______| 5: ______ | | |______| 10: ______________ | | |______________| 20: ____________________ | | |____________________| น้ำหนักจะถูกวางแบบสมมาตร (ดังในภาพตัวอย่าง) ไม่จำเป็นต้องเรียงตามลำดับ น้ำหนักจะแบ่งขอบเขตตามความเหมาะสม: กรณีทดสอบ: คุณสามารถใช้ตุ้มน้ำหนักเดี่ยวเป็นกรณีทดสอบได้เช่นกัน __ _|__|_ |______| | | |______| 1 + …

1
แสงทั้งหมดแสงทั้งหมดแสงทั้งหมด!
ความท้าทายนี้จะฉีกสมบูรณ์ออกอย่างหนักแรงบันดาลใจจาก ทั้งหมดแสงที่พัฒนาโดย Soulgit เกมส์ ท้าทาย คุณเป็นช่างไฟฟ้าและเป็นงานของคุณที่จะต่อสายไฟทั้งหมดเข้ากับแบตเตอรี่ ไฟและแบตเตอรี่ถูกวางในตาราง คุณสามารถเชื่อมต่อแสงหรือแบตเตอรี่กับแสงหรือแบตเตอรี่ที่ใกล้ที่สุดกับทิศเหนือทิศใต้ทิศตะวันออกและทิศตะวันตก แบตเตอรี่สามารถเชื่อมต่อได้ไม่ จำกัด จำนวน แสงแต่ละดวงระบุจำนวนการเชื่อมต่อที่ต้องการ คุณต้องให้ตรงกับการเชื่อมต่อที่หลายต่อแสงที่ คุณสามารถสร้างการเชื่อมต่อเดี่ยวหรือการเชื่อมต่อสองครั้งระหว่างสองไฟ (หรือแสงและแบตเตอรี่) สายไม่สามารถข้ามได้ จะต้องมีเส้นทางจากแต่ละแสงไปยังแบตเตอรี่ มีโซลูชันที่ถูกต้องอย่างน้อยหนึ่งรายการที่รับประกันว่ามีอยู่ เมื่อระบุตำแหน่งของแบตเตอรี่และแสงแต่ละครั้งและจำนวนการเชื่อมต่อที่แต่ละแสงต้องใช้ให้เชื่อมต่อระหว่างกันที่ยอมรับคุณสมบัติเหล่านี้ เงื่อนไขการชนะ นี่คือรหัสกอล์ฟดังนั้นรหัสที่สั้นที่สุดในแต่ละภาษาจะชนะ กรณีทดสอบ I / O ยืดหยุ่นตามปกติ สำหรับอินพุตฉันจะใช้อาร์เรย์ 2d ขนาดของกริดที่เก็บจำนวนเต็มบวกสำหรับไฟศูนย์สำหรับพื้นที่ว่างและ -1 สำหรับแบตเตอรี่ อีกทางเลือกที่ดีอาจเป็นรายการของแสงที่แสงเป็น tuple ที่มีตำแหน่งของแสงและจำนวนการเชื่อมต่อที่จำเป็น สำหรับผลลัพธ์ฉันจะใช้รายการการเชื่อมต่อที่การเชื่อมต่อเป็น tuple ที่มีตำแหน่งเริ่มต้นและตำแหน่งสิ้นสุด หากการเชื่อมต่อเป็นสองเท่าฉันจะมี 2 รายการในรายการ (ตัวเลือกอื่นคือการรวมพารามิเตอร์นี้ใน tuple) อีกตัวเลือกที่ดีอาจเป็นรูปแบบกริด หากคุณกำลังใช้ระบบพิกัดคุณอาจระบุดัชนีเริ่มต้นและตำแหน่งที่คุณจัดทำดัชนี ตัวอย่างของฉันจะได้รับการจัดทำดัชนี 0 และใช้ (0, 0) เป็นมุมบนซ้าย …
13 code-golf 

3
โปรแกรมค้นหาคำ
ฉันต้องสงสัยเมื่อวานนี้ถ้าฉันสามารถเขียนโปรแกรมเพื่อค้นหาคำและส่งคำตอบออกมา จริงๆแล้วมันง่ายอย่างน่าประหลาดใจ ตอนนี้ฉันสงสัยว่าเราจะได้รับเพียงเล็กน้อย กฎระเบียบ อินพุตแรกของคุณคือสตริงหรือชุดของ n บรรทัดซึ่งแต่ละอันมีความยาว n ตัว อินพุตที่สองของคุณคือรายการคำในรูปแบบใดก็ได้เพื่อค้นหาในจิ๊กซอว์ คำทั้งหมดในรายการค้นหารับประกันว่าจะอยู่ในปริศนา คำสามารถเน้นในทิศทางใด ๆ ของทั้งสี่ทิศทางพระคาร์ดินัลเช่นเดียวกับแนวทแยงทั้งข้างหน้าและข้างหลัง ตัวอักษร AZ ที่เป็นตัวพิมพ์ใหญ่เท่านั้นที่จะปรากฏในจิ๊กซอว์ รหัสของคุณจะต้องค้นหาทุกคำในสตริงการค้นหาและส่งออกตำแหน่งพิกัดของตัวอักษรเริ่มต้นโดยที่ 0,0 คืออักขระบนซ้าย ในกรณีที่คุณพบคำเดียวกันมากกว่าหนึ่งรายการคุณสามารถจัดการได้ตามที่คุณต้องการ เอาท์พุทมันหลายครั้งหรือเพียงครั้งเดียวก็ขึ้นอยู่กับคุณ ตัวอย่าง / กรณีทดสอบ รับบอร์ดต่อไปนี้: ABCD EFGH IJKL MNOP และสตริงการค้นหาต่อไปนี้: ABCD,CGKO,POMN,NJF,AFKP,CFI,LGB,MJGD โปรแกรมของคุณควรแสดงผลต่อไปนี้ตามลำดับ: ABCD at 0,0 CGKO at 0,2 PONM at 3,3 NJF at 3,1 AFKP at 0,0 CFI at …

26
ล่ามกอล์ฟที่เรียบง่าย
ท้าทาย: งานของคุณคือการสร้างล่ามอย่างง่ายสำหรับภาษากอล์ฟที่ง่าย การป้อนข้อมูล: อินพุตจะอยู่ในรูปแบบของสตริงคั่นด้วยช่องว่าง คุณสามารถแทนที่การแยกพื้นที่ด้วยสิ่งที่คุณต้องการ เอาท์พุท: เอาต์พุตผลลัพธ์ (ตัวเลขหรือสตริง) ที่ได้รับหลังจากดำเนินการทั้งหมด หากมีมากกว่าหนึ่งเอาต์พุตเข้าร่วมร่วมกันเพื่อให้ผลลัพธ์เดียว (ไม่มีตัวคั่น) ค่าเริ่มต้นของตัวแปรนั้นเป็นศูนย์เสมอ เช่น: มันเริ่มต้นที่0 ไวยากรณ์ภาษา: ภาษามีตัวดำเนินการดังต่อไปนี้: inc ---> add one to variable dec ---> remove one from variable mult ---> multiply variable by 2 half ---> divide the variable by 2 Pri ---> print the variable to console (or whatever …

13
การจัดกลุ่มข้อมูลอาร์เรย์
ให้เมทริกซ์จำนวนเต็มaและจำนวนเต็มไม่ใช่ค่าลบiเอาท์พุทการแมปbที่แมปค่าที่แตกต่างในiคอลัมน์ th ของaกับแถวของaผู้ที่มีค่านั้นในiคอลัมน์ th คุณอาจสันนิษฐานว่าiอยู่ในช่วงเปิดครึ่ง[0, num_cols(a))(หรือ[1, num_cols(a)]ถ้าคุณเลือกที่จะใช้ดัชนีที่อิง 1) และจำนวนเต็มทั้งหมดอยู่ในช่วงที่สามารถแทนได้สำหรับภาษาของคุณ อินพุตและเอาท์พุตอาจทำได้ในลักษณะที่สมเหตุสมผลตราบใดที่มันตอบสนองความต้องการขั้นพื้นฐานของความท้าทาย (การทำแผนที่สองมิติ -> การทำแผนที่จาก int ไปยังอาร์เรย์ 2 มิติของ int) ตราบใดที่การแมปมีความชัดเจนและสอดคล้องกันคีย์ไม่จำเป็นต้องรวมอยู่ในเอาต์พุต ตัวอย่าง [[1]], 0 -> {1: [[1]]} [[3, 4, 5], [1, 4, 2], [5, 5, 5], [7, 7, 7], [1, 5, 9]], 1 -> {4: [[3, 4, 5], [1, 4, 2]], 5: …

7
จุดตัดในเขาวงกต
เขาวงกตจะได้รับเป็นเมทริกซ์ 0s (ผนัง) และ 1s (พื้นที่เดิน) ในรูปแบบที่สะดวกใด ๆ แต่ละเซลล์จะถูกพิจารณาว่าเชื่อมต่อกับเพื่อนบ้านของ orthogonal 4 ตัว (หรือน้อยกว่า) คอมโพเนนท์ที่ต่อเป็นชุดของเซลล์ walkable ทั้งหมดที่เชื่อมต่อสกรรมกริยากับแต่ละอื่น ๆ งานของคุณคือการระบุcutpoints - เซลล์ walkable ซึ่งหากกลายเป็นผนังจะเปลี่ยนจำนวนขององค์ประกอบที่เกี่ยวโยงกัน เอาท์พุทเมทริกซ์บูลีนแบบ 1 วินาทีที่ตำแหน่งเหล่านั้นเท่านั้น เป้าหมายคือการทำในรหัสไบต์น้อยที่สุด เมทริกซ์การป้อนข้อมูลจะประกอบด้วยอย่างน้อย 3 แถวและ 3 คอลัมน์ เซลล์อย่างน้อยหนึ่งเซลล์จะเป็นกำแพงและอย่างน้อยหนึ่งเซลล์ก็สามารถเดินได้ ฟังก์ชั่นหรือโปรแกรมของคุณจะต้องสามารถประมวลผลตัวอย่างใด ๆ ด้านล่างในเวลาไม่เกินหนึ่งนาทีในTIO (หรือในคอมพิวเตอร์ของคุณเองหาก TIO ไม่รองรับภาษา) in: 11101001 11011101 00000001 11101111 11110101 00011111 10110001 11111111 out: 01000000 00001001 …

13
วงจรเลขคณิต
การป้อนข้อมูล: จำนวนเต็มnซึ่งเป็น>=0หรือ>=1( f(0)เป็นตัวเลือก) เอาท์พุท: หมายเลขn'ตามลำดับด้านล่างหรือลำดับจนถึงและรวมถึงnหมายเลข' ลำดับ: (0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99 ลำดับนี้สร้างอย่างไร f(n=0) = 0(อุปกรณ์เสริม) f(n=1) = f(0) + nหรือf(n=1) = 1 f(n=2) = f(1) - n f(n=3) = f(2) * n f(n=4) = f(3) / n f(n=5) = f(4) + n อื่น ๆ หรือในรหัสหลอก: function f(integer n){ Integer result = 0 Integer i …

30
ตัวตรวจสอบ Isogram
ถาม: ให้คำตรวจสอบว่าเป็น isogram หรือไม่ อะไร : isogram เป็นคำที่ประกอบด้วยตัวอักษรเท่านั้นโดยไม่มีการซ้ำซ้อน สตริงว่างคือ isogram ตัวอย่าง : "Dermatoglyphics" ---> true "ab" ---> true "aba" ---> false "moOse" ---> false "abc1" ---> false "" ---> true อินพุต: คุณอาจยอมรับอินพุตในรูปแบบที่สมเหตุสมผล ข้อมูลที่ป้อนจะมีเฉพาะตัวอักษรและ / หรือตัวเลขเท่านั้นไม่มีช่องว่าง ( [a-zA-Z0-9]) ผลผลิต: true หรือค่าความจริงใด ๆ หากอินพุตเป็น isogram false หรือค่าเท็จใด ๆ นี่คือโค้ดกอล์ฟที่สั้นที่สุดในหน่วยไบต์ในแต่ละภาษาที่ชนะ

1
คุณสามารถเอาชนะ Bill Gates ได้ไหม?
การเรียงลำดับแพนเค้กเป็นคำศัพท์สำหรับปัญหาทางคณิตศาสตร์ของการเรียงลำดับกองซ้อนของแพนเค้กที่ไม่เป็นระเบียบตามขนาดเมื่อไม้พายสามารถเสียบที่จุดใดก็ได้ในกองซ้อนและใช้เพื่อพลิกแพนเค้กทั้งหมดที่อยู่ด้านบน หมายเลขแพนเค้กP (n)คือจำนวนการโยนขั้นต่ำที่จำเป็นสำหรับnแพนเค้ก 1 ในปี 1979 หนุ่มบิลเกตส์และ Christos Papadimitriou เขียนกระดาษพิสูจน์ผูกพันบนของP (n) = (5n + 5) / 3 2 ฉันคิดว่ามันปลอดภัยที่จะสมมติว่า Gates (และ / หรือ Papadimitriou) เขียนโปรแกรมเพื่อทำการคัดแยกแพนเค้กโดยใช้อัลกอริทึมที่พัฒนาขึ้น (อาจช้ากว่า 1979) เนื่องจาก Gates เป็นโปรแกรมเมอร์ที่มีทักษะพวกเขาจึงอาจลองใช้รหัสนี้ได้อย่างดีเท่าที่จะทำได้ แต่ขนาดของซอร์สโค้ดไม่สามารถใช้งานได้แบบสาธารณะ (AFAIK) ท้าทาย: สร้างฟังก์ชั่น / โปรแกรมที่ดำเนินการเรียงแพนเค้กซึ่งจำนวนการพลิกสูงสุดไม่เกินขอบเขตที่ Gates และ Papadimitriou พบ 3คุณสามารถเลือกได้ว่าต้องการให้รายการน้อยไปมากหรือมากไปหาน้อยตราบใดที่มันสอดคล้องกัน คุณอาจจะคิดว่าn <50 ดังนั้นคุณต้อง จำกัด จำนวนการพลิกไปที่ (บางค่าn- ค่าที่เลือกแบบสุ่ม): n P(n) …

3
แผ่โปรแกรม Stack Cats
Stack Catsเป็นภาษาที่สามารถย้อนกลับได้ ธรรมชาติที่พลิกกลับได้ของมันทำให้เกิดวงวนที่ค่อนข้างแปลก (...)ความท้าทายนี้เป็นเรื่องเกี่ยวกับห่วงเงื่อนไข เมื่อลูปเหล่านี้ซ้อนในบางวิธีคุณสามารถแปลงรหัสเพื่อลดความลึกในการซ้อน ต่อไปนี้เป็นกฎ (ตำแหน่งAและBตัวอย่างของตัวอย่าง): เมื่อหนึ่งในวงเริ่มต้นด้วยวงอื่นเราสามารถดึงภายในวงไปด้านหน้า: กลายเป็น((A)B)(A)(B) เมื่อหนึ่งในห่วงจบลงด้วยวงอื่นเราสามารถดึงภายในวงที่สิ้นสุด: กลายเป็น(B(A))(B)(A) ()สามารถลบลูปที่ว่างเปล่าออกจากโปรแกรมทั้งหมด ในฐานะที่เป็นข้อพิสูจน์ (ร่วมกับกฎระเบียบอื่น ๆ ) เทียบเท่ากับ((A))(A) ลูปซ้อนกันเท่านั้นที่จะยังคงอยู่ในรูปแบบ(A(B)C)ที่A, BและCมีไม่ว่างเปล่า ความท้าทาย คุณได้รับโปรแกรม Stack Cats ที่ถูกต้องและงานของคุณคือลดระดับการซ้อนของลูปมากที่สุดเท่าที่จะเป็นไปได้โดยไม่ทิ้งลูปว่างไว้โดยใช้การแปลงด้านบน โปรแกรม Stack Cats ที่ถูกต้อง ... ... ประกอบด้วยอักขระ()/\<>[]{}!"*+-:=ITX^_|เท่านั้น ... มีมิเรอร์สมมาตร (เช่น\(]{}!{}[)/เป็นโปรแกรมที่ถูกต้อง แต่/|/ไม่มี) ... ได้อย่างถูกต้องและตรงกับการซ้อนกัน()และ{}( [], <>และ\/ไม่จำเป็นต้องมีการจับคู่ตามปกติแม้ว่าพวกเขาจะปรากฏในคู่เนื่องจากความต้องการกระจกสมมาตร) คุณสามารถใช้สตริงหรือรายการอักขระเป็นอินพุตได้ แต่เอาต์พุตจะต้องแสดงในรูปแบบเดียวกัน คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นและใช้วิธีการมาตรฐานใด ๆ ของเราในการรับอินพุตและให้เอาต์พุต โปรดทราบว่าช่องโหว่เหล่านี้เป็นสิ่งต้องห้ามโดยค่าเริ่มต้น นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดที่ถูกต้อง - วัดเป็นไบต์ - ชนะ …

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