Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/metalim/ackermann
Ackermann function
https://github.com/metalim/ackermann
ackermann ackermann-function go golang
Last synced: 6 days ago
JSON representation
Ackermann function
- Host: GitHub
- URL: https://github.com/metalim/ackermann
- Owner: metalim
- Created: 2023-06-05T11:23:52.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-06-05T12:07:31.000Z (over 1 year ago)
- Last Synced: 2024-06-20T21:05:54.507Z (6 months ago)
- Topics: ackermann, ackermann-function, go, golang
- Language: Go
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Ackermann function
Ackermann function A(m,n) is defined as follows:
* A(0,n) = n + 1
* A(m,0) = A(m-1, 1)
* A(m,n) = A(m-1, A(m, n-1))By definition the function is computable and finite, but the only results computable in this universe are:
* A(0,n) ... A(3,n)
* A(4,0), A(4,1)
* A(5,0)That's it. The rest is still computable, but will take more time, than universe exists. For instance result of A(4,2) takes 65536 bits (binary digits), and the only math operation in Ackermann function is n+1. So the best case estimate you can imagine is a counter with 65536 bits, coutning +1 per operation, until all but one bit are 1: 0b111111111...11111101 with 65536 digits
As for the rest of results — A(4,3+), A(5,1+), A(6+,n) — they cannot even fit in this universe in their numerical form. For instance value of A(4,3) takes 265536 bits, which is significantly more than number of atoms in the observable universe (2260). And A(5,1) equals to A(4,65533)