Đây là câu hỏi đồng hành cho Mật khẩu mã . Câu trả lời cướp đi đây.
Xem chúng ta nên đặt tên cướp ở đâu? cho thông tin meta.
Đây là câu hỏi đồng hành cho Mật khẩu mã . Câu trả lời cướp đi đây.
Xem chúng ta nên đặt tên cướp ở đâu? cho thông tin meta.
Câu trả lời:
Tôi đã phải làm mờ một chút trên 7-Down bằng cách gọi hành vi không xác định. es1024 đã chỉ ra rằng việc sử dụng UB này là giải pháp dự định. Nó sẽ hoạt động trên hầu hết các máy tính của mọi người. Tôi đã đưa ra với các biểu thức khác nhau để đạt được kết quả mong muốn như -1 << 30
, 3 << 30
, 6 << 29
, và ~(~0U/4)
nhưng tất cả trong số họ đã làm cho nó không thể cho tôi để có được 5 Across. Vì vậy, tôi đã sử dụng thuộc tính đặc trưng cho kiến trúc Intel, chỉ sử dụng 5 bit quan trọng nhất để xác định kích thước của dịch chuyển trái. Lưu ý rằng nó cần phải ~_
và không ~1
để số lượng thay đổi không phải là hằng số thời gian biên dịch. Tôi đã kiểm tra các biểu thức với mã sau đây:
#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
là một thành phần cần thiết cho giải pháp của bạn. Câu hỏi vẫn còn, mặc dù, tại sao M-ngang làm việc? Có phải việc xác định hằng số nhiều ký tự chỉ nối các giá trị byte không? Nếu vậy, tôi đã học được một cái gì đó mới ngày hôm nay. :)
int
, vì vậy bạn có thể đặt tối đa bốn byte mà không mất thông tin.
(Giải pháp này thực sự đòi hỏi một số không gian, vì vậy đó không phải là một giáo sư đang tìm kiếm.)
#K###I#'32
#HDJ*s\ ##
2##2#`#`#-
4Zm*`##L#3
m##6##]`'
f####e#`#'
`#0#'d1+eu
## #!####9
## '{;'"'m
C5(#}####q
Đó là niềm vui lớn. Lưu ý rằng #
bên dưới 6
thực sự là mã và không phải là một ô tối. Chúng ta hãy đi qua điều này:
Gợi ý 2 : [[4 3]]
. Đây là một trong những cái khó hơn, bởi vì tôi thực sự bị mắc kẹt khi thử 4Z]]`
hoặc tương tự. Hóa ra bạn có thể sử dụng sản phẩm của Cartesian m*
cho những thứ không phải là một mảng và nó sẽ tạo ra một mảng cho bạn. Vì vậy, đây là:
4Zm*`
Gợi ý 4 : 24717
. Do thời gian tôi đã vào đó, các H
, J
, s
và dấu không gian đều đã tại chỗ. Sự H
cho đi mà tôi có thể chỉ cần sử dụng lại 17
và làm \
vào cuối. Các J
đẩy a 19
và 247 == 13 * 19
, vì vậy:
HDJ*s\
Gợi ý 7 : 32
. Có một loạt các cách để làm điều này: Y5#
, 3 2
, ZY
, YZ\
, 4(2
, 2)2
, '32
. Tôi đã đi với người cuối cùng, bởi vì bắt đầu với một nhân vật có vẻ hứa hẹn cho 7 người trở xuống, và điều đó hóa ra là đúng.
Gợi ý 8 : E
. Tôi đã có 'd
khi tôi đến đó, vì vậy đó là giữa việc lựa chọn 'd1+eu
, 'deu1+
hoặc một biến thể mà tôi đã sử dụng )
và một không gian thay vì 1+
(đối với những người không phải là CJam, việc này lấy d
nhân vật và tăng dần và đặt nó lên trên, theo thứ tự) . Tuy nhiên, u
trong cột cuối cùng có vẻ hữu ích cho A-down. Vì vậy, tôi đã chọn đầu tiên trong số đó. Cuối cùng, 'd) eu
cũng sẽ làm việc.
Gợi ý 9 : ""
. Chà, đây phải là "chuỗi rỗng, lấy đại diện chuỗi, đẩy một khoảng trắng". Nhưng cũng cần `biểu diễn chuỗi trong 7 xuống và một khoảng trắng trong A-down cũng có vẻ hữu ích, vì vậy tôi đã chọn
]`'
Lưu ý rằng ]
cũng có thể là một trong LMOQR
.
Gợi ý B : "m
. Tôi thực sự phải phù hợp với phần này với phần còn lại, nhưng có vài nhân vật quan trọng. Tôi đã có {
và m
. Vì vậy, thay vì sử dụng một khối, tôi biến {
thành một ký tự, loại bỏ nó và sau đó đẩy hai ký tự được yêu cầu:
'{;'"'m
Gợi ý D : 124
. Tôi đã giải quyết vấn đề này cùng với C-down, dễ nhất với phần giảm dần ở cuối. Vì vậy, tôi đẩy 12, 5 và giảm sau:
C5(
Gợi ý 1 : [2 2 2 3]
. Điều đó trông quá đáng ngờ giống như một nhân tố chính cho nó không phải là một. :)
24mf`
Gợi ý 3 : 3010936384
. Bao thanh toán này cho thấy rằng nó thực sự 38 6 . Câu hỏi duy nhất là làm thế nào để có được sự 38
tuân thủ 2 chiều. Cuối cùng, tôi cần một *
vị trí thứ ba, vì vậy nhân đôi 19
nó là:
J2*6#
Gợi ý 5 : 2017
. Hai nhân vật cho một số lượng lớn như vậy? Chỉ cần sử dụng các biến có hai chữ số tích hợp:
KH
Gợi ý 6 : "18"
. Tôi nghĩ rằng chỉ có một cách duy nhất để làm điều này trong 3 ký tự. Sử dụng 18 tích hợp, chuyển đổi nó thành một chuỗi và sau đó thành biểu diễn chuỗi của nó.
Is`
Gợi ý 7 : ' "\"\""
. Có lẽ là phần khó nhất của câu đố. Đặc biệt, tôi chỉ cần "\"\""
có ba nhân vật. Bí quyết là lấy đại diện chuỗi của chuỗi rỗng hai lần. Điều đó dẩn đến:
' `L``+
Điều đó +
không cần thiết, nhưng được 8-ngang cần.
Gợi ý 8 : !{}
. Khối cần phải đi vào mã, do đó chỉ còn lại hai ký tự !
, có nghĩa là sử dụng một nghĩa đen khác:
'!{}
Gợi ý A : -3u3
. Với u
vị trí từ 8 ngang, tôi bắt đầu đặt -3
và 3
ở những góc mà không có gợi ý nào khác quan tâm đến họ. Nhưng sau đó tôi cần một cái m
ở phía dưới. Tôi nghĩ rằng có nhiều cách để có được một 3
bằng _m_
, nhưng đơn giản nhất là lấy căn bậc hai của 9:
-3 'u9mq
Gợi ý C : -1
. Tôi đã có sự suy giảm ở đó, vì vậy tôi chỉ đặt một 0
nơi mà không ai quan tâm:
0 (
Gợi ý E : Stack: ""
. Vâng, đó là cách đơn giản nhất. Chỉ cần gọi trình gỡ lỗi:
ed
COTO, Javascript ES4, 37 bóng tối
__________
|{}=51###6#|
|a##.#I-9<4|
|:##-##"#<#|
|5+Math.PI#|
|}##+##.#+#|
|["9"+0][0]|
|'##p##"###|
|a+-a#a=-10|
|'##c##=###|
|]##"\x48I"|
¯¯¯¯¯¯¯¯¯¯
5+Math.PI
hoặc Math.PI+5
; nhưng cái sau sẽ để lại 'M' và 'h' chuyển sang các biểu thức khác, dường như không thể."\x48I"
.xxxa
, đánh giá bằng 0, vậy -a + a? a + -a? 3 + -a? a+-a
nhìn tốt nhất vì nó đã cho tôi thứ trông giống như một char trong chuỗi trong 1d.{x:5}xxa'x
. Vì giá trị được trả về là 5, nên nó phải kéo nó ra khỏi đối tượng, do đó {x:5}['a']
, điều đó có nghĩa là ký tự bị thiếu cuối cùng cũng là:{a:5}['a']
t={}=51
, và nó đã hoạt động. Không biết rằng!5xxax"pac"
=> "2pac". Điều này phải là 5-a+"pac"
, bằng cách nào đó, vì vậy char thứ hai phải là '.' cho dấu phẩy động theo nghĩa đen.[xx"xxxx]
, trả về "90". Vì vậy, đây phải là một mảng bằng chữ với giá trị được rút ra; chúng ta chỉ có chỗ cho một giá trị [xx"xx][0]
. Không có chỗ cho hai chuỗi trong đó, nhưng một trong hai "9"+0
hoặc 9+"0"
phù hợp.6<<I
hóa ra là câu trả lời, để lại +0 để thêm vào cuối.I-I<4
, I-6<4
, vv)-x..]xxx4
. ".." đã ném tôi - chỉ có một vài cách có thể là cú pháp hợp pháp và là lý do tại sao tôi hỏi liệu ES4 có phải là mục đích không - đây có phải là một tính năng kỳ lạ của thông số bị bỏ rơi đó không? Nhưng sau đó tôi thấy rằng đây là một con cá trích đỏ; -""
là NaN, vì vậy -"..]"xx4
phải là những gì ở đó - so sánh với NaN, trả về sai; '==' sẽ làm, nhưng cần xem câu trả lời cuối cùng để xác nhận ...=-10
. Thành thật mà nói, tôi cũng đã xem xét phiên bản 9DN trước đó và nhận ra rằng đó phải là một cái gì đó =top
(để lấy lại một Cửa sổ). Biến được gán cho có thể là một hoặc tôi, nó không thành vấn đề.Câu đố khó!
Đối với tất cả các biểu thức dấu phẩy động dài, tôi đã tạo một chương trình C ++ để tạo các biểu thức toán học Python bằng lực và đánh giá chúng. Nó giả sử tất cả các số là dấu phẩy động và chỉ hỗ trợ các toán tử +, -, *, /, //, ** và ~. Tôi đã sử dụng nó để có được mọi đầu mối dài hơn 5 ký tự ngoại trừ a**9*27%b
và hàm băm. Với 6 khoảng trống hoặc ít hơn, nó sẽ hoàn thành trong vài giây, trong khi có một chút chờ đợi trong 7.
Tôi đoán rằng tôi đã chơi golf này khá tốt, vì có 14 không gian.
Kịch bản thử nghiệm này:
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);
tạo ra đầu ra sau:
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