[python,2018-06-25] 高德纳箭号表示法

概念

高德纳箭号表示法是种用来表示很大的整数的方法,由高德纳于1976年设计。它的意念来自是重复的乘法,乘法是重复的加法。

定义

计算

一个箭头

2↑3=2×2×2=8
2↑4=2×2×2×2=16
3↑3=3×3×3=27
a↑b= 
 

两个箭头

2↑↑3=2↑2↑2(注意:此处要从右往左计算)=2↑4=16
3↑↑3=3↑3↑3=3↑27=   =7625597484987
4↑↑3=4↑4↑4=4↑256≈ 
a↑↑b=
 

三个箭头

2↑↑↑3=2↑↑2↑↑2=2↑↑2↑2=2↑↑4=2↑2↑2↑2=2↑2↑4=2↑16=65536
3↑↑↑3=3↑↑3↑↑3=3↑↑7625597484987=3^3^3^3……(7625597484987个3)

a↑↑↑b=

 

PS:以上内容来自百度百科:https://baike.baidu.com/item/%E9%AB%98%E5%BE%B7%E7%BA%B3%E7%AE%AD%E5%8F%B7%E8%A1%A8%E7%A4%BA%E6%B3%95/6327240

 

下面是关于高德纳箭号表示法的python代码

#Author:shijt
#一个箭号时计算方法
def g(n,m):
    product=n**m
    return product
#二个箭号时计算方法
def g2(m,n):
    result=g(m,m)
    for i in range(1,n-1):
        print("g2",i,result)
        result=g(m,result)
    return result
# x个箭号时计算方法,未验证
def gx(m,x,n):
    if(x>2):
        result=gx(m,x-1,m)
        for i in range(1,n-1):
            print("gx=",x, i, result)
            #递归
            result = gx(m,x-1, result)
        return result
    elif(x==2):
        return g2(m,n)
    elif (x == 1):
        return g(m,n)
    else:
        return "error"

print(gx(3,3,3))

代码执行后,电脑已经快卡死了,所以我也不知道gx这个方法是否正确,至于秒天秒地的葛立恒数,暂时没有办法表示出来。

以上

 

转载于:https://www.cnblogs.com/shijt/p/9223524.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值