打印1后跟googolplex数量为零

Raj*_*jan 7 algorithm

假设我们不关心程序的运行时间(对于人类凡人来说实际上是无限的)并且使用有限的内存量(2 ^ 64字节),我们想要打印出基数10,精确值为10 ^(googolplex) ),屏幕上一次一个数字(大多数为零).

描述一种算法(可以在当天的计算机上编码),或编写程序来执行此操作.由于我们实际上无法检查输出,因此我们将依赖集体意见来确定程序的正确性.

注意:我不知道解决方案,或者是否存在解决方案.问题是我自己的发明.那些快速标记这个外在的读者......善意地重新考虑.这很困难,有点理论但肯定是CS.

jas*_*son 8

这是不可能的.程序中的状态(10 ^(10 ^ 100))多于宇宙中的电子(~10 ^ 80).因此,在我们的宇宙中,没有能够执行任务的机器的这种实现.

  • 考虑到你只需要8个电子来存储256个状态. (3认同)
  • @Jason:该死的,我们需要一个更大的宇宙!(天然的必然结果"该死的,我们需要一个更大的数据库") (3认同)
  • "你只需要8个电子来存储256个状态"假设你可以在电子中存储一个位.也许你可以存储更多的州.我的亚原子物理foo太弱了. (2认同)
  • @Thilo:是的,但是`log_2(10 ^(10 ^ 100))= 10 ^ 100*log_2 10~10 ^ 100*pi~10 ^ 100*3 >> 10 ^ 80`.因此,在二进制计算机上仍然不可能.因为`10 ^ 100*log_b 10 <10 ^ 80`的情况必须是`log_b 10 <10 ^ -20`的情况,因此`b`必须是荒谬的大.我们不会为荒谬的大型'b`发明一台`b`-ary机器. (2认同)

Ano*_*on. 5

首先,我们注意到10 ^(10 ^ 100)相当于(((((10 ^ 10)^ 10)^ ...)^ 10),100次.

或10↑↑↑↑↑↑↑↑↑↑10.

这产生了以下解决方案:

print 1
for i in A(10, 100)
    print 0
Run Code Online (Sandbox Code Playgroud)