クインアナグラム!(強盗のスレッド)


8

これは強盗のスレッドです。警官のスレッドについては、ここをクリックしてください

警官の任務

警官のスレッドについては、ここをクリックしてください

強盗のタスク

  • 警官のスレッドでひびの入っていない提出物を見つけます。(提出物は一度だけ解読できます。)
  • コードを解読して、動作するクインを見つけます。
  • 強盗のスレッドに回答を投稿します。言語、バイト数、スクランブルコードを投稿したユーザー、その回答へのリンク、およびスクランブルされていないコードを含めます。

強盗の提出例を以下に示します。

Python、29バイト、Oliver

_='_=%r;print _%%_';print _%_

得点

クラックが最も多いユーザーがこのセクションの勝者になります。


1
リンクはどうなっていますか?!
ソロモンウッコ2016

回答:


6

Vim、22バイト、Loojvo

qtiqtqx0l"tp^V^[^[qx0l"tp

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

説明:

qt                  " Start recording in register 'q'
  i                 " Enter insert mode
   qtqx0l"tp        " Enter this string
            ^V^[    " Enter a literal 'esc' character
                ^[  " Exit insert mode
                  q " Stop recording

この時点で、バッファーは次のようになります。

qtqx0l"tp^[

そして、カーソルは最後の列(「esc」キー)にあります。

x                   " Delete the esc character
 0l                 " Move to the second character on this line
   "tp              " And paste register 't'

6

アンダーロード、20バイト、ais523

(:a~*(*S)):a~*(*S)*S

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

説明

Underloadの基本的なクインは次のとおりです。

(:aSS):aSS

以下にその仕組みを示します。

                                  Stack:               Output:
(:aSS)      # Push string.        (:aSS)
      :     # Duplicate.          (:aSS) (:aSS)
       a    # Wrap in (...).      (:aSS) ((:aSS))
        S   # Print.              (:aSS)               (:aSS)
         S  # Print.                                   (:aSS):aSS

Sここで使用できるのは3つだけなので、最初の問題は必要な数を減らすことでした。これを行うには、スワッピング(~)と連結(*)を使用します。

(:a~*S):a~*S

ここでは、2回印刷するのではなく(...)、文字列のバージョンとプレーンバージョンを組み合わせて、1回だけ印刷します。

大きなパズルの奇数を印刷する方法である*S。最終的な解決策に実際に到達した方法はわかりませんが、出力の末尾を別の文字列に入れることでこれを実現できることがわかります。その文字列自体は、最初の文字列で重複しているが、内容は私たちの余分な出現を与える、ではない*S我々が必要。最終的なソリューションの内訳は次のとおりです。

                        Stack:                       Output:
(:a~*(*S))              (:a~*(*S))              
          :             (:a~*(*S)) (:a~*(*S))              
           a            (:a~*(*S)) ((:a~*(*S)))
            ~           ((:a~*(*S))) (:a~*(*S))
             *          ((:a~*(*S)):a~*(*S))
              (*S)      ((:a~*(*S)):a~*(*S)) (*S)
                  *     ((:a~*(*S)):a~*(*S)*S)
                   S                                 (:a~*(*S)):a~*(*S)*S

6

MATL、20バイト、Luis Mendo

'wo&GzL0fk'tl#DwI-ch

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

これまでにMATLを使用したことがないので、理解が少しずれるかもしれませんが、基本的には次のように機能します。

'wo&GzL0fk' This is a string representation of the code, offset by 3
t           Creates a duplicate copy of the string
l#D         Adds quotes to the second copy
w           Swap the unquoted version to the top of the stack
I-          Offset the characters in that version by 3
c           Convert back to characters
h           Join with the quoted string

印象的!特にこれを考慮することは、Matlabの最初の回答です。よくやった!
Luis Mendo 2016年

4

Python 2、54バイト、Loojvo

l= ['l=', ';print l[0],`l`,l[1]'] ;print l[0],`l`,l[1]

私は基本的にパイソンに触れたことがないので、それを見つけるのに苦労しました


4

Retina、20バイト、Martin Ender


\)1S*`\(?
\)1S*`\(?

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

私はこれを、単に馬鹿を作成しようとすることをいじり回して見つけました。私は彼が最初にほのめかした「より短いクイン」(または少なくとも類似のもの)を、単に実験することで見つけました(14バイト):


\)1S*`
\)1S*`

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

約30分から1時間かかりました。マーティン、とても賢い!


良くやった!:) 14バイトのクインの変種は約6つあると思います。
マーティンエンダー2016年

@MartinEnderアナグラムをシャッフルしようとすることから始めましたが、それは役に立たなかったので、既知のクインから始めて、それを変更しました。
mbomb007 2016年

@MartinEnder「Golf you a quine」の質問に新しいクインを追加しましたか?
mbomb007 2016年


3

JavaScript ES6、49バイト、Mama Fun Roll

function f(){return    `${(((((k=>f+'')(f)))))}`}

少し難読化された標準のJS関数クインのほとんど。


3

> <>、36バイト、エリックザゴルファー

'''000**rd3*:::?!;od0.!!+..233??dfrr

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

これが意図された解決策ではないことは確かです。ただし、> <> quinesを使用すると、を除くほとんどの不要な文字を簡単に取り除くことができ'ます。幸いなことに、:同様にそれらを世話することは非常に簡単になりました。

説明

'''                                    Push everything except these quotes onto the stack.
   000**                               In effect, pushes a zero.
        r                              Reverse the stack.
         d3*                           Push 39 (the quote character).
            ::                         Make two copies. The stack now holds
                                       a null-terminated representation of the
                                       entire code.
                                       The print loop begins here...
              :                        Duplicate top of stack.
               ?!;                     Terminate if zero.
                  o                    Otherwise, print.
                   d0.                 Jump back to position 13, i.e. the
                                       beginning of the print loop.
                      !!+..233??dfrr   Unused characters.

はい、意図したソリューションではありません:Pよくできました。
Erik the Outgolfer 2016年

2

JavaScript、147バイト、jrich

+function e(){window[(w=[``>``]+``)[i=9/9]+w[i+i]+"ert"]('+'+e+'()');"  +./;;;;;=======>[]````````ccddddddeeeeeeeefiinnnnoooooorrrrrrrsttuwwx{}"}()

これらすべての余分な文字があるため、これは間違いなく意図された解決策ではありません:-)


うん、確かに意図した解決策ではありませんが、私は感心しました!よくやった!
jrich 2016年

@jrich最もトリッキーな部分は、余分なものを使用しないように、括弧と括弧のバランスをとる方法を理解することでした。(false+"")[1]トリックがここで役に立つとは思わなかったと思いますか?;)
ETHproductions 2016年

正直だとは思わなかった...私の解決策は...
控えめ

2

Haskell、86バイト、Laikoni

y!r=r:y:r:[y]>>=id;main=putStr$[succ$'!']!"y!r=r:y:r:[y]>>=id;main=putStr$[succ$'!']!"

"via を取得するための素晴らしいアイデアsucc$'!'(アスキー文字の後!)。通常の方法、つまり暗黙的にshowまたはを介してそれらを取得するために欠落している文字がいくつかありましたprint


1

Befunge、15バイト、James Holderness

<:0:+1_@#%9,:g-

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

説明

ここでの問題は、現在の文字が9で割り切れるときにループが終了することです-。これは、の場合のみです。したがって、それは最後に行く必要があります。

<                 Run code from right to left.
              -   There will always be 2 zeros on top of the stack at this
                  point, and this just reduces them to 1 zero.
             g    Get the character at the coordinates given by the top
                  two stack values, (0, 0) initially.
           ,:     Print a copy of that character.
         %9       Modulo 9.
      _@#         Terminate if that is 0.
    +1            Increment the x coordinate.
   :              Duplicate it.
 :0               Push two zeros.

1

PHP、110バイト、Oliver

<?php $x='<?php $x=0; echo strtr($x, array(chr(39).$x.chr(39)));'; echo strtr($x, array(chr(39).$x.chr(39)));

おかげで、私は楽しみました、そしてstrtr([])トリックは私にとって新しいものでした、私は将来私にいくつかのバイトを節約することを望みます。



0

Python 2、105バイト、エリックザゴルファー

a='a=%r;print a%%a ###(((())))**-01::@@@@@[[]]gggiiirrr~';print a%a ###(((())))**-01::@@@@@[[]]gggiiirrr~

それは単なる標準のPython文字列フォーマットのクインです...


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