永远数数


71

从一个开始,编写一个永远计数的程序。

规则:

  • 您的程序必须登录STDOUT或可以接受的替代方法(如果STDOUT没有)。
  • 您的程序必须是完整的,可运行的程序,而不是函数或代码段。
  • 您的程序必须输出每个数字,并且每个数字之间必须有一个分隔符(换行符,空格,制表符或逗号),但是所有数字都必须保持一致。
  • 您可以用十进制,一进制或以256基数打印数字,其中每个数字均由字节值表示
  • 在合理的台式PC上,程序必须至少计数到2 128(含),才能没有问题且内存不耗尽。特别是,这意味着如果使用一元数,则无法在内存中存储当前数字的一元表示形式。
  • 与我们通常的规则不同,即使使用的语言(或语言版本)比此挑战新,也可以使用。专门针对此挑战提交0字节答案的语言是公平的游戏,但并不是特别有趣。

    请注意,必须有一个解释器,以便可以测试提交。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。

  • 这并不是要找到具有最短解决方案的语言(有些地方空程序会解决问题),而不仅仅是找到每种语言的最短解决方案。因此,没有答案将被标记为已接受。

目录

这篇文章底部的Stack Snippet会根据答案a)生成目录,a)作为每种语言最短解决方案的列表,b)作为整体排行榜。

为确保您的答案显示出来,请使用以下Markdown模板以标题开头。

## Language Name, N bytes

N您提交的文件大小在哪里。如果您提高了分数,则可以通过打败旧分数保持标题。例如:

## Ruby, <s>104</s> <s>101</s> 96 bytes

如果要在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字:

## Perl, 43 + 2 (-p flag) = 45 bytes

您还可以将语言名称设置为链接,然后该链接将显示在代码段中:

## [><>](http://esolangs.org/wiki/Fish), 121 bytes


29
我不知道如何结合必须输出每个数字用分隔符之间具有可打印数量[...]在基体256
丹尼斯

6
对于未来的挑战,我是否建议您使用沙盒,以便在人们开始发布答案之前可以对所有这些详细信息进行整理?:)
马丁·恩德

3
@IlmariKaronen我将其解释为内存限制,而不是时间限制。可能会限制每个增量的时间。只需将计数器设置为2 ** 128-10即可查看执行后十步所需的时间。
Sparr

5
我们的输出中可以有前导零吗?
圣保罗Ebermann

4
啊!!!我对TI-89(56b)有一个答案,但是我无法发布b / c我是该站点的新手,并且没有Rep 10+!
gregsdennis 2015年

Answers:


63

迷宫,5字节

):
\!

code代码中的IP不断旋转♫

相关说明:

)       Increment top of stack (stack has infinite zeroes at bottom)
:       Duplicate top of stack
!       Output top of stack
\       Output newline

77
该程序很遗憾它没有停止。.–
Optimizer

7
@Optimizer def sad(确实):
YoYoYonnY

1
为什么不是4个字节?
AurelBílý15年

2
@ Aurel300第五字节之间的换行:\
SP3000

@ Sp3000啊,是的。傻我 :)
AurelBílý15年

46

> <>,8个字节

01+:nao!

脚步:

  • 在堆栈上压入0
  • 将1添加到顶部堆栈元素
  • 复制顶部堆栈元素
  • 将堆栈的顶部输出为数字
  • 输出换行符
  • 通过回绕并跳过下一条指令转到步骤2(步骤11)

(内存效率较低(因此无效)的程序是llnao。)


66
+1表示不耐烦的投票要求,该行代码基本上是“现在加一!”。
Janus Bahs Jacquet 2015年

24

Haskell,21个字节

main=mapM_ print[1..]

任意精度的整数和无限列表使此操作变得容易:-)

幸运的mapM_是在序曲中。如果Data.Traversable还可以,我们甚至可以将其缩小到19个字节:

main=for_[1..]print

是否没有可以概括map / mapM等的符号?
JDługosz

@JDługosz:我不知道
Bergi 2015年

嗯,因为sequence要真正实现输出,仍然需要结果。
JDługosz

不能简单地[1..]允许它,因为它在所有数字之间用逗号隔开吗?还是第一个[螺丝全部拧紧了?
Baconaro

@Baconaro:这是一个列表,它什么也不会打印。如果在repl中输入术语,GHCi会打印结果,但这不是可运行的程序。是的,[也不允许领导。
Bergi 2015年

23

Gol> <>,3个字节

P:N

脚步:

  • 将1添加到顶部堆栈元素(开始时是隐式0)
  • 复制顶部堆栈元素
  • 弹出并输出堆栈顶部作为数字和换行符
  • 当我们到达行尾时,绕到步骤1

21

Marbelous11450 4632字节

打印小数点很痛苦!!

绝对不能赢得这场比赛,但我想我会尝试一下。我希望可以将输出填充到40个零(以适应2 ^ 128)是可以的。

00@0..@1..@2..@3..@4..@5..@6..@7..@8..@9..@A..@B..@C..@D..@E..@F..@G..@H..@I..@J
\\++..00..00..00..00..00..00..00..00..00..00..00..00..00..00..00..00..00..00..00
..EhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhunEhun
....AddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddtAddt
..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7..&7\/
../\&8..........................................................................
....@0..........................................................................
....../\&8......................................................................
....//..@1......................................................................
........../\&8..................................................................
......////..@2..................................................................
............../\&8..............................................................
........//////..@3..............................................................
................../\&8..........................................................
..........////////..@4..........................................................
....................../\&8......................................................
............//////////..@5......................................................
........................../\&8..................................................
..............////////////..@6..................................................
............................../\&8..............................................
................//////////////..@7..............................................
................................../\&8..........................................
..................////////////////..@8..........................................
....................................../\&8......................................
....................//////////////////..@9......................................
........................................../\&8..................................
......................////////////////////..@A..................................
............................................../\&8..............................
........................//////////////////////..@B..............................
................................................../\&8..........................
..........................////////////////////////..@C..........................
....................................................../\&8......................
............................//////////////////////////..@D......................
........................................................../\&8..................
..............................////////////////////////////..@E..................
............................................................../\&8..............
................................//////////////////////////////..@F..............
................................................................../\&8..........
..................................////////////////////////////////..@G..........
....................................................................../\&8......
....................................//////////////////////////////////..@H......
........................................................................../\&8..
......................................////////////////////////////////////..@I..
............................................................................../\&8
........................................//////////////////////////////////////..@J
&9&9&9&9&9&9&9&9&9&9&9&9&9&9&9&9&9&9&9&9
Sixteenbytedecimalprintermodulewitharegi

:Sixteenbytedecimalprintermodulewitharegi
}J}J}I}I}H}H}G}G}F}F}E}E}D}D}C}C}B}B}A}A}9}9}8}8}7}7}6}6}5}5}4}4}3}3}2}2}1}1}0}00A
/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A/A%A
%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..%A..
+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O..
+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O+O..

:/A
..}0..}0..
..>>}0....
..>>>>\\..
....//..//
../\>>\\..
....>>..//
....>>\\..
....>>....
\\>>//....
..>>......
..>>......
../\......
..../\<<..
......<<..
..\\<<//..
....~~....
....++....
....\\..//
\\....>9\/
..\\..?0..
......++..
....\\....
......{0..

:%A
@0..
}0..
<A-A
{0@0

:Eg
}0}0}0}0}0}0}0}0
^7^6^5^4^3^2^1^0
~~....~~~~..~~~~
^0^0^0^0^0^0^0^0
{0{0{0{0{0{0{0{0

:Ehun
}0..}0
Eg..&0
=8&0{0
&1\/00
0100&0
&1&1{1
{1{0

:Addt
}0}1
{1{1

打印二进制文件会更短吗?
SuperJedi224

3
(或者一元呢?)
门把手

@Doorknob显示输出不是问题。这是Ehun板上的东西,应该增加下一位,但不能正常工作
TheDoctor 2015年

1
您知道吗,您可以省去每行末尾的句点,并在木板之间保留空白行,并在木板名称中使用单个字符?您只需要在适当的时间重复该单个字符即可调用它。这可以使您的答案减少到大约3000个字节。
overactor

最终,我将提交对marbelous.py的提交,其中包括include/默认情况下的所有内容
Sparr

18

C(仅64位体系结构),53字节

依赖于至少为64位的指针,并使用说明%p符将它们打印为十六进制。程序在达到2 ^ 128时将立即返回。

char*a,*b;main(){for(;++b||++a;)printf("%p%p ",a,b);}

1
因此,如果这些指针位于每个64位,则只能数到2 ^ 128-1,对吗?
瑕疵的

6
无效,因为它不能计数到2 ^ 128
edc65

14
在表达和奖励创造力时,我喜欢CodeGolf。feersum显然不是在这里争取胜利。看到很多关于技术性的否决票并修改问题的措辞以确保他的回答违反了,这让我感到难过。
flodel

3
我认为“至少2 ^ 128”一词已经足够清楚了……
vrwim 2015年

5
@vrwim你没有写。您写了“直到2 ^ 128”。SuperJedi在几分钟前对其进行了编辑。
feersum

17

六角形12 11 10 7字节

感谢alephalpha使代码适合侧面长度2。

10})!';

展开:

 1 0
} ) !
 ' ;

这很简单。10向初始存储器边缘写入10,即换行符。然后})!';在循环中重复执行:

  • } 移至下一个内存边缘。
  • ) 增加它。
  • ! 将其打印为整数。
  • ' 移回10。
  • ; 将其打印为字符。

我认为这是最佳的(尽管到目前为止还不是唯一的)。我已经让蛮力剧本我写这个答案搜索的假设下6个字节的解决方案,它必须包含每一个的至少一个;!,要么(或者),和不含有?,或者@和它没有找到任何解决方案。


13

Pyth,4个字节

.V1b

说明:

.V1    for b in range(1 to infinity):
   b      print b

f!\nTIO链接)将工作3个字节,但是不确定是否使用了在回答后添加的任何功能。

@Sok聪明。但是,我不会更改答案,因为我认为这f是4年前Pyth的功能。
雅库布

我也这么认为,这就是为什么我将其留为评论-新的语言功能击败了较早的答案总是让人觉得便宜IMO
Sok

13

公元前10

for(;;)++i

bc比短的异常dc

来自man bc

描述

bc是支持任意精度数字的语言


该打印在哪里?
巴林特

@Bálint ++i是一个表达式,但不是赋值,因此它是明确输出的。您是否尝试运行它? echo 'for(;;)++i' | bc在离您最近的Linux终端中。
Digital Trauma'Apr

我家没有一个Linux终端。我只是好奇而已。
巴林特

6
@Bálint每个房子都应该有一个Linux终端。
Digital Trauma'Apr

1
@Bálint运行该程序供您使用;)
Insane 2016年

12

Java中,139个 138 127 123字节

class K{public static void main(String[]a){java.math.BigInteger b=null;for(b=b.ZERO;;)System.out.println(b=b.add(b.ONE));}}

2
Java中较小的无限循环仅需for(;;)3个字节。
ankh-morpork 2015年

您也可以使用来另存2个BigInteger b=null;b=b.ZERO;,可悲的=null是,即使是静态访问,也需要。
TWiStErRob

然后再输入9,因为您可以BigInteger通过仅一次引用FQCN 来摆脱导入。
TWiStErRob 2015年

@TWiStErRob不知何故,我没有意识到那会更短。
SuperJedi224

2
对于Java 8或更高版本,您可以将类替换为interfacepublic从函数中删除。不想复制您的代码并将其发布为新答案。
卡H

10

Mathematica,22个字节

i=0;While[Echo[++i]>0]

Echo 是Mathematica 10.3中的新功能。


Echo给出四个单独的字符:换行符加">> "。不确定这是否有效–可以Print改用吗?另外,用保存一个字节i=0;While[Echo@++i>0]
罗马

7

Ruby,15个12字节

loop{p$.+=1}
  • p,当给出整数时,按原样打印整数(由@philomory提供
  • $.是一个神奇的变量,保存从stdin读取的行数。它显然已初始化为0,并且也可以分配:)

@philomory通常建议用户发表评论,以建议其节省字节的解决方案。另外,我想对此进行解释。c:
Addison Crump 2015年

7

Python 3,33 25字节

据我了解,Python整数是任意精度的,并且会print()自动产生换行符。

感谢@Jakub和@ Sp3000和@wnnmaw!我真的不太了解python,唯一知道的就是它支持任意大小的整数=)

k=1
while 1:print(k);k+=1

1是Python(和大多数其他语言)中的真实值。这样while 1:就足够了。
雅库布2015年

此外,您可以将全部内容while放在一行上
-Sp3000

您可以使用repr(k)而不是保存一个字节print(k)。另外,我将您的字节大小计为25(不建议更改)
wnnmaw 2015年

1
您不能使用repr代替printrepr不输出任何东西。@wnnmaw
Zach Gates

那怎么repr办?
瑕疵的

6

处理中95 85 71字节

java.math.BigInteger i;{i=i.ZERO;}void draw(){println(i=i.add(i.ONE));}

我用while循环尝试了一些操作,但是它导致所有Processing崩溃,所以我暂时坚持使用。

(感谢@ SuperJedi224和@TWiStErRob提供建议。)


这些空间是什么?我很确定import java.math.*;BigInteger i=BigInteger.ZERO;void draw(){println(i=i.add(BigInteger.ONE));}会起作用。
SuperJedi224 2015年

是的,解决这个问题。
geokavel 2015年

处理允许BigInteger.ONE将更改为i.ONE吗?
SuperJedi224 2015年

@ SuperJedi224是的,确实如此。谢谢!
geokavel

好了,请投票。
SuperJedi224 2015年

6

萨摩(2字节)

N)

说明:

N     push the infinite list [0 1 2 ...] onto the stack
 )    increase by 1

当程序的输出为列表时,将省略最括号。


列表不是一次打印所有内容吗?如果此列表是infinite,则它可能无法容纳在内存或屏幕上,并且将永远不会停止生成,因此将永远不会打印出来。
cat

1
@cat Samau用Haskell编写,很懒。在打印之前不会生成整个列表。
alephalpha

只是抬起头。在Samau的GitHub页面上,在的描述中@,“ push”是拼写错误。
Carcigenicate's

@Carcigenicate谢谢。
alephalpha'4

6

JavaScript(ES6),99 94 67字节

for(n=[i=0];;)(n[i]=-~n[i++]%10)&&alert([...n].reverse(i=0).join``)

alertSTDOUTJavaScript 普遍接受的等效项,但使用它意味着连续数字将自动分隔。因此,我假设不需要在数字后输出字符。


12
这就是为什么我有一个弹出窗口阻止程序。
Comintern

1
只是说:for(i = 0 ;;)alert(i ++)我认为您不需要所有这些控件
towc

3
@towc那行不通。所有数字都是JavaScript中的64位浮点型,最大安全整数值为,2^53但是问题要求将其提高到2^128
user81655 2015年

1
哦,公平点……
towc 2015年

5

Matlab,132个字节

a=0;while 1;b=a==9;n=find(cumsum(b)-(1:numel(b)),1);a(n)=a(n)+1;a(1:n-1)=0;if ~numel(n);a=[0*a,1];end;disp([a(end:-1:1)+'0','']);end

好的,我认为这是在没有琐碎的内置任意大小整数的情况下完成此任务的第一个严肃的答案。该程序将任意大小的整数实现为整数数组。每个整数始终在0到9之间,因此每个数组元素代表一个十进制数字。数组大小一旦增加到例如,就会增加一999。内存大小在这里没有问题,因为2^128只需要一个长度为39的数组即可。

a=0;
while 1
    b=a==9;
    %first number that is not maxed out
    n=find(cumsum(b)-(1:numel(b)),1);
    %increase that number, and sett all maxed out numbers to zero
    a(n)=a(n)+1; 
    a(1:n-1)=0;
    if ~numel(n) %if we maxed out all entries, add another digit
        a=[0*a,1];
    end    
    disp([a(end:-1:1)+'0',''])%print all digits
end

5

C ++,146个 141 138字节

使用标准的bigint库也许是回答这个问题的无聊的方法,但是有人必须这样做。

#include<stdio.h>
#include<boost/multiprecision/cpp_int.hpp>
int main(){for(boost::multiprecision::uint512_t i=1;;){printf("%u\n",i++);}}

取消高尔夫:

#include<cstdio>
#include<boost/multiprecision/cpp_int.hpp>

int main()
{
    for(boost::multiprecision::uint512_t i=1;;)
    {
        std::printf("%u\n", i++);
    }
}

高尔夫球版本使用stdio.h和不使用高尔夫球版本的原因cstdio是为了避免使用std::命名空间。

这是我第一次使用C ++打高尔夫球,请让我知道是否有任何技巧可以将其进一步缩短。


也许您可以使用'\n'而不是std::endl来节省8个字节。也可能有一种使用CPP #define压缩某些重复的方法,
Kenney 2015年

@Kenney谢谢你!(它只保存5个字节,而不是8个字节。)我想我可能已经想出了一种方法来将该部分调整得更短。
felixphew

我不知道升压(而且我也不会说它是标准的),但是i默认情况下不是用0构造的吗?然后,您可以取消定义并将后增量切换为前增量,这样可以节省2b
Zereges

弃用的#import怎么样?
connectyourcharger

5

C#的.NET 4.0,111个 103 102 97字节

class C{static void Main(){System.Numerics.BigInteger b=1;for(;;)System.Console.WriteLine(b++);}}

我在这里没有找到任何C#答案,所以我只需要写一个。

.NET 4.0是必需的,因为它是包含BigInteger的第一个版本。您必须引用System.Numerics.dll

缩进:

class C
{
    static void Main()
    {   
        System.Numerics.BigInteger b = 1;
        for (;;)
            System.Console.WriteLine(b++);
    }
}

感谢sweerpotato,Kvam和Berend节省了一些字节


您可以使用class C{static void Main(){var b=System.Numerics.BigInteger.One;for(;;)System.Console.WriteLine(b++);}}:〜)保存8个字节!
sweerpotato

1
将b的声明Console.WriteLine移入循环结构:class C{static void Main(){for(var b=System.Numerics.BigInteger.One;;Console.WriteLine(b++));}}
Kvam 2015年

您仍然需要System。但这节省了一个字节!
sweerpotato

是啊,你说得对。
克瓦姆(Kvam)2015年

如果添加using System;(13个字节),则可以将System.(7个字节)删除两次,节省1个字节。
肯尼2015年

5

Clojure,17个字节

(map prn (range))

惰性序列和任意精度整数使此操作变得容易(例如Haskell和CL)。prn为我节省了一些字节,因为我不需要打印格式字符串。doseq可能更惯用,因为在这里我们只处理副作用;map没有什么用处,因为它会创建一个序列nil(即每次prn调用的返回值。

假设我永远计数,则此操作导致的空指针序列永远不会返回。



4

CJam,7个字节

0{)_p}h

说明:

0         e# Push a zero to the stack
 {        e# Start a block
  )         e# Increment top of stack
   _        e# Duplicate top of stack
    p       e# Print top of stack
     }    e# End block
      h   e# Do-while loop that leaves the condition on the stack

注意:必须使用Java解释器。


4

C,89字节

C语言中的一种新方法(实现按位增量器):

b[999],c,i;main(){for(;;)for(i=c=0,puts(b);i++<998;)putchar(48+(c?b[i]:(b[i]=c=!b[i])));}

少打高尔夫球

int b[999], c, i;
main() {
  for(;;)
    for(i=c=0, puts(b); i++ < 998;)
      putchar(48 + (c ? b[i] : (b[i] = c = !b[i])));
}

终止

这个版本有一个轻微的缺陷,就是它不会终止(目前还不是必需的)。为此,您必须添加3个字符:

b[129],c=1,i;main(){for(;c;)for(i=c=0,puts(b);i++<128;)putchar(48+(c?b[i]:(b[i]=c=!b[i])));}

4
实际上,它不应终止。这就是forever
edc65

4

Foo,6个字节

(+1$i)

说明

(    )    Loop
 +1       Add one to current element
   $i     Output current element as a decimal integer

4

Minkolang,4个字节

1+dN

在这里尝试。(实际上,要小心。运行时间3秒足以达到约40,000。)

1+将1加到堆栈的顶部,d将其复制,然后N将堆栈的顶部输出为带尾随空格的整数。由于Minkolang是环形的,因此会循环,因此当程序计数器偏离右边缘时,它会再次出现在左侧。


4

英特尔8086+汇编,19字节

68 00 b8 1f b9 08 00 31 ff f9 83 15 00 47 47 e2 f9 eb f1

这是一个细分:

68 00 b8                push   0xb800             # CGA video memory
1f                      pop    ds                 # data segment
b9 08 00           L1:  mov    cx, 8              # loop count
31 ff                   xor    di, di             # ds:di = address of number
f9                      stc                       # set carry
83 15 00           L2:  adc    word ptr [di], 0   # add with carry
47                      inc    di
47                      inc    di
e2 f9                   loop   L2
eb f1                   jmp    L1

它在左上8个屏幕位置输出128位数字。每个屏幕位置都包含一个8位ASCII字符和两个4位颜色。

注意:它在2 128处环绕;简单地改变8mov cx, 89展现出144比特数,或甚80*25至显示数字高达2 32000

跑步

1.44Mb bzip2压缩,base64编码的可引导软盘映像

通过复制粘贴以下内容来生成软盘映像

QlpoOTFBWSZTWX9j1uwALTNvecBAAgCgAACAAgAAQAgAQAAAEABgEEggKKAAVDKGgAaZBFSMJgQa
fPsBBBFMciogikZcWgKIIprHJDS9ZFh2kUZ3QgggEEh/i7kinChIP7HrdgA=

进入此命令行:

base64 -d | bunzip2 > floppy.img

并与例如 qemu -fda floppy.img -boot a

1.8Mb可启动ISO

这是base64编码的bzip2压缩ISO映像。通过粘贴生成iso

QlpoOTFBWSZTWZxLYpUAAMN/2//fp/3WY/+oP//f4LvnjARo5AAQAGkAEBBKoijAApcDbNgWGgqa
mmyQPU0HqGCZDQB6mQ0wTQ0ZADQaAMmTaQBqekyEEwQaFA0AA0AxBoAAA9Q0GgNAGg40NDQ0A0Bi
BoDIAANNAA0AyAAABhFJNIJiPSmnpMQDJpp6nqeo0ZDQaAANB6IA0NAGj1EfIBbtMewRV0acjr8u
b8yz7cCM6gUUEbDKcCdYh4IIu9C6EIBehb8FVUgEtMIAuvACCiO7l2C0KFaFVABcpglEDCLmQqCA
LTCAQ5EgnwJLyfntUzNzcooggr6EnTje1SsFYLFNW/k+2BFABdH4c4vMy1et4ZjYii1FbDgpCcGl
mhZtl6zX+ky2GDOu3anJB0YtOv04YISUQ0JshGzAZ/3kORdb6BkTDZiYdBAoztZA1N3W0LJhITAI
2kSalUBQh60i3flrmBh7xv4TCMEHTIOM8lIurifMNJ2aXr0QUuLDvv6b9HkTQbKYVSohRPsTOGHi
isDdB+cODOsdh31Vy4bZL6mnTAVvQyMO08VoYYcRDC4nUaGGT7rpZy+J6ZxRb1b4lfdhtDmNwuzl
E3bZGU3JTdLNz1uEiRjud6oZ5kAwqwhYDok9xaVgf0m5jV4mmGcEagviVntDZOKGJeLjyY4ounyN
CWXXWpBPcwSfNOKm8yid4CuocONE1mNqbd1NtFQ9z9YLg2cSsGQV5G3EhhMXKLVC2c9qlqwLRlw4
8pp2QkMAMIhSZaSMS4hGb8Bgyrf4LMM5Su9ZnKoqELyQTaMAlqyQ3lzY7i6kjaGsHyAndc4iKVym
SEMxZGG8xOOOBmtNNiLOFECKHzEU2hJF7GERK8QuCekBUBdCCVx4SDO0x/vxSNk8gKrZg/o7UQ33
Fg0ad37mh/buZAbhiCIAeeDwUYjrZGV0GECBAr4QVYaP0PxP1TQZJjwT/EynlkfyKI6MWK/Gxf3H
V2MdlUQAWgx9z/i7kinChITiWxSo

进入

base64 -d bunzip2 > cdrom.iso

并配置虚拟机以从中引导。

DOS .COM

这是base64编码的DOS .COM可执行文件:

aAC4H7kIADH/+YMVAEdH4vnr8Q==

使用生成一个.COM文件

/bin/echo -n aAC4H7kIADH/+YMVAEdH4vnr8Q== | base64 -d > COUNTUP.COM

并在(Free)DOS中运行它。


4

Perl34 32 30 28 26 23字节

-Mbigint -E '{say$_+=1;redo}'

测试

perl -Mbigint -E '{say$_+=1;redo}'

您可以替换for(,,){...}{...;redo}两个。
primo

是的,我看到了(Perl 5.18+),但我认为这可能是作弊;那么答案将是相同的。我是新来的,所以;-)
肯尼

1
标量引用将自动修改为SV UNDEF,当递增时,它不会触发BigInt过载-因为它不是BigInt。但是,整数文字是作为BigInts 创建的。真的不是那么奇怪;)
primo

1
您可以使用$-将其保留为整数并返回using ++$-吗?
唐·黑斯廷斯

1
我测试过的@DomHastings perl -Mbigint -E '{say++$-;$-+=$-;redo}' | more环绕到1。不幸的是,它保持为整数,但bigint没有介入。
肯尼2015年

4

Marbelous,358个字节

..@F..@E..@D..@C..@B..@A..@9..@8..@7..@6..@5..@4..@3..@2..@1..@001@Z01
..AddoAddoAddoAddoAddoAddoAddoAddoAddoAddoAddoAddoAddoAddoAddoAddo/\&I
00&I00&I00&I00&I00&I00&I00&I00&I00&I00&I00&I00&I00&I00&I00&I00&I....@Z
@FHd@EHd@DHd@CHd@BHd@AHd@9Hd@8Hd@7Hd@6Hd@5Hd@4Hd@3Hd@2Hd@1Hd@0Hd
0A@N
..&I
@N/\..
:Hd
}0
Hp
}0
..
{<
#include hex_out.mbl
#include arithmetic.mbl

16个半加法器链接在一起,最右边的一个加法器每个周期执行N ++,每个加法器将其溢出(00或01)馈送到链中的下一个。输出为十六进制。

python解释器存在一个错误,即会丢失已记录的函数的输出,因此您必须使用“ -m 0”运行它才能使其正常运行。如果没有该参数,您将看到没有错误的运行速度,但是输出将无法正常工作。

自我提醒:修复了marbelous.py中的错误。该错误已在最新版本的marbelous.py中修复。


4

R,52字节

a=gmp::as.bigz(1);repeat{cat(paste(a,""));a=a+1}

(注意:这gmp是一个外部库,因此您可能必须下载它才能使此解决方案正常工作)


1
+1 ...对所有其他功能感到抱歉。为了给你带来一对夫妻,你可以尝试a=gmp::as.bigz(0);repeat{cat(paste(a<-a+1,''))}。您可能要记gmp下一个可能需要下载的外部库。
MickyT 2015年


4

BotEngine,128 120 112 8x13 = 104

v2 2 01
>e>S SS
   e1e1
   e2 e0 12
   > > S SS P
  ^   <e0e1 R
     ^ < <lC^
^         <

输出为二进制。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.