我认为上述问题很明确,但以防万一:
编写一个完整的程序(不仅仅是一个函数),该程序将打印一个以10为基数的正整数,并可以选择后跟一个换行符。
合格程序将是输出比程序源代码长(以字节为单位)的程序,以字节为单位(假定程序源代码为ASCII或UTF-8编码)。
即,代码必须短于所得数字中的位数。
在任何情况下都不允许前导零。计算前导零使问题变得微不足道;忽略前导零将使这个问题变得不必要。
获胜的程序将是合格程序,该程序将打印出幅度最小的整数。
排行榜摘要
1.0
整数吗?
我认为上述问题很明确,但以防万一:
编写一个完整的程序(不仅仅是一个函数),该程序将打印一个以10为基数的正整数,并可以选择后跟一个换行符。
合格程序将是输出比程序源代码长(以字节为单位)的程序,以字节为单位(假定程序源代码为ASCII或UTF-8编码)。
即,代码必须短于所得数字中的位数。
在任何情况下都不允许前导零。计算前导零使问题变得微不足道;忽略前导零将使这个问题变得不必要。
获胜的程序将是合格程序,该程序将打印出幅度最小的整数。
1.0
整数吗?
Answers:
A
幸运的是,bc
默认情况下输出最后一个表达式的结果。 A
被解释为十六进制数字,因此结果为10
。
A
,因为许多高尔夫球语言要定义为10
bc
它不是高尔夫语言。实际上,默认情况下,它是Posix定义的语言,几乎可以在您可以找到的任何标准* nix系统上使用。
在最小化挑战中,这是有史以来最高的非平凡得分吗?(即使它被打了84.8%)
v+CCCCCCCCCC
`32`nSSSSP
说明
v Sets the casting direction to down
+ Increments the casting distance by 1
CCCCCCCCCC Casts the rod
`32` Pushes a string "32" to the stack
n Converts the stack from a string to an integer
SSSS Repeated squaring of the stack
P Prints the stack
该数字是32^16
并且有25位数字。该代码长24个字节。先前的答案是6^32
。
也适用于八度
disp(1e9)
永远不会击败esolang,但是只是为了好玩,这是MATLAB / Octave能够完成的最小任务,所以我想无论如何都会发布它。
say 1e9
如果您想提高高尔夫成绩,perl 会稍微短一些。(尽管距离这种方法所适用的较小整数并不
10
(2个字符)不超过1e1
(3个字符)
5!
ᴇ2
如果不是愚蠢的UTF-8要求,则得分会更高。(在计算器的本机标记化编码中只有两个字节,而在UTF-8中为4个字节...)
ᴇ
和E
不是同一字符。在TI-BASIC中,ᴇ
是科学符号,并且E
是变量。
3!
得分更高?
class A{static void Main(){System.Console.Write($"1{0:D63}");}}
那是1,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 我想我尝试过...
Write(new string('1',70))
更好吗?
class A{static void Main(){System.Console.Write(1e56);}}
1E+56
。
另一个减少:
+++++++[>+++++++>+<<-]>>[<.....>-]
给出35个连续的1,或大约1e34。
还小一点
++++++++[>++++++>+<<-]>+>+[<....>-]
给出36 1,其数字比1e35大11%。
感谢@MartinBüttner用这个代码剔除了几个字符,使总输出减少了100倍(产量1e36):
++++++[>++++++++>++<<-]>+.->[<...>-]
我的旧代码(收益1 + e38):
++++++++[>++++++>++<<-]>+.->+++[<..>-]
我一直出于无聊而尝试使用esolangs。这是我在BF中能做的最好的事情。我想知道是否可以缩小它?
您可以在这里在线尝试。
main(){printf("1%027d",0);}
与我的C ++答案相似,但没有#include <stdio.h>
(忽略有关缺少声明的警告printf
。谢谢@Dennis)
换行符需要使用格式增加2个字节 1%029d\n
A
打印出10,则这是一个有效的程序,得分为
Q
推什么?
这是“从头开始”写的,所以我认为可以发布一个单独的答案:
-[>+>+<<-----]>-[-->.<]
23个字节长。
"3"
)25次。
6d^p
(获得46656分),但您的表现不错-做得好!
interface A{static void main(String[]a){for(A i:new A[81])System.out.print(1);}}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我在这里强调了实际上是“可变的”部分。对于正常工作的Java程序,其他所有内容都是绝对必要的。
大概这比混入Java的时间短BigInteger
。
System.out.print(BigInteger.TEN.pow(10));
-少一个字符吗?抱歉-还远远不够-而且.pow(10).pow(10)
时间更长。
interface
为class
。
main
将是必须的public
。
.pow(100)
由于某些原因无法正常工作?
@'dOu
Cubix是二维的基于堆栈的esolang。Cubix与其他2D lang的不同之处在于,源代码环绕在多维数据集的外部。
解释器要做的第一件事是找出代码将适合的最小立方体。在这种情况下,边长为1。然后用无操作填充代码,.
直到所有六个边都填满。在处理之前删除空格,因此此代码与上面的代码相同:
@
' d O u
.
现在运行代码。IP(指令指针)从最左边开始指向东方。
IP遇到的第一个字符是'
,它将下一个字节压入堆栈。这个字节是d
或100
。接下来是O
,它以整数形式输出首项(100)。
然后IP命中u
,将其向右旋转,将其向前移动,然后再次将其旋转。它切换到指向北的底面,然后向东旋转。这将其O
再次包装,输出100,直到@
终止该程序。
print 1e9
直截了当。
say
吗?
-E
我想那将需要启用该标志。在这个挑战中,我不确定如何计算。
-M5.010
在需要时是免费的”,因此您完全不必计数。
#include <stdio.h>
main(){printf("1%046d",0);}
换行符将需要额外的2个字节,格式为“ 1%048d \ n”
main()
。太太,这将是一个很好的C答案...
A
显然分数是我们打印的数字!