クインを反転させる!


11

私たちは皆、クインが何であるかを知っています。反転 QUINEは、そのソースコードを読み取ることなく、そのソースコードの逆数を出力し、空でないプログラムであり、印刷可能なASCII文字(貫通空間を単独で構成します~)。

ここでは、「ソースコードの逆」とは、以下のことを意味します。あなたのプログラムの出力は、各印刷可能なASCII文字含まれている必要があります(M - C)回、cは回数が文字コード内で発生した、と言っているmが最大ですコード内で文字が繰り返される回数。

(言い換えれば、コード + 出力 = m回の印刷可能ASCIIの順列です。)

たとえば、プログラムがの12345場合、m = 1であり、この文字列の順列を出力する必要があります。

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

プログラムがのAAB場合、m = 2であり、次の順列を出力する必要があります。

  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~

2つの欠損Asと1 つの欠損があることに注意してくださいB

すべての印刷可能なASCII文字を含み、何も出力しないプログラムは有効な逆クイン(m = 1を満たす)ではありませんが、そのような答えはその長さを考えるとそれほど競争的ではありません。

上記のパラグラフで説明されているように、逆クインであるプログラムを作成します。これは、バイト単位の最短プログラムが勝ちます。幸運を!


1
スペース、タブ、改行?
スティーヴィーグリフィン

11
duplicated for every repeated character in the source codeチャレンジですべての違いが生じることを強調する必要があります
ロッド

6
複数の文字が繰り返される(そして複数回)逆の例を挙げていただけますか?言う11234512345
ジュゼッペ

4
これはどのように重複していますか?関連、はい。重複している それはだあなたが重複した文字を持っている必要が言語でより困難。各文字列から削除する必要のある文字数はさまざまであるため、文字列を複製することもできません。
スティーヴィーグリフィン

1
@StewieGriffin私はVTCを「重複」ではなく「不明」と考えています。なぜなら、(ほぼ)すべての回答には、duplicated for every repeated character in the source codeその基準に対して意味が有効かどうかを判断しようとするコメントがあります。ここにいくつかの質問があります。
ジュゼッペ

回答:


7

Brain-Flak221 207バイト

+1を含む -A

(((((((()()()()){}){}()){}){})()){}{}){({}[()]<((((((()()()()){}){}){})<>[()()()])[()])((((()()()){})){}{})<>((()()()()){}){({}[()]<(({})())>)}{}({}()())<>{{({}<>[()]<(({})())><>)}{}<>(({}())()())<>}<>>)}{}

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

# Push 206 (the number of times to duplicate the output)
(((((((()()()()){}){}()){}){})()){}{})

# For 0 to 206
{({}[()]<

    # Push 32 on this stack and 18, 28 and 29 to the other
    # 18, 28 and 29 are the distances between the sets of braces 
    ((((((()()()()){}){}){})<>[()()()])[()])((((()()()){})){}{})<>

    # For 0 to 8
    ((()()()()){}){({}[()]<

        # Push TOS, TOS + 1
        (({})())

    # end For 0 to 8
    >)}{}

    # Push TOS + 2 
    # skips '(' and ')'
    ({}()())

    # For each value on the off stack (18, 28, 28)
    <>{

        # For 0 to that number
        {({}<>[()]<

            # Push TOS, TOS + 1
            (({})())

        # End for 0 to that number
        ><>)}{}

        # Push TOS + 1, TOS + 3 (skips this set of braces)
        <>(({}())()())<>

    # End for each value on the off stack (18, 28, 28)
    }<>

 # End for 0 to 206
 >)}{}

[すべてを削除するのではなく、5回だけ削除する必要があると思います。2例では一度だけ削除されることに注意してください。挑戦は少し混乱していますが。
スティーヴィーグリフィン

興味深いことに、これは標準のクインよりも大幅に短い。+1:)
ジェームズ

2
これは実際には不十分であり、あなたの答えよりもかなり面白くありませんが、技術的には、!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_abcdefghijklmnopqrstuvwxyz {|}〜 `はより良いスコアを取得します:/
James

6

CJam、17バイト

{s95c+'|,32>\-}_~

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

プリント

 !"#$%&()*./014678:;<=?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^`abdefghijklmnopqrtuvwxyz

説明

目標は、標準のクインを修正することでした

{"_~"}_~

プログラム内で文字が繰り返されないようにします。この理由は、CJamには、印刷可能なASCII範囲から文字を削除するために使用できる一連の異なる演算子がありますが、出現回数を考慮していないためです。手作業で実装するのはおそらくもっと長いので、すべてのキャラクターが一度だけ現れるようにし、発生を心配する必要がないようにする必要がありました。

{      e# Quine framework. Executes the block while leaving another copy of the
       e# block on the stack.
  s    e#   Stringify the block, giving us "{s95c+'|,32>\-}".
  95c  e#   Convert 95 to a character, which gives us '_' without repeating
       e#   it in the source code.
  +    e#   Append it to the string. We don't need to worry about '~', we'll just
       e#   leave it out of the printable ASCII range to begin with.
  '|,  e#   Get a character range from the null byte up to '{'. This omits "|}~",
       e#   but those are in the program anyway, it doesn't matter.
  32>  e#   Discard the unprintable characters.
  \-   e#   Subtract the source string from the printable ASCII range.
}_~


2

05AB1E95 61 60バイト(58 b / cではない)

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

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

「ASCII文字のみ」によって無効にされた古い回答、ここでは多くのコマンドは無効です。

abcdefghijklmnopqrstuvwxyz012345678重複する文字がないため、1回印刷されます。


BCDEFGHIKMNOPQRSTUVWXYZ削除されたバージョン:

進行中の作業... 05AB1Eで非ASCII文字なしで取得できるのと同じくらい、60バイトは少ないと思います。

05AB1E、58バイト

T5+FA'uK?Au"ADLJFKST"SK?9L<5KJ?} !#$%&()*>-./:;=@[]^_`{|~\

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

繰り返される文字のために出力x12を印刷します。

['""', '55', '???', 'AAA', 'FF', 'JJ', 'KKKK', 'LL', 'SS', 'TT', 'uu']

また、完全に正しく終了せず、現在作業中です...


無効な古い回答(非ASCII文字による)が削除されました。編集履歴をご覧ください。


「逆クインとは、ソースコードを読み取らずにソースコードの逆を印刷する空ではないプログラムであり、printable-ascii文字のみで構成されています。」私はこれに気づくまで、05AB1Eの回答にも取り組んでいました。
KSmarts

1
@KSmartsは76バイトのコストで修正されました。
魔法のタコUr

2
通常、コードとゴルフのチャレンジでは、05AB1Eの方が「Javaを打つ」よりも少し良くなると予想されます。
-KSmarts

@KSmarts 肩をすくめるはあなたがesolangsを簡単に定義することによって競争させていない場合、あなたは皮肉esolangの答えに値する:Pを。
魔法のタコUr

0

ジャワ8、106の 99 190バイト

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

i {既にスペースがあるため、スペースを削除してゴルフをすることができます
-Okx

1
これが有効であるためには、すべてのキャラクターが同じ回数発生する必要があると考えています
ロベルトグラハム

課題を完全に理解しているかどうかはわかりませんが、それだけではclass i{/*!"#$%&'()+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`bdefghjkmnopqrtuvwxyz|~*/}十分ではありませんか?ソースコードにはすべての印刷可能なASCIIが含まれており、何も出力しません。「一部のソースコード内のすべての繰り返し文字の重複は、」出力に適用されるので、たとえsで重複しているclass*し、/原因に複製され/* */、4倍、何も出力しないことはまだ何もありません。
ケビンCruijssen

また、私が本当に正しいなら、あなたはそれをゴルフすることもできます:interface Z{}//!"#$%&'()*+,-.0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXY[\]^_`bdghjklmopqsuvwxyz|~97バイト
ケビンCruijssen

0

Javascript(ES6)、103 101バイト

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

古いソリューション(を使用して103バイトalert

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

古い(無効な)ソリューション(96バイト)

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

が2つ//あるため、印刷可能な文字を出力する必要があり、1つを/削除する必要があります。(私は思う)
スティービーグリフィン

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