如何表达复数的四分函数

2023-12-11

确实存在所谓的超操作序列。它的工作原理就像你构建乘法一样a*b=a+a+a+a...+a并添加了许多a重复b次。然后是求幂a^b = a*a*a*a*...*a与许多乘法a重复b次。然后,就出现了四联,表示为指数塔,就像a^^b == a^a^a^...^a, 重复b times.

我感兴趣如何编写这个函数,用于浮点数和复数?

我已经在 glsl 中编写了乘法和求幂函数:

// complex multiplication:
vec2 cmul(in vec2 a, in vec2 b) {
    return vec2(a.x*b.x-a.y*b.y, a.x*b.y+a.y*b.x);
}

// complex exponent e^a
vec2 cexp(in vec2 a) {
    float ea = exp(a.x);
    float vl = a.y;
    return ea * vec2( cos(vl), sin(vl) );
}

// complex natural logarithm ln(a)
vec2 cln(in vec2 a) {
    float ql = length(a);
    return vec2( log(ql), atan(a.y, a.x));
}

// complex power function a^b
vec2 cpow(in vec2 a, in vec2 b) {
    return cexp(cmul(cln(a), b));   
}

但后来我被困住了!我们怎样才能写ctet(in vec2 a, in vec2 b)四分函数,不仅适用于浮点数,还适用于整个复平面本身?


好吧,让我们开始吧真实域名 and integer b only:

a^^b = a^a^a^a^a...^a  // a is there b times

这可以这样评估C++:

double tetration(double a,int b)    // a^^b = a^a^a^a... b times
    {
    double c;
    if (b<=0) return 0;
    for (c=a;b>1;b--) c=pow(a,c);
    return c;
    }

因为你已经得到了pow对于复杂的领域,你也可以在那里做同样的事情......为了保持简单,我现在不会碰它......

这里有一些结果:

a\b| 1|   2|            3|    4
-------------------------------
 1 | 1|   1|            1|    1
 2 | 2|   4|           16|65536
 3 | 3|  27|7625597484987|
 4 | 4| 256|             |
 5 | 5|3125|             |

btw.所有这些超级操作阿克曼函数你可以在这里找到我的 C++ 迭代实现:

  • C 如何移植到没有硬件堆栈的架构?

然而,由于极快的增长,即使double很快就会超出范围(因此缺少值)...

现在如何移动b to 真实域名?对代数方法一无所知,但几何方法是可能的。

简单来说就是“剧情”a^^b作为变量的函数b和常数a对于整数值b围绕你想要的真实b然后插值真实域名 b using 整数域 b作为控制点。它类似于获得函数的非整数阶导数。

So (X,Y)将是你的(a^^b,b)。现在使用任何插值来构造实域函数。

线性插值将如下所示:

y0 = a^^(int(b)) 
y1 = a^^(int(b)+1)
a^^b = y0 + (b-int(b))*(y1-y0)

然而,需要更高阶的插值,并且插值参数也应该缩放为非线性度量。欲了解更多信息,请参阅:

  • 如何产生多点线性插值?

经过一些阐述立方体(t^3) and log^2事实证明比例足够了(使用我的 128 位浮点的 C++ 示例f128类只需将其重命名为double):

f128 tetration_fi(f128 a,int b)     // a^^b = a^a^a^a... b times
    {
    f128 c;
    if (b==-1) return 0.0;          // first singularity
    if (b== 0) return 1.0;          // second singularity
    if (b< -1) return 0.0;          // uncomputed
    for (c=a;b>1;b--) c=pow(a,c);
    return c;
    }
//---------------------------------------------------------------------------
f128 tetration_ff(f128 a,f128 b)    // a^^b = a^a^a^a... b times
    {
    int bi;
    f128 z0,z1,z2,z3,a0,a1,a2,a3,t,tt,ttt,o=2.0;
    if (b==-1) return 0.0;          // first singularity
    if (b== 0) return 1.0;          // second singularity
    if (b< -1) return 0.0;          // uncomputed
    bi=b.ToInt(); b-=bi;
    if (b.iszero()) return tetration_fi(a,bi);

    z0=tetration_fi(a,bi-1);        // known points around a^^b
    z1=pow(a,z0);
    z2=pow(a,z1);
    z3=pow(a,z2);

    z0=log2(log2(z0+o)+o);          // log^2 scale
    z1=log2(log2(z1+o)+o);
    z2=log2(log2(z2+o)+o);
    z3=log2(log2(z2+o)+o);

    t =0.5*(z2-z0);                 // cubic interpolation coeff.
    tt=0.5*(z3-z1);
    a0=z1;
    a1=t;
    a2=(3.0*(z2-z1))-(2.0*t)-tt;
    a3=t+tt+(2.0*(z1-z2));

    t=b-bi;                         // cubic interpolation
    tt=t*t;
    ttt=tt*t;
    z0=a0+(a1*t)+(a2*t*t)+(a3*t*t*t);

    z0=exp2(exp2(z0)-o)-o;          // linear scale
    return z0;
    }
//---------------------------------------------------------------------------

final real preview

这是我将其与以下内容进行比较:

  • 四联

我选择相同的图表基础a from a^^b正如您所看到的,它是一个非常好的匹配,只有低于 1.0 的范围略有偏差。

让我们研究复杂域分形

现在当你想去复杂域你不能像在 Real 中那样做,因为结果对于插值来说太混乱了。所以我们只能坚持整数b或者使用Kneser算法来计算。

幸运的是,我们有更多的方法来显示分形......例如我们可以评估整数b来自a^^b其中只有a很复杂,并使用结果对输出进行着色。这里GLSL示例(基于我的曼德尔布罗特着色器和你复杂的数学):

分段:

// Fragment
#version 450 core
uniform dvec2 p0=dvec2(0.0,0.0);        // mouse position <-1,+1>
uniform double zoom=1.000;          // zoom [-]
in smooth vec2 p32;
out vec4 col;
//---------------------------------------------------------------------------
// All components are in the range [0…1], including hue.
vec3 rgb2hsv(vec3 c)
    {
    vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);
    vec4 p = mix(vec4(c.bg, K.wz), vec4(c.gb, K.xy), step(c.b, c.g));
    vec4 q = mix(vec4(p.xyw, c.r), vec4(c.r, p.yzx), step(p.x, c.r));
    float d = q.x - min(q.w, q.y);
    float e = 1.0e-10;
    return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), d / (q.x + e), q.x);
    }
//---------------------------------------------------------------------------
// All components are in the range [0…1], including hue.
vec3 hsv2rgb(vec3 c)
    {
    vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);
    vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);
    return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);
    }
//---------------------------------------------------------------------------
vec3 spectral_color(float l)        // RGB <0,1> <- lambda l <400,700> [nm]
    {
    float t;  vec3 c=vec3(0.0,0.0,0.0);
         if ((l>=400.0)&&(l<410.0)) { t=(l-400.0)/(410.0-400.0); c.r=    +(0.33*t)-(0.20*t*t); }
    else if ((l>=410.0)&&(l<475.0)) { t=(l-410.0)/(475.0-410.0); c.r=0.14         -(0.13*t*t); }
    else if ((l>=545.0)&&(l<595.0)) { t=(l-545.0)/(595.0-545.0); c.r=    +(1.98*t)-(     t*t); }
    else if ((l>=595.0)&&(l<650.0)) { t=(l-595.0)/(650.0-595.0); c.r=0.98+(0.06*t)-(0.40*t*t); }
    else if ((l>=650.0)&&(l<700.0)) { t=(l-650.0)/(700.0-650.0); c.r=0.65-(0.84*t)+(0.20*t*t); }
         if ((l>=415.0)&&(l<475.0)) { t=(l-415.0)/(475.0-415.0); c.g=             +(0.80*t*t); }
    else if ((l>=475.0)&&(l<590.0)) { t=(l-475.0)/(590.0-475.0); c.g=0.8 +(0.76*t)-(0.80*t*t); }
    else if ((l>=585.0)&&(l<639.0)) { t=(l-585.0)/(639.0-585.0); c.g=0.84-(0.84*t)           ; }
         if ((l>=400.0)&&(l<475.0)) { t=(l-400.0)/(475.0-400.0); c.b=    +(2.20*t)-(1.50*t*t); }
    else if ((l>=475.0)&&(l<560.0)) { t=(l-475.0)/(560.0-475.0); c.b=0.7 -(     t)+(0.30*t*t); }
    return c;
    }
//---------------------------------------------------------------------------
// complex domain math
vec3 color_wheel(vec2 a)    // complex -> polar -> HSV -> RGB
    {
    float an=(atan(-a.y,-a.x)*0.15915494309189533576888376337251)+0.5;
    float  r=length(a); r-=floor(r); r*=0.75; r+=0.25;
    return hsv2rgb(vec3(an,1.0,r));
    }
vec3 color_spectral(vec2 a) // complex -> wavelength -> RGB
    {
    float  r=length(a); r-=floor(r);
    return spectral_color(400.0+(300.0*r));
    }
vec2 cadd(vec2 a,vec2 b)    // a+b
    {
    return a+b;
    }
vec2 csub(vec2 a,vec2 b)    // a-b
    {
    return a-b;
    }
vec2 cmul(vec2 a,vec2 b)    // a*b
    {
    return vec2((a.x*b.x)-(a.y*b.y),(a.x*b.y)+(a.y*b.x));
    }
vec2 cdiv(vec2 a,vec2 b)    // a/b
    {
    float an=atan(-a.y,-a.x)-atan(-b.y,-b.x);
    float  r=length(a)/length(b);
    return r*vec2(cos(an),sin(an));
    }
vec2 csqr(vec2 a)           // a^2
    {
    return cmul(a,a);
    }
vec2 cexp(vec2 a)           // e^a
    {
//  e^(x+y*i)= e^x * e^(y*i) = e^x * ( cos(y) + i*sin(y) )
    return exp(a.x)*vec2(cos(a.y),sin(a.y));
    }
vec2 cln(vec2 a)            // ln(a)
    {
    return vec2(log(length(a)),atan(a.y,a.x));
    }
vec2 cpow(vec2 a,vec2 b)    // a^b
    {
    return cexp(cmul(cln(a),b));
    }
vec2 ctet(vec2 a,int b)     // a^^b
    {
    vec2 c=vec2(1.0,0.0);
    for (;b>0;b--) c=cpow(a,c);
    return c;
    }
//---------------------------------------------------------------------------
void main()
    {
    // poistion (double)
    dvec2 p=dvec2(p32);
    p=(p/zoom)-p0;          // x,y (-1.0, 1.0)
    // position (float)
    vec2 pp=vec2(p);

    // [chose function]

    // complex domain test function 1 (color wheel)
//  vec2 a=cdiv(cmul(csub(cmul(pp,pp),vec2(1.0,0.0)),csqr(csub(pp,vec2(2.0,1.0)))),cadd(csqr(pp),vec2(2.0,2.0)));
    // complex domain test function 2 (color wheel)
//  vec2 a=pp; a=cln(a);
    // exponentiation escape fractal 1 (color wheel)
//  vec2 a=cpow(pp,vec2(100,0));
    // exponentiation escape fractal 2 (color wheel)
//  vec2 a=vec2(1.0,1.0); for (int i=0;i<100;i++) a=cpow(a,pp);
    // exponentiation escape fractal 3 (color wheel)
//  vec2 a=vec2(0.0,0.0),b=vec2(1.0,0.0); float r=0.5,rr=1.0,wt=0.1; for (int i=0;i<20;i++){ a+=rr*cexp(vec2(-b.y,b.x)*wt); b=cmul(b,pp); rr*=r; } a*=(1.0-r);
    // tetration escape fractal (grayscale)
//  vec2 a=ctet(pp,100);
    // pentation escape fractal (grayscale)
    vec2 a=pp; for (int i=0;i<20;i++) a=ctet(a,20); a*=100.0;
                                                   
    // [chose coloring method]

    // grayscale based on escape
    float r=0.2*length(a); r-=floor(r); r=0.25+0.75*r; col=vec4(r,r,r,1.0);
    // RGB based on result
//  col=vec4(a,a.x+a.y,1.0);
    // result -> wavelength+intensity
//  col=vec4(color_wheel(a),1.0);
    // result -> spectral color
//  col=vec4(color_spectral(a),1.0);
    }

和四步预览:

complex preview

这是我对比的:

  • 电力塔(四重)分形

它符合我的结果只是反映在两个x,y

所以我所做的是计算a^^100 where a是屏幕上片段的复杂域位置<-1,+1>和一些panning and zooming并渲染根据结果构造的颜色......

我还在那里留下了一个测试函数(不是分形),我用来测试着色方法和复杂的数学here第一个来自 Wiki,第二个是着色器结果(色轮):

test function Wiki test function mine

您可以像曼德尔布罗那样进行逃逸测试或其他任何算法来显示分形。

这里的着色选项是 tetration 的屏幕截图(我喜欢灰度)zoom=500.0 pos=-0.188418+0.234466i

enter image description here enter image description here enter image description here enter image description here

最后是五旬节:

enter image description here enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何表达复数的四分函数 的相关文章

  • 用于计算有向图上非循环路径数量的快速算法

    简而言之 我需要一个fast计算简单有向图中有多少条非循环路径的算法 By simple我的意思是没有自环或多重边的图 Apath可以从任何节点开始 并且必须在没有传出边的节点上结束 一条路径是acyclic如果没有边出现两次 我的图 经验
  • 通过排列四个给定数字找到最大可能时间 HH:MM

    我最近为了工作晋升而参加了编码测试 这是我真正遇到的任务之一 我想知道什么是最好的方法来做到这一点 我使用了大量的 if 和 if else 这不是最干净的解决方案 但完成了工作 我被问到的问题是 将 4 个数字格式化为 24 小时时间 0
  • 2D形状识别与解析算法

    我正在寻找一种算法 用于从给定的一组 x y 点检测简单形状 如矩形 三角形 正方形和圆形 我还在寻找一种方法 一旦检测到 将路径转换为更干净的形状 我已经查遍了互联网 但没有找到任何 简单 的方法 几乎所有这些对于我的简单实现来说都是高级
  • 融合元组以查找等价类

    假设我们有一个包含 k 个元素的有限域 D d1 dk 我们认为 S 是 D n 的子集 即一组 形式的元组 其中 ai 在 D 中 我们希望使用 S 2 D n 的子集 即一组 形式的元组 其中 Ai 是 D 的子集 来 紧凑地 表示它
  • 如何提高洪水填充例程的性能?

    我正在我的应用程序中实现四路洪水填充 伪代码如下 Flood fill node target color replacement color 1 If the color of node is not equal to target co
  • 机器人探索算法

    我正在尝试为机器人设计一种算法 试图找到位于未知位置的旗帜 该旗帜位于一个包含障碍物的世界中 机器人的任务是夺取旗帜并将其带到他的基地 代表他的起始位置 机器人在每一步只能看到有限的邻域 他事先不知道世界是什么样子 但他有无限的内存来存储已
  • 关于逻辑/算法的想法以及如何防止线程写入 Sql Server 中的竞争

    我有以下逻辑 public void InQueueTable DataTable Table int incomingRows Table Rows Count if incomingRows gt RowsThreshold async
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 分组符号最大长度平衡子序列

    将 B 视为分组符号 和 的序列 如果 B 的长度为 0 或 B 具有以下形式之一 则称 B 为平衡序列 X Y 或 X Y 或 X Y 其中 X 和 Y 本身是平衡的 平衡示例 现在的问题是找到一种有效的算法来找到给定输入的最大长度平衡子
  • 计算移动的球与移动的线/多边形碰撞的时间(2D)

    我有一个多边形 里面有一个移动的球 如果球撞到边界 它应该反弹回来 My current solution I split the polygon in lines and calculate when the ball hits the
  • 为什么Python中pop()的大O与pop(0)不同[重复]

    这个问题在这里已经有答案了 他们不应该都是O 1 因为从 Python 列表中的任何位置弹出一个元素涉及销毁该列表并在新的内存位置创建一个元素 蟒蛇的list实现使用动态调整大小的 Carray在引擎盖下 删除元素usually要求您移动后
  • 二维随机微分方程 (SDE)

    我第一次研究随机微分方程 我正在寻求模拟和求解二维随机微分方程 模型如下 dp F t p dt G t p dW t where p 是一个 2 1 向量 p theta t phi t F是列向量 F sin theta Psi cos
  • 为什么我们需要检测链表中的循环

    我看到很多关于如何检测链表中的循环的问答 但我想了解的是我们为什么要这样做 换句话说 检测链表中的循环的实际用例是什么 在现实生活中 您可能永远不需要检测链表中的循环 但是执行此操作的算法很重要 我在现实生活中多次使用它们 例如 我经常会递
  • 比较两棵树的伪代码

    这是我遇到过几次的问题 并且不确信我使用了最有效的逻辑 例如 假设我有两棵树 一棵是文件夹结构 另一棵是该文件夹结构的内存 模型 我希望比较两棵树 并生成一棵树中存在的节点列表 而不是另一棵树中存在的节点列表 反之亦然 是否有公认的算法来处
  • .NET 的符号数学

    我正在寻找 NET 框架的符号数学库 我看过Math net 但它还不是可用的 您知道是否还有其他图书馆存在吗 这可能有点过分了 但你可以和数学 http www wolfram com products mathematica index
  • 计算向量的导数

    我有以下函数 维维亚尼曲线 Phi t cos t 2 cos t sin t sin t 只需检查它是否有效 s linspace 0 T 1000 plot3 cos s 2 cos s sin s sin s 如何推导函数Phi 可能
  • 算法:找到圆中的峰值

    Given n排列成圆圈的整数显示了一种可以找到一个峰值的有效算法 峰值是不小于它旁边的两个数字的数字 一种方法是遍历所有整数并检查每个整数以查看它是否是峰值 这产生O n 时间 似乎应该有某种方法来分而治之 以提高效率 EDIT 好吧 基
  • 为什么使用 no-op 来填补 paxos 事件之间的空白是合法的?

    我正在学习Paxos算法 http research microsoft com en us um people lamport pubs paxos simple pdf http research microsoft com en us
  • 计算总和等于 k ​​的子集数量

    给定一个数组 我们需要找出总和恰好等于给定整数 k 的子集的数量 请针对这个问题提出一个最佳算法 这里不需要实际的子集 只需计数即可 该数组由整数组成 可以是负数也可以是非负数 例子 数组 gt 1 4 1 10 5 绝对值总和 gt 9
  • 获取一条线与地平线的角度

    我想知道如何获得线 A B 与水平轴 X 的角度 SO 中的其他问题仅在两条线之间进行此操作 我知道我总是可以绘制第二条线 A C 并计算 但我想知道是否有更快的方法 编辑 我非常确定我没有进行过早的优化 您可以使用atan为了那个原因 a

随机推荐

  • alignItems =“flex-end”不适用于 onContentSizeChange

    无论文本区域如何扩展 我都试图将角图标固定在屏幕底部 我尝试过position absolute and bottom 0但它隐藏在我的背后textArea 这是现在的样子 这就是我要的 我只需要修复发送并将图像图标添加到屏幕的底角 请指导
  • 如果路径包含主目录波浪号,Python 子进程不会执行 ~

    我正在尝试检测错误并从 django 应用程序重新启动服务器 我正在使用以下代码 try do something except print here subprocess call home my username restart sh
  • 在 Heroku Cedar 上为 Rails 中的资源设置自定义标头

    我有一个使用 Rails 4 0 和资产管道的 cedar 应用程序 我想为资产管道中的所有资产设置自定义标头 如何才能做到这一点 一个简单的方法是使用机架插件 如下所示 class RackAssetFilter def initiali
  • 生成的签名 X.509 客户端证书无效(没有指向其 CA 的证书链)

    我使用 Bouncy Castle 生成 X 509 客户端证书 并使用已知的 CA 来签署它们 首先 我从证书存储中读取 CA 证书 生成客户端证书 并使用 CA 对其进行签名 由于以下问题 证书验证失败 无法为受信任的根颁发机构构建证书
  • Android 中的视图翻转器可以有多少个视图?

    我正在 Android 中开发一个应用程序 我想在其中显示大约 170 张图像 但我希望用户可以通过手指向右或向左查看图像 从互联网上搜索后我得到了一个解决方案 因此我在我的应用程序中使用了View Flipper 当图像计数为15时它将起
  • Matlab向矩阵添加额外的列

    我有一个大小为 216 x 3 的矩阵 我希望向该矩阵添加额外的三列 我认为很简单的事情让我发疯 我原以为它会像下面这样 myData myData zeros length myData 1 3 错误消息如下 然而 两个矩阵具有相同的行数
  • 执行与 Oracle 的连接时,“安全包中没有可用的凭据”

    上次 Windows 更新后 执行与 Oracle 数据库的连接的测试启动失败 并出现 AuthenticationException 下面提供了消息和堆栈跟踪
  • 标签之间的正则表达式,除非转义

    我围绕 Pygments 库制作了一个 PHP 包装器 突出显示代码块 用于代码块检测的正则表达式可以在配置文件 json格式 json 值看起来像这样 codeblock regex pygments pygments JSON 解码后应
  • 如何防止R中的科学记数法? [复制]

    这个问题在这里已经有答案了 我的图以 e 表示法的形式显示 y 轴上的值 我应该使用哪个命令来获取数字形式的值 文件中使用的值是数字形式吗 谢谢 要在整个 R 会话中设置科学记数法的使用 您可以使用scipen选项 从文档 options
  • C++ 后台定时器

    include stdafx h include
  • 如果关系不存在则返回节点

    我正在尝试使用 cypher 创建一个查询 它将 查找 厨师可能拥有的缺失成分 我的图表设置如下 ingredient value is part of gt ingredient ingredient 将有一个名称 染料颜色 的键 值 i
  • Symfony2 登录和安全

    有没有办法可以存储用户上次登录的时间 我正在使用 symfony2 安全配置一切正常 我见过这个基于 Symfony 2 的项目的安全性和登录 这是一个类似的问题 但它不符合我的需要 还有其他解决办法吗 您可以创建一个Authenticat
  • C# HttpClient 和 API

    我有一个 Web 应用程序 它使用 HttpClient 类从 API 中提取数据 我有几个问题 HttpClient 是从 API 获取数据的最佳选择吗 我从 APi 获取一个字符串并将其反序列化为一个对象 每次使用时都会创建 HttpC
  • Python 中如何确定范围[重复]

    这个问题在这里已经有答案了 为什么第二个函数中的第一个 print 语句会抛出错误x没有定义 x 5 def function a print x def function b print x x 7 print x 运行第一个函数会得到以
  • ubuntu 16.04 nginx 更改 phpmyadmin url 不起作用

    Ubuntu 16 04 5 LTS Xenial 4 18 8 x86 64 linode117 nginx version nginx 1 10 3 Ubuntu php v7 0 32 0ubuntu0 16 04 1 etc ngi
  • matplotlib 在 IPython 中不使用 matplotlibrc 文件

    我最近从 matplotlib v1 5 3 从 v2 0 0 升级 但通过此更改 matplotlib 在绘制图形时似乎不再使用我编辑的 matplotlibrc 文件 当我打开 matplotlibrc 文件时 我看到我的更改实际上已实
  • Shiny - 使用 for 循环插入 UI 在每个输出中返回相同的元素

    我想在我的 Shiny 应用程序中插入非预定义数量的图表 我使用了一个for循环和一系列的insertUI 问题是当我运行它时 文本元素的行为符合预期 但图形都呈现相同的图像 我怎样才能防止这种情况发生 这是一个代表 library shi
  • 复制 TreeView 节点

    我正在尝试将选定的树视图节点复制到剪贴板 以便可以将其粘贴到记事本中 这是我的代码 但它不起作用 TreeNode selNode TreeNode this treeView1 SelectedNode Clipboard SetData
  • 尝试使用正则表达式删除Python中的字符EM DASH“—”(—)

    我得到了这个顽固的 EM DASH 字符 我试图使用正则表达式删除它 但由于某种原因我无法让它工作 这是我正在使用的代码 editedSource re sub r u2014 str source 我在这里做错了什么 我很确定我得到了正确
  • 如何表达复数的四分函数

    确实存在所谓的超操作序列 它的工作原理就像你构建乘法一样a b a a a a a并添加了许多a重复b次 然后是求幂a b a a a a a与许多乘法a重复b次 然后 就出现了四联 表示为指数塔 就像a b a a a a 重复b tim