这是“ 代码填字游戏”的附带问题。强盗回答去这里。
看到我们应该把强盗放在哪里?用于元信息。
这是“ 代码填字游戏”的附带问题。强盗回答去这里。
看到我们应该把强盗放在哪里?用于元信息。
Answers:
我不得不通过调用未定义的行为来对7-Down进行一些改动。 es1024已表明使用UB是预期的解决方案。但是它将在大多数人的计算机上运行。我想出了各种表情达到期望的结果,例如-1 << 30
,3 << 30
,6 << 29
,和~(~0U/4)
,但所有的人,不可能让我得到5跨。因此,我使用了特定于英特尔架构的属性,即仅使用最低有效5位来确定左移的大小。请注意,它必须是,~_
而不是,~1
因此要移位的量不是编译时常数。我使用以下代码测试了表达式:
#define T(X) _ = c; _ = X; printf("%d\n", _);
z[4] = {9};
int main(c)
{
int _;
T("01"[0])
T(-8)
T(-2)
T(11<-328111)
T(+2+71)
T(9+0)
T(0**z)
T(5;)
T(0<-000)
T(2+~3)
T(!91)
T(!_)
T(2**z)
T('_T;')
T("11"?5*9:2)
T(15<<9)
T(0+22)
T(-211*0-97;)
T(-17*0)
T(3+0<<~_)
T(8+000)
T(+0)
T(42)
T(+!z)
T(~_)
}
#define T
解决方案的必要组成部分。但是,问题仍然存在,为什么M-across起作用?定义多字符常量是否只是串联字节值?如果是这样,我今天学到了一些新东西。:)
int
,因此您最多可以输入四个字节而不会丢失信息。
(此解决方案实际上需要几个空间,因此,这不是Professorfish所需要的。)
#K###I#'32
#HDJ*s\ ##
2##2#`#`#-
4Zm*`##L#3
m##6##]`'
f####e#`#'
`#0#'d1+eu
## #!####9
## '{;'"'m
C5(#}####q
很好玩。注意,#
下面的6
实际上是代码,而不是暗单元格。让我们来看一下:
提示2 :[[4 3]]
。这是比较棘手的问题之一,因为我真的很想尝试4Z]]`
或类似方法。事实证明,您可以m*
在不是数组的东西上使用笛卡尔积,它将为您创建数组。所以这里是:
4Zm*`
提示4 :24717
。到时候我到这一点,H
,J
,s
在地方和尾部空间里了。最后H
我可能可以重用17
和做\
。该J
推一19
和247 == 13 * 19
,所以:
HDJ*s\
提示7 :32
。有一堆的方法可以做到这一点:Y5#
,3 2
,ZY
,YZ\
,4(2
,2)2
,'32
。我选择了最后一个,因为从一个角色开始看起来很有希望获得7分,这是正确的。
提示8 :E
。我已经有'd
当我到了那里,所以这是选择之间'd1+eu
,'deu1+
或者我用一个变体)
和空间,而不是1+
(对于非CJam人来说,这走的是d
性格和增量和上层套管它,以任何顺序) 。但是,u
最后一列中的对A-down很有用。所以我选了第一个。最后,它'd) eu
也可以工作。
提示9 :""
。好吧,这必须是“空字符串,获取字符串表示形式,加空格”。但是还需要`在7位向下的字符串表示形式中使用,并且A位向下的空格似乎也很有用,所以我选择了
]`'
请注意,这]
可能也是其中之一LMOQR
。
提示B :"m
。我只是真的必须使这个适合其他人,但是很少有重要人物。我已经有了{
和m
。因此,我没有使用块,而是变成{
了一个字符,将其丢弃,然后压入两个必需的字符:
'{;'"'m
提示D :124
。我与C-down一起解决了这个问题,最简单的方法是最后递减。因此,我推了一个12,一个5,并减少了后者:
C5(
提示1 :[2 2 2 3]
。这看起来像是一个不可思议的主要分解,以至于不能成为一个分解。:)
24mf`
提示3 :3010936384
。分解这表明实际上是38 6。唯一的问题是如何使38
2-cross符合要求。最后,我需要一个*
第三位的,所以将19
其加倍:
J2*6#
提示5 :2017
。这么大的两个字符?只需使用内置的两位数变量:
KH
提示6 :"18"
。我认为只有一种方法可以做到3个字符。使用内置的18,将其转换为字符串,然后转换为其字符串表示形式。
Is`
提示7 :' "\"\""
。可能是难题中最难的部分。特别是,我只需要输入"\"\""
三个字符即可。诀窍是两次获取空字符串的字符串表示形式。这导致:
' `L``+
该+
是没有必要的,但需要由8跨。
提示8 :!{}
。该块需要放入代码中,因此只为保留了两个字符!
,这意味着要使用另一个文字:
'!{}
提示A :-3u3
。随着u
在地方从8跨,我开始把-3
并且3
在没有其他线索关心他们的角落。但是然后我需要m
在底部。我认为有多种方式来获得3
与_m_
,但最简单的是服用9的平方根:
-3 'u9mq
提示C :-1
。我已经在那儿递减了,所以我把一个0
没人关心的地方放了:
0 (
提示E :Stack: ""
。好吧,那是最简单的。只需调用调试器:
ed
__________
|{}=51###6#|
|a##.#I-9<4|
|:##-##"#<#|
|5+Math.PI#|
|}##+##.#+#|
|["9"+0][0]|
|'##p##"###|
|a+-a#a=-10|
|'##c##=###|
|]##"\x48I"|
¯¯¯¯¯¯¯¯¯¯
5+Math.PI
或是Math.PI+5
; 但是后者会使'M'和'h'交叉成其他表达式,这似乎不太可能。"\x48I"
。xxxa
0,所以-a + a?a + -a?3 + -a?a+-a
看起来最好,因为它给了我1dn字符串中的字符。{x:5}xxa'x
。由于返回的值为5,因此必须将其从对象中拉出,因此{x:5}['a']
,这意味着最后一个丢失的字符也是:{a:5}['a']
t={}=51
,而且行得通。不知道!5xxax"pac"
=>“ 2pac”。5-a+"pac"
无论如何,这必须是,所以第二个字符必须是“。” 浮点文字。[xx"xxxx]
,返回“ 90”。因此,这必须是一个数组文字,其值被拉出;我们只有一个价值的余地[xx"xx][0]
。有没有余地有两个字符串,但无论是"9"+0
或9+"0"
配合。6<<I
原来是答案,剩下+0加到最后。I-I<4
,I-6<4
,等)-x..]xxx4
。“。但是后来我看到这是一条红鲱鱼。-""
是NaN,因此-"..]"xx4
必须存在-与NaN的比较,返回false;'=='可以,但是需要查看最后一个答案以进行确认...=-10
。老实说,我还查看了9dn的早期版本,并意识到这一定是一定的=top
(要重新获得Window)。分配给的变量可以是a或I,这无关紧要。棘手的难题!
对于所有冗长的浮点表达式,我编写了一个C ++程序来强制生成Python数学表达式并对其进行求值。它假定所有数字均为浮点数,并且仅支持+,-,*,/,/,/,**和〜。我用它来获得除线索a**9*27%b
和散列之外的所有线索,长度都超过5个字符。如果有6个或更少的空白,它会在几秒钟内完成,而要等待7个。
我猜我打的很好,因为有14个空间。
此测试脚本:
g=4;
o=magic(3);
D=@disp;
D(max([ 2]));
D( i^3);
D(o^0);
D(6 -7+eye );
D((i));
D(.1 ^5* g );
D(~2);
D(diag(~o) );
D(asin (1)*i);
D((93+7) +~g);
D( 10e15);
D(2*ones (2));
D(02 ^ 9 );
D(-i );
D(~o);
产生以下输出:
2
0 - 1.0000i
1 0 0
0 1 0
0 0 1
0
0 + 1.0000i
4.0000e-05
0
0
0
0
0 + 1.5708i
100
1.0000e+16
2 2
2 2
512
0 - 1.0000i
0 0 0
0 0 0
0 0 0