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

สำหรับความท้าทายที่เกี่ยวข้องกับโครงสร้างข้อมูลแบบกองซ้อน (ดูวิกิแท็กสำหรับรายละเอียด) รวมถึงล่ามภาษาการเขียนโปรแกรมแบบกองซ้อนและความท้าทายเฉพาะเกี่ยวกับสแต็คการโทร

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) …

13
ผลิตภัณฑ์ Fibonacci
คุณสามารถแยกตัวเลขที่มากกว่า 0 เป็นผลรวมที่ไม่ซ้ำกันของตัวเลขฟีโบนักชีบวก ในคำถามนี้เราทำได้โดยการลบจำนวนฟีโบนัชชีบวกที่ใหญ่ที่สุดซ้ำไปซ้ำมา เช่น: 1 = 1 2 = 2 3 = 3 4 = 3 + 1 12 = 8 + 3 + 1 13 = 13 100 = 89 + 8 + 3 ตอนนี้ฉันเรียกผลิตภัณฑ์ Fibonacciว่าเป็นรายการเดียวกันกับข้างบน แต่ด้วยการเพิ่มถูกแทนที่ด้วยการคูณ ตัวอย่างเช่นf(100) = 89 * 8 * 3 = 2136. เขียนโปรแกรมหรือฟังก์ชั่นที่ให้จำนวนเต็มบวกnส่งคืนผลคูณของฟีโบนักชีของตัวเลขนั้น Testcases: …
13 code-golf  math  sequence  fibonacci  code-golf  word  code-golf  cipher  code-golf  string  math  subsequence  code-golf  regular-expression  code-golf  brainfuck  assembly  machine-code  x86-family  code-golf  math  factorial  code-golf  math  geometry  code-golf  math  arithmetic  array-manipulation  math  number  optimization  stack  metagolf  code-golf  tips  assembly  code-golf  tips  lisp  code-golf  number-theory  path-finding  code-golf  number  sequence  generation  code-golf  math  geometry  code-golf  grid  permutations  code-golf  code-golf  graphical-output  geometry  fractal  knot-theory  code-golf  math  arithmetic  code-golf  interpreter  balanced-string  stack  brain-flak  code-golf  math  set-theory  code-golf  math  array-manipulation  code-golf  code-golf  string  natural-language  code-golf  code-golf  math  linear-algebra  matrix  code-golf  string  encode 

8
การแสดงที่สั้นที่สุดของจำนวนอันเดอร์โหลด
ข้อความรส สต็อก esolang Underloadมีความสัมพันธ์ที่น่าสนใจกับการเขียนโปรแกรมการทำงาน หนึ่งในนั้นคือการรักษาประเภทข้อมูลที่เป็นตัวเลข - เช่นแคลคูลัสแลมบ์ดาคุณเป็นตัวแทนของจำนวนธรรมชาติ N โดยฟังก์ชั่นที่ดำเนินการแอ็คชั่น N ครั้ง เพื่อให้ง่ายขึ้นเราจะพิจารณาเฉพาะชุดย่อยของคำสั่ง Underload เท่านั้น: : - คำสั่งนี้ทำซ้ำรายการบนสุดในสแต็ก * - คำสั่งนี้ต่อสองไอเท็มบนสุดของสแต็กเข้ากับไอเท็มเดี่ยว เรากำหนดUnderload numeral Nเป็นสตริง:และ*เมื่อดำเนินการใช้รายการบนสุดในสแต็กและสร้างสำเนา N ของรายการนั้นต่อกัน ตัวอย่างบางส่วน: ไม่มีตัวเลข Underload 0, -1, 1/2, π สตริงว่างคือ Underload ตัวเลข 1 เนื่องจากปล่อยให้สแต็กไม่ถูกแตะต้อง :*เป็น underload เลข 2 เพราะมันซ้ำรายการด้านบนแล้วเชื่อมทั้งสองเล่มด้วยกันเป็นรายการเดียว: (A):*= =(A)(A)*(AA) ::**เป็น underload เลขที่ (A)::**3: (A)(A):**= (A)(AA)*= …

2
X ที่มากกว่า 3 มีความแตกต่างอย่างน้อย 2 อย่างระหว่าง X และ Y
ฉันกำลังพยายามตีกอล์ฟ C ++ บางตัว เป็นไปได้ไหมที่ทำให้สภาพนี้สั้นลง? X > 3 & X - Y > 1 (นอกเหนือจากการลบช่องว่างออกแน่นอน) ดังนั้นXอย่างน้อยแต่4X >= Y + 2 XและYเป็นจำนวนเต็มในช่วง [0,5] ฉันพยายามค้นหาสูตร bitwise แต่ล้มเหลว
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

3
เขียนล่าม Clem
Clem เป็นภาษาการเขียนโปรแกรมแบบกองซ้อนที่มีฟังก์ชั่นชั้นหนึ่ง จุดประสงค์ของคุณคือการเขียนล่ามสำหรับภาษา Clem มันถูกต้องควรจะดำเนินการตัวอย่างทั้งหมดรวมอยู่ในการดำเนินการอ้างอิงที่มีอยู่ที่นี่ ตามปกติจะใช้ช่องโหว่มาตรฐาน รายการที่น้อยที่สุดด้วยการนับไบต์ชนะ ภาษาเคล็ม Clem เป็นภาษาโปรแกรมสแต็กที่มีฟังก์ชั่นชั้นหนึ่ง วิธีที่ดีที่สุดในการเรียนรู้ Clem คือการใช้clemล่ามโดยไม่มีข้อโต้แย้ง มันจะเริ่มต้นในโหมดโต้ตอบช่วยให้คุณสามารถเล่นกับคำสั่งที่มีอยู่ ในการรันโปรแกรมตัวอย่างให้พิมพ์clem example.clmโดยที่ example คือชื่อของโปรแกรม บทแนะนำสั้น ๆ นี้ควรจะเพียงพอสำหรับคุณในการเริ่มต้น มีฟังก์ชั่นหลักสองประเภท ฟังก์ชั่นอะตอมมิกและฟังก์ชั่นสารประกอบ ฟังก์ชั่นผสมคือรายการที่ประกอบด้วยฟังก์ชั่นอื่น ๆ และฟังก์ชั่นอะตอมมิก โปรดทราบว่าฟังก์ชั่นผสมไม่สามารถมีตัวเอง ฟังก์ชั่นของอะตอม ชนิดแรกของฟังก์ชั่นของอะตอมเป็นคงที่ คงเป็นเพียงค่าจำนวนเต็ม ตัวอย่างเช่น -10 เมื่อล่ามพบค่าคงที่มันจะดันไปที่สแต็ก เรียกใช้clemตอนนี้ พิมพ์-10ที่พรอมต์ คุณควรเห็น > -10 001: (-10) > ค่า001อธิบายถึงตำแหน่งของฟังก์ชันในสแต็กและ(-10) เป็นค่าคงที่ที่คุณเพิ่งป้อน ตอนนี้ป้อน+11ที่พรอมต์ คุณควรเห็น > +11 002: (-10) 001: …

9
ทำล่ามให้ใช่!
ใช่เป็นสแต็คที่ใช้ภาษาที่มีคำแนะนำการใช้พื้นที่ที่แยกออกจากกันไม่กี่: yes: Push 1 to the stack no: Push 0 to the stack what: Push the input to the stack (input is taken at the start of program execution and is the same for the whole execution) sure: Increment the last item in the stack nah: Decrement the last item …

4
เขียน Shift Interpreter
แก้ไข:ในขณะที่บางคนสงสัยว่ามีข้อผิดพลาดในล่ามอย่างเป็นทางการ: ลำดับขององค์ประกอบใน.ถูกกลับรายการ ฉันมีล่ามสองรุ่นและใช้ผิดที่นี่ ตัวอย่างถูกเขียนขึ้นสำหรับรุ่นที่ไม่ถูกต้อง ฉันแก้ไขล่ามในที่เก็บและตัวอย่างด้านล่าง คำอธิบายของ>มันค่อนข้างคลุมเครือดังนั้นฉันจึงแก้ไขได้ นอกจากนี้ขอโทษสำหรับการใช้เวลานานมากฉันถูกจับในบางสิ่งในชีวิตจริง แก้ไข 2:ล่ามของฉันมีข้อบกพร่องในการใช้งาน.ซึ่งสะท้อนให้เห็นในตัวอย่าง (พวกเขาอาศัยพฤติกรรมที่ไม่ได้กำหนด) ปัญหาได้รับการแก้ไขแล้ว บทนำ Shiftเป็นภาษาโปรแกรมฟังก์ชั่นลึกลับที่ฉันสร้างเมื่อสองสามปีก่อน แต่เผยแพร่ในวันนี้ มันเป็นแบบกองซ้อน แต่ก็มีการแกงอัตโนมัติเช่น Haskell สเปค มีสองประเภทข้อมูลใน Shift: ฟังก์ชั่นซึ่งมีarityบวกโดยพลการ(จำนวนอินพุต) และส่งคืนรายการเอาต์พุต ตัวอย่างเช่นฟังก์ชั่นที่ซ้ำกันของอินพุตเพียงอย่างเดียวมี arity 1 และฟังก์ชั่นที่แลกเปลี่ยนสองอินพุตมี arity 2 ช่องว่างซึ่งเหมือนกันหมดและไม่มีวัตถุประสงค์อื่นนอกเหนือจากการไม่ทำหน้าที่ โปรแกรม Shift ประกอบด้วยคำสั่งเป็นศูนย์หรือมากกว่าซึ่งแต่ละคำสั่งเป็นอักขระ ASCII เดียว มีทั้งหมด 8 คำสั่ง: !( ใช้ ) ปรากฏฟังก์ชั่นfและคุ้มค่าxจากสแต็คและนำไปใช้ในการf xหากfมี arity 1 รายการf(x)จะถูกเพิ่มที่ด้านหน้าของสแต็ก ถ้ามันมี arity ฟังก์ชัน -ary n …

17
หอคอยแห่งแก้ฮานอย
สำหรับการอ้างอิงถึงหอคอยแห่งฮานอยไม่ว่าจะเป็น Google หรือดูที่หน้าWikipedia รหัสของคุณควรจะสามารถทำ 2 สิ่งและมีดังต่อไปนี้: ยอมรับอินพุตของผู้ใช้ที่ระบุจำนวนแผ่นที่จุดเริ่มต้นของหอคอยฮานอย สร้างผลลัพธ์ในแบบที่คุณเลือก (ตราบใดที่มันมีเหตุผลอย่างใด) เพื่อแสดงวิธีแก้ปริศนาทาวเวอร์ ตัวอย่างของเอาต์พุตโลจิคัลจะเป็นดังต่อไปนี้ (ใช้การเริ่มดิสก์ 4 ตัว): L1L2C1L1R-2R-1L1L2C1C-1R-2C1L1L2C1 Lหมายถึงหมุดซ้ายCแสดงถึงหมุดกลางและRแสดงถึงหมุดขวาและตัวเลขเป็นวิธีการย้ายดิสก์บนหมุดนั้นและไปในทิศทางใด ตัวเลขบวกหมายถึงจำนวนของหมุดที่เคลื่อนไปทางหมุดขวาสุด (เพราะดิสก์เริ่มที่หมุดซ้ายสุด) กฎไปยังหอคอยแห่งฮานอยง่าย: สามารถย้ายดิสก์ได้ครั้งละหนึ่งดิสก์เท่านั้น การย้ายแต่ละครั้งประกอบด้วยการเอาดิสก์บนจากหมุดหนึ่งและเลื่อนไปยังหมุดอื่นบนดิสก์อื่นที่อาจมีอยู่แล้วบนหมุดนั้น ห้ามวางดิสก์ไว้บนดิสก์ที่เล็กกว่า ดิสก์เริ่มต้นที่หมุดซ้ายสุดที่ใหญ่ที่สุดที่ด้านล่างเล็กที่สุดที่ด้านบนตามธรรมชาติ
10 code-golf  stack 

7
Code-Golf: ลำดับ Farey (I)
ท้าทาย ในภารกิจนี้คุณจะได้รับจำนวนเต็ม N (น้อยกว่า 10 ^ 5) ออกลำดับ Fareyของคำสั่ง N อินพุต N ถูกกำหนดในบรรทัดเดียวอินพุตถูกยกเลิกโดย EOF อินพุต 4 3 1 2 เอาท์พุต F4 = {0/1, 1/4, 1/3, 1/2, 2/3, 3/4, 1/1} F3 = {0/1, 1/3, 1/2, 2/3, 1/1} F1 = {0/1, 1/1} F2 = {0/1, 1/2, 1/1} ข้อ จำกัด จำนวนอินพุตไม่เกิน 10 ^ …
10 code-golf  math  code-golf  math  code-golf  number  number-theory  code-golf  math  arithmetic  repeated-transformation  code-golf  geometry  popularity-contest  code-golf  code-golf  tips  haskell  math  fastest-algorithm  code-golf  combinatorics  code-golf  math  polynomials  rational-numbers  code-golf  code-golf  popularity-contest  javascript  code-golf  kolmogorov-complexity  code-golf  code-golf  math  combinatorics  permutations  code-challenge  restricted-source  random  array-manipulation  code-challenge  generation  code-golf  code-golf  ascii-art  arithmetic  division  code-challenge  number  code-golf  math  number  binary  code-golf  ascii-art  code-golf  interpreter  stack  code-golf  internet  networking  code-golf  math  code-golf  ascii-art  code-golf  math  sequence  code-golf  hello-world  restricted-source  code-golf  ascii-art  code-golf  geometry  code-golf  kolmogorov-complexity  pi  code-golf  math  combinatorics  permutations  code-golf  math  code-challenge  ascii-art  code-golf  string  code-golf  quine  code-golf  math  floating-point  golfscript  code-golf  string  code-golf  sliding-puzzle  code-challenge  arithmetic  code-golf  math  code-golf  geometry  optimized-output 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.