昇順ASCII、強盗の印刷


13

これが強盗のスレッドです。警官のスレッドはここに行きます

copsスレッドのタスクは、印刷可能なASCII文字を昇順で出力するプログラムを作成することでした。強盗タスクは、この出力を生成するために警官が使用したコードを解読することです。

クラックされたコードは、同じ長さで、表示された文字が正しい位置にある限り、同一である必要はありません。言語も同じでなければなりません(バージョン番号は異なる場合があります)。もちろん、出力は同一でなければなりません。警官はコードでコメントを使用できませんが、強盗はコメントを自由に使用できます。

強盗スレッドの勝者は、2016年1月7日までにほとんどの提出物をクラックしたユーザーです。同点の場合、最長の結合コードで提出物をクラックしたユーザーが勝ちます。

提出は次のようにフォーマットする必要があります。

言語、nn文字(回答へのリンクを含む)、警官のユーザー名

コード:

alphaprinter

出力

abcdefghijklmnopqrstuvwxyz

オプションの説明とコメント。

リーダーボード:

アドナンによる圧倒的な勝利!

Adnan: 7
Pietu1998: 3
Mitch Schwartz: 2
Quintopia: 2
Martin Büttner: 2
cat: 1
Dennis: 1
insertusernamehere: 1
isaacg: 1
jimmy23013: 1
MegaTom: 1
plannapus: 1
user81655: 1

回答:


7

Python 2、76文字、wnnmaw

以下の難読化されたバージョンのコード:

print "BKT]f"#__h______________________v_____________,___)_________)_______)
print __________h______________________v_____________,___)_________)_______)

これは出力しますBKT]f。意図したバージョンではなく、それは確かです(笑)。

ここでテスト済み


1
卑劣なコメント:)
wnnmaw

1
それはprint、文字列が置かれるべき正確な場所で文字を明らかにしない限り、ある言語のプログラムの長さより短い出力を持つプログラムを投稿することを教えます。
キントピア

7

Brainfuck、48バイト、Adnan

++++[>++++[>++++<-]<-]+++[>++++++++<-]>++[>+.<-]

64を生成してから26を生成します。それは少し赤いニシンかもしれません。

++++[>++++[>++++<-]<-]>>+

65を取得する方法なので、次のようなことをしようとするかもしれません

++++[>++++[>++++<-]<-]>>+[>+++++>++<<-----]>>[<.+>-]

行き止まりだと気付く前に。


ああ、よくやった:)
アドナン




4

JavaScript(ES6)、17文字、ニール

OPが関数を投稿したので、関数を使用したソリューションを次に示します。

()=>xxx=11000+233
__=____=_________

無名関数は次のように呼び出すことができます。

(()=>xxx=11000+233)();

私が最初に持っていたもっとばかげた解決策:

xx=yyyy=z=11230+3
__=____=_________

コンソールで実行すると、数値が出力され11233ます。


2
忍者が私を わかったfx=asdf=> "11233"
コナーオブライエン

@CᴏɴᴏʀO'Bʀɪᴇɴ考えてみると、私はこれについて速くなければならなかった。:D
ここにユーザー名を挿入します

1
さて、西で最速の銃であなたに称賛。+1
コナーオブライエン

文字列なしの場合は-1:P
ev3commander

1
@CᴏɴᴏʀO'Bʀɪᴇɴのバージョンは、文字列を返す関数のみであるようです。
ニール

4

PHP、28文字、Niet the Dark Absol

このタスクにはいくつかのバージョンが見つかりました。

元のバージョン:

<?=@implode(range('a','z'));

私のバージョン:

<?=join('',range('a', 'z'));

23文字バージョン:

<?=join('',range(a,z));

26文字バージョン:

<?=implode('',range(a,z));

もちろん、いくつかの空白を追加するだけで28文字のマークに到達できます。

ここでテスト済み


ダン、あなたは私を打ちました:P私ができる最短:<?=join(range(a,z));
LegionMammal978

あなたは私を得た-多分私は明らかに文字として関数名の文字のいずれかを置くことによって、それがより制限作っているはず...。とにかく、記録のために、ここではオリジナルだ:<?=@implode(range('a','z'));
Nietダークアブソル

4

ジョルフ、27文字、CᴏɴᴏʀO'Bʀɪᴇɴ

数時間の試行錯誤の後、私はそれを笑いました:

on-pl'u'Wa-n"vwxyz"`--'01_2

難読化されたコードを含む:

on-pl'u'Wa-n"vwxyz"`--'01_2
________W___________--_____
                         |

ここで試してみてください(アラートを処理するのステップ実行のみであるようです)


説明

最初に行き詰まったのは、whileループの配置です。私は適切な場所にそれを取得するようではなかったハハ。正しく設定した後、私が気付いた2番目のことは、アンダースコアの配置です。アンダースコアに固執するまで、私はそれをほとんど手に入れたと思った(ggCᴏɴᴏʀO'Bʀɪᴇɴ)。

コードの完全な説明は次のとおりです。

on-pl'u'Wa-n"vwxyz"`--'01_2

o                           # assign
 n                          # n / standard variable
   pl                       # pl = "abcdefghijklmnopqrstuvwxyz"
  -  'u                     # pl - "u" = "abcdefghijklmnopqrstvwxyz"
       'W                   # a string in the middle doing nothing
          -n"vwxyz"         # n - "vwxyz"
         a                  # alert(
                   `        # is an extra semicolon
                     -'01   # "0" - 1
                    -    _2 # ("0" - 1) - negative 2

擬似コードで:

n = minus("abcdefghijklmnopqrstuvwxyz", "u");
"W";
alert(minus(n,"vwxyz"));
;
minus(minus("0", 1), negative(2));

私は実際の解決策が何であったか興味があります:)


1
神の聖なる母は私が意図したものではなく、とにかく素晴らしい仕事です!実際のコードを回答に投稿しました。
コナーオブライエン




4

Python 3、58バイト、Mathias Ettinger

import string;print(''.join(sorted(string.printable))[5:])

文字列モジュールの基本的な使用。


あなたが私の前にこれをクラックしたとは見ていませんでした、私は使用しようとしましたstringが、使用するsortedことを考えませんでした(それが存在することを忘れているため)。同じ方法に近いところはないが、うまくいくので、クラックを残すべきかどうかはわかりません。

2
@cat Stewie Griffinの意見がどうなるかはわかりませんが、とにかく+1しましたが、私の答えとは違うので、答えを維持するのが理にかなっていると思います。
ミッチシュワルツ

4

05AB1E、13文字、アドナン

コード(および空白コード):

1TD*<F3<*}bRJ
__D____<_____

出力:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001

説明:

1                       Push 1
 TD*<                   Push 99
     F   }              For loop
      3<*               multiply top of stack by 3-1 (e.g. double it)
          b             convert to list of binary digits (note we have just computed 2^99)
           R            reverse it
            J           join it into a string.
                        (top of stack implicitly printed)

うわー!! 素晴らしい仕事:)
アドナン


3

JavaScript(ES6)、60文字、ここにユーザー名を挿入

コード:

e=e=>{try{a}catch(e){return[...e.toString()].sort().join``}}
e_e_______a__a____e___e________e__o___________o______o______

出力(Chrome):

    :ERacddeeeeeeffiinnnoorrrrst

私は同じことをしようとしていたので、私はすぐにこれを知っていました!xD


ナイスなもの-文字ごと。:D
ここにユーザー名を挿入します

1
@insertusernamehere [...e+'']少し短くすることもできます。それは最初に私を投げた。;)
user81655

return[...e.toString()]実際に何をしますか?私は... JSリルのみを知っている

3
@catエラーメッセージの各文字を配列に入れるだけです。sort文字列ではなく配列でのみ機能するため、これを行う必要があります。
user81655


3

Malbolge、254文字、フレデリック

難読化されたバージョン:

_____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ _____ __

私のバージョン:

('&%: ^"!65 4Xzyx w4-Qs rpo'K mlk"' ~Dfdc ba}v< ::8[Z XnVlq }0/mO ,*MbK JH^6# 4`C|0 ?U=Sw uPsaq L4on2 Mjjh, ged)c '<$$p ]!};Y WiVxS eRQ>= ).K]l Ij"Fh gfedc b,=;z L\q%H X3E2C /ng-k N*KJI 8%6#D ~2^Ai >g<<d tUr`6 oJ"!1 /|{CU f)d>b <A_^! \};Yj yUxTS dtsr` ML

これは出力されます:

`AB\cd`

ここで試してみることができます



2

05AB1E、7文字のアドナン

コードと空白コード:

576T*uH
___T___

出力:

22368

説明:

576       Push this number.
   T      Push ten.
    *     Multiply. (5760)
     u    Convert to string.
      H   Interpret as a hex number and push decimal (22368) (implicit output).

私はこれが元のプログラムではないことをほぼ確信していましたが、それを可能にした1つの情報(uコマンド)を提供してくれたAdnanに感謝します。


これはオリジナルのプログラムだったと思います。よくやった:)
アドナン

2

この答えは無効であり、私のスコアにカウントされるべきではありません(とにかく勝ちに近いというわけではありません)。

Python 3、58文字、Mathias Ettinger

以下の元のコードのコード:

x=range(95);  print(''.join((chr(i+32) for i in x  )    ))
______________print(_______(_______________________)_____)

意図した解決策ではないことは明らかです。

import string;print(''.join(sorted(string.printable))[5:])

出力:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

(先頭のスペースに注意してください。)

クラックするのが楽しいもの:をgenexpr正しく動作させる方法を理解するのに時間がかかりました。:)


1

Pyth、17キャラクター、Luke

コード(空白のコード):

S`u]G6*T`t"#X0231
___________#____1

出力:

""''''''''''''''''''''0000000000111111111122222222223333333333XXXXXXXXXX[[[[[[]]]]]]

オンラインでお試しください。

これは楽しかった。#フィルター演算子として使用して18バイトに複数回取得しましたが、文字列から単に破棄できることがわかりました。を削除するt#結果はおそらくその出力の最短のPythコードになります。

基本的に:

  • "#X0231 文字列を作ります #X0231
  • t"#X0231以下を削除し#ます。X0231
  • `t"#X0231 文字列表現を取得します: 'X0231'
  • *T`t"#X023110で乗算し'X0231''X0231''X0231'ます:…
  • u]G6*T`t"#X0231 配列に6回ラップします
  • `u]G6*T`t"#X0231文字列表現を取得します:[[[[[['X0231''X0231']]]]]]
  • S`u]G6*T`t"#X0231 出力を取得するためにソートします

非常に素晴らしい!そして、私がやったこととはかなり異なります。
ルーク



0

Python 2、62文字、RikerW

難読化されたバージョン:

______________________________________________________________
         | |   ||                  |  |  ||

私のバージョン:

print "ab_c_de___".replace("_","")#___________________________

これは、単にすべての下線と出力を削除します abcde

ここで試してみ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.