正好1024个字符,不多也不少:
- 必须打印
Hello World
。 - 一定不要使用不必要的空格。
- 不得使用注释。
投票赞成答案时,评判应该优先考虑创造力和/或幽默而不是简单的混淆。
我最早会选择一个答案是2012年11月11日(星期日)。到目前为止,我已经看到了一些很棒的条目,迫不及待地想看看人们还有什么想法。
正好1024个字符,不多也不少:
Hello World
。投票赞成答案时,评判应该优先考虑创造力和/或幽默而不是简单的混淆。
我最早会选择一个答案是2012年11月11日(星期日)。到目前为止,我已经看到了一些很棒的条目,迫不及待地想看看人们还有什么想法。
Answers:
通过代码查询,因此显然不使用不必要的空格:
using System;using System.IO.Compression;using System.Runtime.Serialization;using System.Runtime.Serialization.Json;using System.Linq;using System.Net;using System.Text.RegularExpressions;class C{static void Main(){var g=WebRequest.Create("https://api.stackexchange.com/2.1/questions/8859?site=codegolf&filter=withbody");var r=(HttpWebResponse)g.GetResponse();if(r.StatusCode==HttpStatusCode.OK){var s=r.GetResponseStream();foreach(var a in r.ContentEncoding.ToLowerInvariant().Split(',').Reverse())switch(a){case"gzip":s=new GZipStream(s,CompressionMode.Decompress);break;case"deflate":s=new DeflateStream(s,CompressionMode.Decompress);break;default:throw new InvalidOperationException();}var d=new DataContractJsonSerializer(typeof(R));var q=(R)d.ReadObject(s);var e=new Regex("<code>([^<]*)</code>");var m=e.Match(q.I[0].B);Console.WriteLine(m.Groups[1].Value);}}}[DataContract]public class R{[DataMember(Name="items")]public I[]I{get;set;}}[DataContract]public class I{[DataMember(Name="body")]public string B{get;set;}}
格式化以提高可读性:
using System;
using System.IO.Compression;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
using System.Linq;
using System.Net;
using System.Text.RegularExpressions;
class C
{
static void Main()
{
var g = WebRequest.Create("https://api.stackexchange.com/2.1/questions/8859?site=codegolf&filter=withbody");
var r = (HttpWebResponse)g.GetResponse();
if (r.StatusCode == HttpStatusCode.OK)
{
var s=r.GetResponseStream();
foreach (var a in r.ContentEncoding.ToLowerInvariant().Split(',').Reverse())
switch(a)
{
case "gzip":
s = new GZipStream(s,CompressionMode.Decompress);
break;
case "deflate":
s = new DeflateStream(s,CompressionMode.Decompress);
break;
default:
throw new InvalidOperationException();
}
var d = new DataContractJsonSerializer(typeof(R));
var q = (R)d.ReadObject(s);
var e = new Regex("<code>([^<]*)</code>");
var m = e.Match(q.I[0].B);
Console.WriteLine(m.Groups[1].Value);
}
}
}
[DataContract]
public class R
{
[DataMember(Name="items")]
public I[] I { get; set; }
}
[DataContract]
public class I
{
[DataMember(Name="body")]
public string B { get; set; }
}
该程序使用Stack Exchange API从Code Golf中检索此问题,找到格式化为代码的第一段文本(在此问题中为“ Hello World”文本),然后将其打印出来。
>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++>+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++>++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++>++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++>++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++>+++++++++++++++++++++++++++>+++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++>++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++>+++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++>+++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++>+++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++++++++++++++++++++++++++++++++++++++[+++++<]>[.[-]>]
这是1024个字符,不包括我添加来构成一个漂亮的64 * 16块的空白。
该策略如下:
用字符“ Hello World”填充前几个字节,但每个字节都太小5。除最后16个字符外,所有其他字符均完成此操作。为了使指针以后不会超出范围,第一个字节保留为空白。
将指针返回起点,使用以下命令将每个字节加5 [+++++<]
遍历字符,打印它们,并使用 >[.[-]>]
没有不必要的空格?那么JavaScript根本不需要的不必要的分号呢?让我们添加这些分号来使像Crockford这样的人感到高兴。
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;console.log('Hello World');;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
是的,我知道这是滥用规则。
{{{{{console.log("Hello, World!")}}}}}
Graph[Partition[
Riffle[Characters[
StringTake[ElementData[][[2]], 3] <>
StringTake[WordData["high", "Antonyms"][[2, 2, 1]], 2] <>
FromCharacterCode[Power[2, 5]] <>
StringTake[GraphData[][[Prime@705]], 2] <>
StringTake[AstronomicalData["Planet"][[1]], {3}] <> "ld"],
Rest@Characters[
StringTake[ElementData[][[2]], 3] <>
StringTake[WordData["high", "Antonyms"][[2, 2, 1]], 2] <>
FromCharacterCode[Power[2, 5]] <>
StringTake[GraphData[][[Prime[705]]], 2] <>
StringTake[AstronomicalData["Planet"][[1]], {3}] <> "ld"]],
2] /. {a_, b_} :> DirectedEdge[a, b],
EdgeLabelStyle -> Power[2, 4],
EdgeLabels -> (Partition[
Riffle[l =
Characters[
StringTake[ElementData[][[2]], 3] <>
StringTake[WordData["high", "Antonyms"][[2, 2, 1]],
1 + 1] <> FromCharacterCode[Sqrt[Sqrt[1048576]]] <>
StringTake[GraphData[][[Prime[705]]], 2] <>
StringTake[AstronomicalData["Planet"][[1]], {3}] <> "ld"],
Rest@l], 2] /. {a_, b_} :> DirectedEdge[a, b]) +
Power[{1, 8, 27, 64, 125, 216, 343, 512, 729, 1000},
1/3] /. {Plus[a_, b_] :> Rule[b, a]},
VertexLabelStyle -> Directive[RGBColor[0, 0, 1], Large],
VertexLabels -> "Name", ImagePadding -> Power[5, 2],
ImageSize -> 2^2*5^2*7]
去碗状(部分)
对于那些无法访问Mathematica精选数据的人:
ElementData[][[2]]
WordData["high", "Antonyms"][[2, 2, 1]]
GraphData[][[Prime[705]]]
AstronomicalData["Planet"][[1]]
“氦”
“低”
“ WongGraph”
“汞”
“ Hel”(来自“ Helium”)+“ lo”(来自“ low”)+“”(FromCharacterCode[32]
)+“ Wo”(来自“ WongGraph”)+“ r”(来自“ Mercury”)+“ ld”
产生字符串“ Hello World”。
字符串被分成多个字符,每个字符在下图中成为一个顶点:
Graph[{"H" \[DirectedEdge] "e", "e" \[DirectedEdge] "l",
"l" \[DirectedEdge] "l", "l" \[DirectedEdge] "o",
"o" \[DirectedEdge] " ", " " \[DirectedEdge] "W",
"W" \[DirectedEdge] "o", "o" \[DirectedEdge] "r",
"r" \[DirectedEdge] "l", "l" \[DirectedEdge] "d"},
EdgeLabelStyle -> 16,
EdgeLabels -> {"H" \[DirectedEdge] "e" -> 1, "e" \[DirectedEdge] "l" -> 2, "l" \ [DirectedEdge] "l" -> 3,
"l" \[DirectedEdge] "o" -> 4, "o" \[DirectedEdge] " " -> 5,
" " \[DirectedEdge] "W" -> 6, "W" \[DirectedEdge] "o" -> 7,
"o" \[DirectedEdge] "r" -> 8, "r" \[DirectedEdge] "l" -> 9,
"l" \[DirectedEdge] "d" -> 10},
VertexLabelStyle -> Directive[Blue, Large], VertexLabels -> "Name", ImagePadding -> 25]
echo '
.@@@@......@@@@.@@@@@@@@@@@.@@.........@@...........@@@@@@@@..
..@@@......@@@..@@.......@@..@..........@..........@........@@.
..@@@......@@@..@............@..........@.........@..........@@
..@@@@@@@@@@@@..@@@@@@.......@..........@.........@..........@@
..@@@@@@@@@@@@..@@@@@@.......@..........@.........@..........@@
..@@@......@@@..@............@..........@.........@..........@@
..@@@......@@@..@@.......@@..@@@@@@@@@@.@@@@@@@@@..@.......@@@.
.@@@@......@@@@.@@@@@@@@@@@..@@@@@@@@@@.@@@@@@@@@...@@@@@@@@..
@@............@@@..@@@@@.....@@@@@@@.....@@........@@@@@@@@@@.
.@@..........@@...@.....@.....@.....@@...@@.........@@.......@.
..@@........@@...@.......@....@.....@@...@@.........@@........@
...@@..@@..@@...@.........@...@@@@@@.....@@.........@@........@
....@@@.@@.@....@........@@...@@@@.@@....@@.........@@........@
....@@...@@@....@.......@@....@.....@@...@@.........@@.......@
...@@......@@....@.....@@.....@......@@..@@@....@@..@@@@...@@.
..@@.......@@@....@@@@@@....@@.......@..@@@@@@@@...@@@@@@@@@'
这是我对另一个“世界您好”问题的回答的改编:
我不确定什么是“不必要的空格”。我使用空格,缩进和换行符使代码格式正确,但严格来说,大多数代码是不必要的。我确实在1024个字符中计算了空格。
编辑:更改为return!
第一行。我认为这样更好。
#include <stdio.h>
int main(int argc, char **argv, char **envp) {
return!
putchar(-~-~-~-~-~-~-~-~-~-~!
putchar(~-~-~-~-~-~-~-~-
putchar(~-~-~-~-~-~-
putchar(-~-~-~
putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~
putchar(-~-~-~
putchar(
putchar(-~-~-~-~-~-~-~
putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
putchar(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
-~-~-~0))))))))))));
}
1024个字符,其中944个为空格,所有必要。
print 11*'%c'%tuple(len(x)+8for x in' / / / / / / / / / / '.split('/'))
为此,我不得不在http://golfscript.apphb.com/上修改脚本的最大长度:)
1)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))1)))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))1))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))1))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))1))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))' '1))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
))))))))))))))1)))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))1))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))))))))))))))))))))))1))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
)))))))))))))))))))))))))))1))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))))))))))))))))))))))))))))))))))){)}8*]''+
在此处在线运行程序。
main=putStrLn hello_world
where hello_world=show H++ello_world
where ello_world=show E++llo_world
where llo_world=show L++lo_world
where lo_world=show L++o_world
where o_world=show O++_world
where _world=show 𝞝++world
where world=show W++orld
where orld=show O++rld
where rld=show R++ld
where ld=show L++d
where d=show D
data Letter=H|E|L|O|𝞝|W|R|D
instance Show Letter where
show H=["Hello, World!"!!0]
show E=["Hello, World!"!!1]
show L=["Hello, World!"!!2]
show O=["Hello, World!"!!4]
show 𝞝=["Hello, World!"!!6]
show W=["Hello, World!"!!7]
show R=["Hello, World!"!!9]
show D=["Hello, World!"!!11]
main::IO()
1024个字符,包括(必需,Haskell对缩进敏感!)空格。(尽管您可以完全删除换行符,但是谁想要一个不可读的单行代码?即使到现在,也很难猜测该程序的功能,而缺少注释...)
将Javascript剪切并粘贴到此页面上的控制台(当然是Chrome浏览器)中,即可看到该页面消失了!
function pad_with_zeroes(number, length){
var my_string = '' + number;
while (my_string.length < length){
my_string = '0' + my_string;
}
return my_string;
}
var code_tags = document.getElementsByTagName('code');
var hello_world = code_tags[0].innerHTML;
var body_tags = document.getElementsByTagName('body');
var body = 'NULL';
body = body_tags[0];
var html_input = "<div id='div_that_holds_hello_world' style='font-size:50px; color:#987324; width: 900px; height: 900px; text-align: center;'><span id='hello_world_span'>" +hello_world+ "</span></div>";
body.innerHTML = html_input;
var span = document.getElementById('hello_world_span');
var div = document.getElementById('div_that_holds_hello_world');
var j_c = 1;
var i_c = 0;
var setIn = setInterval(function(){
i_c++;
if(i_c%2 == 0){
span.style.display = 'none';
}else{
span.style.display = 'block';
}
if(i_c%50 != 0){
div.style.fontSize = j_c + 'px';
if(i_c < 1000000){
div.style.color = '#'+ pad_with_zeroes(i_c, 6);
}else{
i_c = 0;
}
j_c++;
}else{
j_c = 0;
}
}, 500);
html_input
。部分原因是因为我试图快速执行此操作:)
print''.join(chr(32if c[0]>"z"else """
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita
kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At
vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum
dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero
eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
sea takimata sanctus est Lorem ipsum dolor sit amet. Duis autem vel enum...
""".count(c[0]+c[1])+99)for c in zip(' yddd~ doda','t iio~doliu')).title()
编写该程序是一个非常繁琐的过程,算法的长度(第一行和最后一行)影响虚拟文本的长度(以满足所需的1024个字符的总数),进而影响某些子字符串的数量。更糟糕的是:任何子字符串可能都不会发生某些计数,因此我需要调整一般偏差99,这会影响所有其他字母。但令人高兴的是,总是快速实现了辅助脚本。:)
使用正则表达式的Lipsum测试:
"Hello World|Ta what. Soft lad mardy bum that's champion. Tha knows chuffin' nora tha knows tha knows mardy bum shurrup. Where's tha bin. Any rooad ne'ermind. Is that thine cack-handed ah'll gi' thee a thick ear. Ah'll gi' thee a thick ear. Gerritetten tintintin ah'll learn thi shurrup chuffin' nora. Sup wi' 'im. Nah then soft southern pansy tintintin breadcake t'foot o' our stairs how much. Shu' thi gob be reet th'art nesh thee ah'll gi' thee a thick ear that's champion. Shu' thi gob t'foot o' our stairs tha daft apeth where's tha bin ah'll gi' thi summat to rooer abaht. Wacken thi sen up eeh eeh. Shu' thi gob tha what that's champion soft southern pansy ah'll learn thi a pint 'o mild. Appens as maybe gi' o'er nobbut a lad nobbut a lad.Big girl's blouse a pint 'o mild. Big girl's blouse ah'll learn thi. A pint 'o mild. How much ah'll gi' thi summat to rooer abaht michael palin nay lad. Gerritetten a pint 'o mild be reet nay lad. Nay lad how much ee by gum. 1234567I love feet so much.".match(/Hello World/)[0]
正则表达式: .match(/Hello World/)[0]
有点便宜:
print"""Hello World"""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""+""