求幂 (^) 之后是什么数学运算?
What math operation comes after exponentiation (^)?
让我们给表达式命名:
x+3 = x+1+1+1 // lvl 1
x*3 = x+x+x // lvl 2
x^3 = x*x*x // lvl 3
什么是数学术语/真实姓名/主题 for lvls 后 3?
喜欢:
x (lvl 4 operation) 3 = x^x^x
x (lvl 5 operation) 3 = x(lvl 4 operation)x(lvl 4 operation)x
..
提前致谢。
P.S。以上都不是编程codes/languages
Tetration is the next hyperoperator after exponentiation. The operator is noted as ↑↑
— or ^^
in ASCII — following Knuth's notation。
序列中的下一个操作是pentation, then hexation, heptation, octation, etc. Ackermann's three-argument function递归计算这些操作。
╭────────┬────────────────┬─────────────┬───────────────────╮
│ Level │ Name │ Notation │ Ackermann (3-arg) │
╞════════╪════════════════╪═════════════╪═══════════════════╡
│ 1 │ Successor │ a++ (unary) │ φ(a, 1, 0) │
│ 2 │ Addition │ a+b │ φ(a, b, 0) │
│ 3 │ Multiplication │ a×b │ φ(a, b, 1) │
│ 4 │ Exponentiation │ a↑b │ φ(a, b, 2) │
│ 5 │ Pentation │ a↑↑b │ φ(a, b, 3) │
│ 6 │ Hexation │ a↑↑↑b │ φ(a, b, 4) │
│ 7 │ Heptation │ a↑↑↑↑b │ φ(a, b, 5) │
│ 8 │ Octation │ a↑↑↑↑↑b │ φ(a, b, 6) │
╰────────┴────────────────┴─────────────┴───────────────────╯
除求幂外,实际上没有任何通用操作(主要是由于缺乏需求)。一个可能的扩展是 tetration,它缩写了一堆具有相同值的指数。简而言之(使用
Knuth's up-arrow notation
a ^^ 1 = a
a ^^ n = a^(a^^(n-1))
= a ^ a ^ ... ^ a (n items)
向上箭头符号本身可以堆叠,a^^^a
是 a
的堆叠 a^^a
高,a^^^^a
堆叠 a^^^a
高等。(创建的数字大得可笑;阅读 Graham's number 了解您可以创建多大的数字。)
使这个问题成为 Haskell 问题的一种方法是根据自然数的 "paramorphism" 来设置实施阿克曼函数(无论哪个版本)的挑战,这里通过 [=11 表示=],没有其他形式的递归。
paraNat :: t -> ((Integer, t) -> t) -> Integer -> t
paraNat base step n | n > 0 = step (m, paraNat base step m) where m = n - 1
paraNat base step _ = base
众所周知"paramorphism"对应"primitive recursion",阿克曼函数不在"primitive recursive functions"的class中也是众所周知的事实。然而,这个问题有一个解决方案。线索是 paraNat
在其 return 类型 t
中是多态的,而 "primitive recurisve functions" 的 class 固定 t
为自然数。
(我意识到通过提出问题来回答问题有点不正统,但我希望它无论如何都很有趣。如果人们认为它有问题,我会删除这个答案。)
让我们给表达式命名:
x+3 = x+1+1+1 // lvl 1
x*3 = x+x+x // lvl 2
x^3 = x*x*x // lvl 3
什么是数学术语/真实姓名/主题 for lvls 后 3?
喜欢:
x (lvl 4 operation) 3 = x^x^x
x (lvl 5 operation) 3 = x(lvl 4 operation)x(lvl 4 operation)x
..
提前致谢。
P.S。以上都不是编程codes/languages
Tetration is the next hyperoperator after exponentiation. The operator is noted as ↑↑
— or ^^
in ASCII — following Knuth's notation。
序列中的下一个操作是pentation, then hexation, heptation, octation, etc. Ackermann's three-argument function递归计算这些操作。
╭────────┬────────────────┬─────────────┬───────────────────╮
│ Level │ Name │ Notation │ Ackermann (3-arg) │
╞════════╪════════════════╪═════════════╪═══════════════════╡
│ 1 │ Successor │ a++ (unary) │ φ(a, 1, 0) │
│ 2 │ Addition │ a+b │ φ(a, b, 0) │
│ 3 │ Multiplication │ a×b │ φ(a, b, 1) │
│ 4 │ Exponentiation │ a↑b │ φ(a, b, 2) │
│ 5 │ Pentation │ a↑↑b │ φ(a, b, 3) │
│ 6 │ Hexation │ a↑↑↑b │ φ(a, b, 4) │
│ 7 │ Heptation │ a↑↑↑↑b │ φ(a, b, 5) │
│ 8 │ Octation │ a↑↑↑↑↑b │ φ(a, b, 6) │
╰────────┴────────────────┴─────────────┴───────────────────╯
除求幂外,实际上没有任何通用操作(主要是由于缺乏需求)。一个可能的扩展是 tetration,它缩写了一堆具有相同值的指数。简而言之(使用 Knuth's up-arrow notation
a ^^ 1 = a
a ^^ n = a^(a^^(n-1))
= a ^ a ^ ... ^ a (n items)
向上箭头符号本身可以堆叠,a^^^a
是 a
的堆叠 a^^a
高,a^^^^a
堆叠 a^^^a
高等。(创建的数字大得可笑;阅读 Graham's number 了解您可以创建多大的数字。)
使这个问题成为 Haskell 问题的一种方法是根据自然数的 "paramorphism" 来设置实施阿克曼函数(无论哪个版本)的挑战,这里通过 [=11 表示=],没有其他形式的递归。
paraNat :: t -> ((Integer, t) -> t) -> Integer -> t
paraNat base step n | n > 0 = step (m, paraNat base step m) where m = n - 1
paraNat base step _ = base
众所周知"paramorphism"对应"primitive recursion",阿克曼函数不在"primitive recursive functions"的class中也是众所周知的事实。然而,这个问题有一个解决方案。线索是 paraNat
在其 return 类型 t
中是多态的,而 "primitive recurisve functions" 的 class 固定 t
为自然数。
(我意识到通过提出问题来回答问题有点不正统,但我希望它无论如何都很有趣。如果人们认为它有问题,我会删除这个答案。)