Javascript 从左到右计算googolplex二进制文件
如何计算(10^(10^100))从左边开始的前导N(例如:100)个二进制数字Javascript 从左到右计算googolplex二进制文件,javascript,php,c++,c,numbers,Javascript,Php,C++,C,Numbers,如何计算(10^(10^100))从左边开始的前导N(例如:100)个二进制数字 我知道如何从右到左计算二进制,但这可能需要数百年()才能运行…没有答案,但有一个进一步分析的建议 如果需要二进制,则需要从第N位开始的位,其中N=X+1,其中X描述如下: 2^X=10^(10^100) 取对数(b=10)=> X=10^100/对数(2)==>~3.3 E 100 仍然不确定如何从那里减少它,但也许玩对数恒等式可能会很有趣。如果你能计算X,也许你能想出一个长除法算法,尽管你参考资料中的runnin
我知道如何从右到左计算二进制,但这可能需要数百年()才能运行…没有答案,但有一个进一步分析的建议 如果需要二进制,则需要从第N位开始的位,其中N=X+1,其中X描述如下: 2^X=10^(10^100) 取对数(b=10)=> X=10^100/对数(2)==>~3.3 E 100 仍然不确定如何从那里减少它,但也许玩对数恒等式可能会很有趣。如果你能计算X,也许你能想出一个长除法算法,尽管你参考资料中的running time参数让我想象计算X的运行时可能是相同的。也就是说,600年后见 另一个想法可能是研究数字协处理器如何以二进制形式创建iEEE尾数 也许有一个算法,你可以利用这样的东西
只是猜测而已,所以一些基础数学有助于勾勒出方法的轮廓。我将强调一些要点:
- 您需要准确地计算二进制的左数字
- 数字在数学上与基数的乘法/除法无关
- 幂等于对数空间中的乘法
- 乘/除基数相当于在日志空间中添加整数
对于这个任务,您肯定需要一个bignum库;长双人赛根本不可能成功。但是,使用这种方法收集合理数量的最左边的数字应该是合理可行的 根据链接:
…Carl Sagan估计,以标准形式(即“1000000000…”)编写googolplex在物理上是不可能的,因为这样做需要比已知世界中可用的空间更多的空间。但是如果我只想计算前100个二进制数字,可能吗?我不明白前N个二进制数字的计算是什么意思。@FiddlingBits我指的是它的左边,例如:1000dec=11111 01000b,前6个二进制数字是“11111 0”,可能我应该使用“前导”=)