打印先前答案的第一个字符


17

接受的优胜者isaacg,带有7位ASCII答案但是,挑战尚未结束-悬赏被授予最短的答案。如果您以某种方式将所有其他答案的所有第一个字符缩减为10个字节,则将赢得赏金。其中包括第二回合的GolfScript答案中的所有字符(以及该答案本身添加的字符)。这是我一次让您乱序-如果您对此有任何异议,请在评论中告诉我。

我想赞扬randomra,他帮助我解决了旧想法,并给了我这个新想法。

历届获奖者

  • 第1轮:isaacg,具有7位ASCII码
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    您知道,代码查询真的很酷。人们接受挑战,然后逐渐变小!但是,让我们以另一种方式来做。所以,这是我的挑战:

  • 代码将按发布顺序打印所有先前答案的第一个字符(第一个答案不打印任何内容)

  • 该代码从100字节开始,每次减少5。
  • 如果两个帖子的答案相同(即它们都在几秒钟之内发布),则新帖子必须添加旧角色的字符并减少5个字节(甚至减少几秒钟)。
  • 可以使用任何语言。
  • 您的代码不得产生任何错误。
  • 您的代码必须使用第一步所需的所有字节。
  • 您的代码必须打印到STDOUT。
  • 不可打印的字符可以,但是:
    • 他们不能是第一个字符(出于这个问题的目的)
    • 你必须让所有人知道他们在哪里
  • 您可以发布多个答案,但是:
    • 在发布另一个答案之前,您必须等待2个答案(因此,如果发布了100个字节,则必须等到85个字节。)
  • 您不能:
    • 使用超过10个字节的注释
    • 具有整个程序未使用的变量
    • 用空格填充程序
    • 变量名的长度超过10个字节(但是您可以有多个少于10个字节的变量)
      (EMBLEM的第一个答案是这些规则的例外,因为它是在这些限制之前发布的。)
  • 没有标准漏洞。除非您想摆脱挑战中的所有乐趣。
  • 如果3周内没有其他答案提交,则以字节数最少的答案为准。(如果出现平局,则打印较长弦的人获胜。)

示例:第三个答案必须是一个90字节长的代码,输出两个字符(100字节代码的第一个字符,然后是95字节代码的第一个字符)。第一个答案什么都不输出(没有以前的答案可获取字符)。


“不必要的空格”是错误的措辞。无需使用Python的end语句空格,因为您可以使用分号。
EMBLEM,2015年

8
也许,我们可以再次从100个字节开始,但是以ppuppPq([#fwSmdP[作为起始字符串开始,并在每次字符串长于允许的字节数时重新启动。但是,我无法想到一个成功的标准。
Sanchises 2015年

1
@Scimonster 老实说,您认为其中包含4个字符集#(PS[dfmpquw?我们在这里遇到了信息密度的极限。除非您编写一个处理所有先前答案的10字节程序。不确定是否值得等待。
桑奇斯

2
@sanchises我们并不是说有一个。我们使人们有机会看到他们可以做什么。如果没有人可以,我们将重新启动它。
ASCIIThenANSI

6
-1为什么15字节的解决方案之后,挑战就不再有尊严地消失了?给出良好的“获胜”答案后,似乎很难更改它,以便您可以继续遵循不同的规则。
Geobits,2015年

Answers:


34

7位ASCII,15个字节

更新:我没有意识到填充应该在最后发生。

正确的版本,末尾加注:

十六进制转储(xxd):

0000000: e1c3 af0e 1438 a8b6 8f37 7a7b 7250 b6    .....8...7z{rP.

打印输出(不确定哪个是正确的):

�ï8��z{rP�

áï8¨¶7z{rP¶

旧版本,错误地在前面填充:

pá×
T[G½=¹([

这里的语言/格式是7位ASCII,其中每7位一组对应一个ASCII字符。它用于传输SMS数据。解码器位于此处。

对于是否允许使用非编程语言编写的固定输出问题的答案,没有广泛接受的裁决。有关更多信息,请参见此元文章。(很抱歉,我之前看错了该帖子。)


2
恭喜你!您是我见过的唯一一个压缩字符串的时间长于其包含的代码的人!:D
ASCIIThenANSI

@ASCIIThenANSI将字符串压缩为较短的程序很容易。Python程序print('A'*100)输出100的字符串A。压缩有效的随机字符串并不容易。
卡尔文的爱好

6
@ Calvin'sHobbies如果我们都以字母'p'开头所有代码,这会更容易。:D
ASCIIThenANSI

4
-1我应该早点看一下...这似乎编码不正确。似乎您从填充开始,但是从格式可以看出(并且答案已经扩展了格式的定义,因为打包的7位ASCII实际上并未在任何地方使用),数据应该在末尾而不是开始时填充。即使有填充,我认为其余的编码也不正确。
2015年

1
它应该是“ <SO><DC4>áÃ8¨¶7z{rP¶”。
LegionMammal978

25

元素,80字节

programs do many fun things, like print the letters p`, p`, u`, and p` in a row.

这是我三年前创建的语言。您可以在此处找到用Perl编写的口译员。该`运营商打印堆栈(字母)上顶事。其他标点符号确实可以完成连接等操作,但结果从不打印。


1
先生,很聪明 非常聪明...
ASCIIThenANSI

10

剪辑,20字节

[M"ppuppPq([#fwSmdP"

6
我认为您是最后一位。除非有人可以压缩ppuppPq([#fwSmdP[15个字节并输出。
Sanchises 2015年

@sanchises如果有人这样做,我将给予赏金。因为那样就好。
ASCIIThenANSI

3
@sanchises如果只有某种深奥的语言可以输出程序,而所有出现的情况都p被替换为pp。那么解决方案将是pupPq([#fwSmdP[
bcsb1001 2015年

1
@ bcsb1001是的,最近我想到了类似的东西;一种深奥的语言,其中每个命令都是该站点上胜出的挑战解决方案,并将该命令的输出用作下一个命令的输入。如果有人可以对此进行编程,那将非常棒。
桑契斯2015年

1
@sanchises但这会违反互联网的标准漏洞规则吗?
ASCIIThenANSI



4

Python 3,95个字节

pre='public class f{public static void main(String[] a){System.out.print("");}}'
print(pre[0])

4

Haskell,35个字节

main = putStrLn "\&ppuppPq([#fwS\&"

“ \&”是做什么的?
Hjulle

4
@Hjulle占用两个字符。(这是空字符串的转义代码。)
user19057

4

自修改以来已经24小时了!我们开工吧!:D

Java,第2轮,100字节

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}

1
如何标记此“第2轮”?
Claudiu

4

第2轮:Ruby,75个字节

"ppuppPq([#fwSmdP[ppnvos".chars.each do|character|;print character;end#4444

我以为我会以引号开始回答,这会使我更具挑战性!>:D


3

Java,100字节

public class f{public static void main(String[] a){System.out.print("");}}//createdbyEMBLEMasdfghjkl




3

回合2:///,65字节

\p/CodeGolfIsAwesome!/puppPq/CodeGolfIsAwesome!([#fwSmdP[ppnvos"R

以为我会加反斜杠来加点香料:)


2

C#,90个字节

using System;namespace IAmAwesome{class Program{static void Main(){Console.Write("pp");}}}

2

Ruby,70个字节

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}

您必须将其重新排列为["publ", "pre", "usi", "p1 ", "pro", "Pri"]
LegionMammal978 2015年



2

MATLAB,30个字节

disp([112 112 'uppPq([#fwSm'])

很好地展示了MATLAB如何处理数据类型。


2

Mathematica,25个字节

Print["ppuppPq([#fwSmd"];

1
我有一个新颖的25字节CJam解决方案,该解决方案以非直接的方式对字符串进行编码。不幸的是,它看起来永远不会消失。:-/
Runer112

@ Runer112您和您所有的小押韵/尽管如此,在30字节的铃声响起前20秒钟,我得到了这个答案。
LegionMammal978

2

回合2:批处理,70字节

REM BATCHS
GOTO B
:C
ECHO ppuppPq([#fwSmdP[ppnvos"
GOTO A
:B
GOTO C
:A

你的报价是徒劳的。D:>

编辑:我只是想到我要按文件大小而不是字符数进行计数,不确定如何计算字节数:P

编辑2:添加注释以填充字节。如果您在Windows机器上检查字节数,我就假装“ REM BATCHS”就是“ REM”。:P


我正在用gedit计数字节;它说您的答案是63。您已经足够接近以填补评论空白。
EMBLEM,2015年

1
啊,很好,我会在那儿发表评论。
bloo 2015年

3
@EMBLEM这是因为Windows换行符是\r\n。那里有7个额外\r的。
jimmy23013 2015年


2

第二轮,> <>,45字节

4个字符的注释。

'c(v\R"sovnpp[PdmSwf#[(qPppupp'01.uwyz
ol?!;

字符串现在同时包含"',因此> <>答案不能再将其包围(这就是我避免任何转义的方式)。


2

第二轮,Golfscript,35字节

"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'P"

没有浪费字节。再次以报价开头!


7位ASCII在这里不起作用,它只能创建28个字节,并包含一个额外的NUL
LegionMammal978 2015年

有人聪明,比我会做它..也许有6位编码的一些语言,它可以运行产生正确的输出..
克劳迪乌

不,6位将创造24个字节,但我们还需要30
LegionMammal978

@ LegionMammal978:正确,为24个字节,然后是8个六位指令以打印或执行任何操作
Claudiu 2015年

1
您错过了2个答案的撇号
14mRh4X0r 2015年

1

Python 3,85个字节

p1 = 'publ'
p2 = 'pre'
p3 = 'usi'
def cprint():
  print(p1[0], p2[0], p3[0])
cprint()

1

第2轮,C#,95个字节

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}

如何标记此“第2轮”?
Claudiu

1

第二轮,F#脚本,55字节

(**)System.Console.Write(@"uppPq([#fwSmdP[ppnvos""R\v")

有关我为什么认为这是一种有效的语言,请参阅我以前的 F#脚本。


1

第2轮,R,50个字节

cat('ppuppPq([#fwSmdP[ppnvos\"R\\v(',file=stdout())

1

第二轮,JavaScript,60字节

var _p =“ p”; alert(_p.repeat(2)+“ uppPq([#fwSmdP [ppnvos \” R \\“);

我认为您__会陷入不必要的变数。尝试更改p为两个字母的名称,并将字符串双引号引起来,为打印的引号添加反斜杠。那应该弥补您从删除中丢失的3个字符__,
LegionMammal978

1
他们没有说不使用它们。他们说最多使用十个字节。
SuperJedi224 2015年

这意味着您可以使用最多10个字节的必要变量,但不能完全使用不必要的变量。
LegionMammal978

@Rainbolt您将其解释为“您不能使用超过10个字节的(注释),(不必要的变量),(用空格填充程序)或(变量名)超过10个字节”,但是由于第二个参考,将其视为“您不能使用(注释超过10个字节),(不必要的变量),(使用空格填充程序)或(超过10个字节的变量名)”。
LegionMammal978

我已经消除了歧义。在这个问题上,var __不允许(不在程序的其余部分使用),但是重命名p是可以接受的。
ASCIIThenANSI 2015年

1

第2轮:JavaScript,90个字节

var p =“ p”; alert(p + p + p +“ u” + p + p + p.toUpperCase()+“ q([#fwSmd” + p.toUpperCase()+“ [” + p + p +“ n“); // p

如何标记此“第2轮”?
Claudiu

__,将属于不必要的变量
LegionMammal978
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.