微笑!只是笑一下


16

众所周知,Brainf * ck在解决Kolmogorov复杂性问题方面非常糟糕,例如,仅打印“ Hello world”就需要大约100个字符。

但是,在某些文本中Brainf * ck可能非常擅长。

现在,您的任务是编写一个无需输入的程序,并显示以下内容:

也就是说,是笑脸(如果您的浏览器未渲染,则为ASCII 1)。

Brainf * ck可以用2个字符完成此操作。

+.

尝试找到一种胜过它的语言!

我们假设您的控制台可以实际显示该字符(或您的字体具有该字符,等等)。

最短的代码获胜。如果还有更多相同的长度,则第一个获胜,但我也会对其他人投票。

编辑:非常抱歉,我不认为第一篇文章会很快到达。快速编辑:语言必须是图灵完整的!


7
我必须对您对输出的描述提出异议:虽然您的代码确实输出了带有二进制代码1的字符,但它不是ASCII编码的,但是属于某些DOS代码页编码,例如CP850或CP437。在任何现代控制台中,都不会出现笑脸,因为现代== UTF-8。☺–
Sven

Answers:


10

假(2)

1,

关于BF的所有阅读都得到了回报!False是Brainfuck的祖先。


哎哟! 奇怪的是,到目前为止没有人想到这一点。:)
vsz 2012年

1
我必须接受这一点,因为带有纯文本和html的版本实际上并不是用编程语言完成的。
vsz 2012年

我曾尝试使用BLC来做到这一点,但我对BLC毫无意义。甚至一态图灵机在元组中也需要4或5个元素。
luser droog 2012年

19

HTML:

它不是真正的编程语言,而是最短的解决方案。


1
尽管它不再符合规则,但我还是会给+1,因为我在急着问问题,却没有想到这一点。
vsz 2012年

如果您想像这样的答案一样调用此php,在新规则下可能没问题。
马特

如果您只是尝试使用PHP,PHP将输出乱码
jdstankosky 2012年

作品在HTML + CSS,这是在新规则下好了。
亚当

@Adám这项挑战的规则要求图灵完整性,您发布的链接无法证明这一点。
pppery

12

Mathematica

只是为了好玩...

"\[HappySmiley]"
"\[NeutralSmiley]"
"\[SadSmiley]"
"\[FreakedSmiley]"

笑脸


1
在Mma中,一个字符char也可以这样做
belisarius博士2012年

@belisarius如何在不将其转换为ASCII的情况下进行粘贴?
DavidC 2012年

1
我只是复制粘贴了它:)
belisarius博士2012年

@belisarius我也剪切并粘贴了图标,但是出于某种原因显示了完整格式。
DavidC 2012年

1
商业价值约为75美分。数学值为zilch。
DavidC

10

纯文本,1个字符

因为html在许多情况下是一个过大的杀伤力。

(是的,我知道规则已经改变)


纯文本未完成,导致此答案无效。
pppery

8

C,18个字符

远没有击败Brainf ** k,但可以达到C的水平(我想)。
仅适用于Little-endian平台,必须不带参数运行。

main(c){puts(&c);}

7

Micronetics系统MUMPS 4.4(7个字符)

w $c(1)

腮腺炎?哦,恐怖……我什至没有想到我会在这里看到它。+1仅代表纯震撼价值!
vsz 2012年

@vsz是我所知道的唯一适用于高尔夫的语言,它经常胜过大多数常见的语言:)
DaveShaw 2012年

5

Brainf * ck(仅2个字符)

+.

当然,我还是会接受长度为2的解决方案
VSZ

您能解释一下这是如何工作的吗?它应该输出ASCII 1,这是不可打印的字符。
nyuszika7h 2014年

@ nyuszika7h:许多控制台输出一个笑脸的ASCII 1
VSZ

1
真?我从未见过这样的控制台。我敢打赌他们使用了一些晦涩的字符集。
nyuszika7h 2014年

5

不超过2个字符,但:

PHP 11个字符。

<?=chr(1)?>

对于每个人来说,您只需将笑脸放在php中,它将输出

在命令行中使用php.exe运行它会给出Γÿǁ并将其放置在浏览器中的结果☺

不能正常工作。


您也可以使用m0nhawk所做的HTML路由。
拉玛先生先生2012年

@GigaWatt您不能。它使用PHP消除了垃圾。你甚至尝试过吗?我在CLI和浏览器中尝试过。
jdstankosky

对我来说很好。 ideone.com/6wYzx9

在命令行中使用php.exe运行它可以Γÿǁ将其放置在浏览器中,从而得到☺
jdstankosky 2012年

2
如果您对文件进行十六进制转储,则会看到该文件另存为笑脸(\xE298BA)的Unicode表示形式,而不是\x01。尝试手动制作一个包含单个\x01字节的文件,然后使用PHP从命令行运行该文件。
拉玛先生先生2012年


4

Golfscript,3个字符

"☺"

不是golfscript专家,但是我不相信有一种方法可以仅使用1个字符将整数转换为相应的ASCII字符,因此这似乎是最短的方法


4

PHP(1)

从技术上讲,这是一个有效的PHP文件(网络服务器会很乐意提供该文件)。


3

LaTeX(51/77个字符)

短期解决方案

\documentclass{book}
\begin{document}
☺
\end{document}

好的解决方案(使用编译latex main.tex):

\documentclass{book}
\usepackage{wasysym}
\begin{document}
\smiley
\end{document}

第一个不起作用,因为纯LaTeX无法读取Unicode字符。奇怪的是,这在XeLaTeX和LuaLaTeX中都不起作用,因为默认字体表不包含该符号。请考虑以下\documentclass{book} \usepackage{fontspec} \setmainfont{DejaVu Sans} \begin{document}☺\end{document}几点:—并在“好的”解决方案中指定您正在使用的渲染引擎(pdfLaTeX)。
安德烈KOSTYRKA

2

J(3个字符)

'☺'

该代码需要适当的字体。

根据维基百科

在Wingdings字体中,字母“ J”呈现为笑脸(请注意,这与Unicode代码点U + 263A不同,后者呈现为distinct)。


另一个变化是u:1
FireFly

2

Q / k(9个字符)

不幸的是不能在2做到这一点。

-1"\001";

我似乎还记得较早版本的解释器中的一个错误,该错误以较少的字符产生了另一个微笑符号。我会查一下

编辑:发现古怪。它似乎仅适用于Windows版本的解释器:

q)1(1b);
☺


1

滑稽表演-6个字符

,1L[sh

说明:

,弹出标准输入。1L[推送一个并转换为char(通过代码点)sh用于切换为漂亮格式。(否则,它将打印前导')。





1

05AB1E,2个字符

只是一个无聊的硬编码。它在CP437中编码。

"☺

在线尝试!

05AB1E,2个字节

在线尝试!


您可能要包括编码。您的最高答案只有CP850或CP437之类的编码中的2个字节,其中包含字符"代码页。但是,使用05AB1E编码甚至无法获得最佳答案,而使用UTF-8编码将为4个字节。
凯文·克鲁伊森

挑战表明字符是有效的编码系统……
a'_'



0

Perl 6(7个字符)

say '☺'

我假设欢迎使用\ n来避免shell提示混乱,从而使规则有所改变。


4
确定要使用空格字符吗?
JB



0

PowerShell,5个字节

程序是否应输出笑脸char。

'☺'

在线尝试!


PowerShell,7个字节

程序是否输出带有代码1的char。

[char]1

在线尝试!


1
为什么不只是'☺'?顺便说一下,在TIO或控制台中没有为我渲染脸部
IT违约时间

因为在Powershell中,笑脸的代码不是1。在线尝试!
mazzy

1
您的答案应该是“ [Char] 9786”吗?我真的很困惑:-D
IT拖欠时间

1
哈!你是对的。我以为我会写一个输出带有代码1的字符的程序。但是您可以将其解释为写一个输出笑脸的程序。
mazzy



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.