
Displaying the Calculation Process of the Ackermann Function (Part ↑) / Solving the DDR Footwork Optimization Problem
Overview
At Technical Book Fest 7, I distributed a book titled "Displaying the Calculation Process of the Ackermann Function (Part ↑) / Solving the DDR Footwork Optimization Problem".
Using the Ackermann function as a subject, it covers how to handle huge data, how to deal with recursive functions, and how to approach Rust projects. As a result, you can obtain a massive calculation process, which you can gaze at and be mesmerized.
Additionally, using the game DDR as a subject, it solves a combinatorial optimization problem to derive the optimal footwork using DP.
The book is structured in two parts, with the first part written by me, esplo, and the second part by maton.
Cover
The cover is an original illustration by Doumu Kobayashi sensei (Twitter:@doom_k, Pixiv Fanbox), known for works like "Sushi Void Edition" and "Let's Have a Meal". Incidentally, this book was inspired by "Sushi Void Edition".
Wonderful cover
Details
The first part of this book uses the calculation process of the Ackermann function as a subject to look at how to approach Rust projects, how to deal with recursive functions, and how to handle huge data.
The following second part tackles a combinatorial optimization problem (energy minimization problem) that assigns excellent footwork to sequences, using the game Dance Dance Revolution as a subject.
Both parts deal with problems that, when thought about simply, would either not fit in memory or would not finish calculating, and how to efficiently handle them.
Recommended for:
People who like huge data, those who want to get started with Rust, those who like huge numbers, competitive programmers, and DDR players.
Table of Contents
Part I: Displaying the Calculation Process of the Ackermann Function (Part ↑)
- Chapter 1: Introduction
- 1.1 What You Can Gain from This Article
- 1.2 Prerequisites
- 1.3 Desirable Properties
- 1.4 Reference for Full Code
- Chapter 2: What is the Ackermann Function?
- 2.1 Overview of the Ackermann Function
- 2.2 The World of A(4,2)
- 2.3 What Is It After All
- 2.4 Learn More
- Chapter 3: Calculating the Ackermann Function
- 3.1 Translating the Ackermann Function into a Program
- 3.2 Let's Calculate the World of A(4,n)
- 3.3 If You Want to Calculate A(4,2)
- 3.4 Summary So Far
- Chapter 4: Displaying the Calculation Process
- 4.1 The Output of This Article
- 4.2 Naive Implementation
- 4.3 Speeding Up with Memoization
- 4.4 Implementation with Improved Data Structure
- 4.5 Summary
- Chapter 5: Preview of Next Time
- 5.1 Predicting Required Resources
- 5.2 Bottleneck Analysis
- 5.3 Ideas for Displaying Larger Calculation Processes
- Chapter 6: Afterword
Part II: Solving the DDR Footwork Cost Minimization Problem
- Chapter 7: Introduction
- Chapter 8: Preparation: Terms Used in This Article
- Chapter 9: Formulation
- 9.1 Introduction of Cost
- 9.2 Definition of Cost Function
- 9.3 Formulation as a Search Problem
- Chapter 10: Solution Method
- 10.1 Construction of Calculation Array
- 10.2 Search for Minimum Cost Elements
- 10.3 Extraction of Minimum Cost Footwork
- Chapter 11: Discussion
- 11.1 Concepts We've Ignored
- 11.2 Challenges in Formulation
- Chapter 12: Conclusion
Purchase
It's available on Booth.
Please see here for details.
I've included previews of a few pages for your reference.