これは、バイトというチャレンジです


32

おかしな名前を考えるのをやめる必要がある

あなたの仕事は、あなたの言語のバージョンの整数配列が昇順でソートされるスニペット(入出力が組み込まれたプログラム)、関数、または完全なプログラムをできるだけ多く作成することですが、各プログラムについてのみ許可されます以前のプログラムで使用されていなかったASCII(またはASCII以外として直接指定されている場合は言語のコードページ)の文字を使用します。

これは回答例です(改行で区切られた別々のプログラム):

Derp
ASdFGHJKLAAA
qwEEERtyRty

この(架空の言語)で、私の最初の答えはDerp、最大使用され、Derp。2番目のプログラムでは、これらのキャラクターを再び使用することはできませんが、好きなだけキャラクターを再利用できます。3番目のプログラムなども同様です。

各プログラムは整数の配列をとる必要があるため、次のようになります(有効な入出力スタイルについては、入出力の例を参照してください)。

[3 4 -2 5 7 196 -44 -2]

また、配列内のアイテムを配列として昇順で出力する必要があります。

[-44 -2 -2 3 4 5 7 196]

スコアは提出の合計額になります。同点の場合、最低バイト数(コード内の最小バイト数)が勝ちます!

プログラムの規則:

  • すべての提出は、1つの言語バージョンで正しく実行する必要があります(so Python 2 != Python 3)。
  • 提出物は、スニペット、関数、または完全なプログラムです。あなたはそれらを混ぜて一致させることさえ許されています-しかし、あなたはどちらがどれであるかを述べ、そして作業中の提出物へのリンクを提供しなければなりません。
  • 可能であれば、すべてのソリューションへのオンラインリンクを提供してください。
  • すべての送信は、入力として配列(または任意の文字で区切られた文字列)を受け取り、並べ替えられた配列を(言語の配列形式または-区切り文字列として出力する必要があり{any character}ます。
  • ASCII(または言語のコードページ)以外の文字は使用できません。

たとえば、これらは有効な入力/出力です。

[1 2 3 4]    (Clojure style arrays)
[1, 2, 3, 4] (Python style arrays)
1 2 3 4 5    (Space-delimited - separated by spaces)
1#2#3#4#5    ("#"-delimited - separated by "#" characters)
1\n2\n3\n4\n (newline-delimited)

入力の仕様:

  • 配列に整数のみが含まれることが保証されます。ただし、負の数値が存在する場合があり、数値が無期限に繰り返される場合があります。

13
しゃれが多いほど良い!

5
Brainfuckでこれを解決するのに悩むことができる人は、スコア128のLenguageソリューションを取得することを理解していますか?また、単一Glyphoのソリューションは、42得点でした
マーティン・エンダー

1
@ Qwerp-Derp少し退屈かもしれませんが、確かに実行可能です。実際、I / Oが最も厄介な部分になると予想しています(入力を文字コードのリストとして読み取ることを許可しない場合)。
マーティンエンダー

1
@WheatWizardチャレンジではASCIIが指定されているため、利用可能な文字は128個しかカウントされませんでした。
マーティンエンダー

2
言語制限に関して3つの問題があります。(1)チャレンジが得意だという理由で任意の言語のクラスを制限するのは楽しいことではありません。(2)JavaScriptなどのほとんどの「通常の」プログラミング言語(既に答えがあります)は要件を満たしていません。制限の意図、そして再び、楽しみではありません。(3)それは本当に観察可能な要件ではないと思います。「特定の機能」はあまり観察できません。いくつかの抽象化レイヤーを介して、Glyphoの文字には実際に一連の隠し変数を操作する特定の機能があると主張できます。
小麦ウィザード

回答:


15

ゼリー、10プログラム、65バイト

Ṣ
¹Þ
Ụị
Œ!Ṃ
7778Ọv
Ẋ>2\S$¿
ĠFḣṪ¥@€
~Ṁ~rṀxLœ&
C»/ð+ÆNPÆfÆC_ḷ
<þḅ1‘WiþJḄ³ṫZḢ

@LynnのJelly answerと避けられないオーバーラップがあります。bogosortアイデアの功績は彼女にあります。

オンラインでお試しください!または、一意性を確認します。

仕組み

Ṣ               Main link. Argument: A (array)

Ṣ               Sort A.
¹Þ              Main link. Argument: A (array)

¹Þ              Sort A, using the identity function as the key.
Ụị              Main link. Argument: A (array)

Ụ               Grade up; yield all indices of A, sorted by their corr. values.
 ị              Index into A.
Œ!Ṃ             Main link. Argument: A (array)

Œ!              Yield all permutations of A.
  Ṃ             Minimum; yield the lexicographically smallest permutation.
7778Ọv          Main link. Argument: A (array)

7778Ọ           Unordinal; yield chr(7778) = 'Ṣ'.
     v          Evaluate with argument A.
Ẋ>2\S$¿         Main link. Argument: A (array)

      ¿         While the condition it truthy, execute the body.
 >2\S$            Condition:
     $              Combine the two links to the left into a monadic chain.
 >2\                  Perform pairwise greater-than comparison.
    S                 Sum; add the results.
                    This returns 0 iff A contains an unsorted pair of integers.
Ẋ                 Body: Shuffle A.
ĠFḣṪ¥@€         Main link. Argument: A (array)

Ġ               Group the indices of A by their sorted values.
 F              Flatten the result.
      €         Apply the link to the left to each index in the previous result, 
                calling it with the index as left argument and A as the right one.
    ¥@            Combine the two links to the left into a dyadic chain and swap
                  its arguments, so A is left one and the index i is the right one.
  ḣ               Head; take the first i elements of A.
   Ṫ              Tail; yield the last of the first i, i.e., the i-th element of A.
~Ṁ~rṀxLœ&       Main link. Argument: A (array)

~               Take the bitwise NOT of all integers in A.
 Ṁ              Take the maximum.
  ~             Take the bitwise NOT of the maximum, yielding the minimum of A.
    Ṁ           Yield the maximum of A.
   r            Range; yield [min(A), ... max(A)].
      L         Yield the length of A.
     x          Repeat each integer in the range len(A) times.
       œ&       Take the multiset-intersection of the result and A.
C»/ð+ÆNPÆfÆC_ḷ  Main link. Argument: A (array)

C               Complement; map (x -> 1-x) over A.
 »/             Reduce by dyadic maximum, yielding 1-min(A).
   ð            Begin a new, dyadic chain. Arguments: 1-min(A), A
    +           Add 1-min(A) to all elements of A, making them strictly positive.
     ÆN         For each element n of the result, yield the n-th prime number.
       P        Take the product.
        Æf      Factorize the product into prime numbers, with repetition.
          ÆC    Prime count; count the number of primes less than or equal to p,
                for each prime p in the resulting factorization.
             ḷ  Yield the left argument, 1-min(A).
            _   Subtract 1-min(A) from each prime count in the result to the left.
<þḅ1‘WiþJḄ³ṫZḢ  Main link. Argument: A (array)

<þ              Construct the less-than matrix of all pairs of elements in A.
  ḅ1            Convert each row from base 1 to integer (sum each).
    ‘           Increment. The integer at index i now counts how many elements
                of A are less than or equal to the i-th.
     W          Wrap the resulting 1D array into an array.
        J       Yield the indices of A, i.e., [1, ..., len(A)].
      iþ        Construct the index table; for each array T in the singleton array
                to the left and index j to the right, find the index of j in T.
                This yields an array of singleton arrays.
         Ḅ      Unbinary; convert each singleton from base 2 to integer, mapping
                ([x]-> x) over the array.
          ³     Yield A.
           ṫ    Tail; for each integer i in the result of `Ḅ`, create a copy of A
                without its first i-1 elements.
            Z   Zip/transpose. The first column becomes the first row.
             Ḣ  Head; yield the first row.

15

ゼリー、8プログラム

Ṣ                   Built-in sort.
¹Þ                  Sort-by the identity function.
Ụị                  Sort indices by values, then index into list.
Œ!Ṃ                 Smallest permutation.
7778Ọv              Eval Unicode 7778 (Ṣ).
ẊI>@-.S$$¿          Bogosort.
<;0œṡ0⁸ṁjµ/         Insertion sort.
AṀ‘¶+Ç©ṬT_©®³ċЀ®x' A terrifying hack.

最後のプログラムは本当に迷惑です…

AṀ‘¶+Ç©               Add ® = abs(max(L)) + 1 to the entire list.
                      Now it’s offset to be entirely positive.
       Ṭ              Create a binary array with 1s at these indices.
        T             Find the indices of 1s in this array.
                      The result is sorted, but offset wrong, and lacks duplicates.
         _©®          Subtract the offset, saving this list to ®.
                      Now restore the duplicates:
            ³ċЀ      Count occurences in the original list.
                ®x'   Repeat the elements of ® that many times.

œṡfrom を削除できる場合は<;0œṡ0⁸ṁjµ/、次の奇妙なものもあります²SNr²ZFœ&。ヘルプは大歓迎です。


1
Roots → polynomial, polynomial → roots天才です!
ルイスメンドー

1
出力順序が逆になっているようです。幸いなことUに無料です
ルイスメンドー

ええと、負の整数…私はそれらについて何ができるかを見るでしょう
リン

もう少し必要だと思いますが、どうすれば改善できるかわかりません。
マシュー盧

@ETHproductionsが修正されました。
リン

14

05AB1E、スコア= 6

05AB1ECP-1252エンコードを使用します。

おかげケビンCruijssenプログラムの4
のおかげライリープログラム6へのインスピレーションを得るため。

プログラム1

{               # sort          

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

プログラム2

`[Ž.^]¯

`               # flatten input list to stack
 [Ž  ]          # loop until stack is empty
   .^           # add top of stack to global list in sorted order
      ¯         # push global list

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

プログラム3

WrZŠŠŸvy†

Wr              # get minimum value in input list and reverse stack
  ZŠ            # get maximum value in input list and swap move it to bottom of stack
    Š           # move input down 2 levels of the stack
     Ÿ          # create a range from max to min
      v         # for each y in range
       y†       # move any occurrence of it in the input list to the front

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

プログラム4

ϧ

œ               # get a list of all permutations of input
 ß              # pop the smallest

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

プログラム5

êDgFDNè¹sUXQOFXs}}\)

ê                      # sort with duplicates removed
 Dg                    # duplicate and get length
   F                   # for N in [0 ... len-1] do
    DNè                # duplicate and get the Nth element in the unique list
       ¹s              # push input and move the Nth element to top of stack
         UX            # save it in X
           Q           # compare each element in the list against the Nth unique element
            O          # sum
             FXs}      # that many times, push X and swap it down 1 level on stack
                 }     # end outer loop
                  \    # remove the left over list of unique items
                   )   # wrap stack in a list

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

プログラム6

©€Ý逤þ((®€Ý逤(þ(Rì

©                        # store a copy of input in register
 €Ý                      # map range[0 ... n] over list
   é                     # sort by length
    €¤                   # map get_last_element over list
      þ((                # keep only non-negative numbers
                         # now we have all positive numbers sorted
         ®€Ý逤(þ(       # do the same thing again on input 
                         # except now we only keep negative numbers
                  R      # reverse sorting for negative numbers
                   ì     # prepend the sorted negative numbers to the positive ones

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


œß追加のスコアに使用できます。ここで試してみてください。
ケビンCruijssen

@KevinCruijssen:ありがとう!私はただœ解決策を見ていましたが、私も知りませんでしたß:)
エミグナ

私は完全に正直になります、私はここからそれを得まし。;)
ケビンクルーイッセン

1
@Riley私が何か間違ったことをしていない限り、それは間違った出力を与えます
ケビンCruijssen

1
テールとポップを取得する方法はありますか?€Ý逤場合は仕事と¤それを取得した場合に代わりに値をポップ。
ライリー

11

Brachylog、スコア=  4  5

プログラム1-シャッフルソート

ṣ.↔:1≥₎∧|↰

シャッフルし、リストの逆が増加していないことを確認します。そうでない場合は、再帰的に再試行します。

プログラム2-順列ソート

p≤₁

減少しない最初の順列を出力します。

プログラム3-組み込み

o

注文。

プログラム4-組み込み

≜ᵒ

ラベル順に並べます。リスト内の整数は既に固定されているため、これはと同じoです。

プログラム5-最小印刷

g〜kKt〜lg〜kK {⌋M&〜cṪ↺Th[M]hẉTb↺c}ⁱ⁾

ここに、この自然の怪物の説明があります。

g~kK                                K = [Input list, a variable]
    t~lg~kK                         That variable is the length of the Input list
           {                  }ⁱ⁾   Iterate length-of-the-Input times on the Input:
            ⌋M                        M is the min of the input
              &~cṪ                    Ṫ is a triplet of lists which concatenate to the input
                 Ṫ↺Th[M]              T is Ṫ cyclically permuted once ccw; [M] is
                                        the first element of T
                        hẉ            Write M followed by a new line
                          Tb↺c        Remove the first element of T (i.e. [M]), cyclically
                                        pemute T once ccw and concatenate; this is
                                        the input for the next iteration


2
@NoOneIsHereそれを回避するために行をだまして拡張しました!
致命的

テール再帰+ bogosort。レシピのように見えるf-RecursionError: maximum call stack size exceeded
エソランジングフルーツ

@ Challenger5 Tailの再帰はPrologで十分に実装されているため、これは起こりません。
致命的

7

JavaScript、スコア1 2

文字列エスケープを思い出させた@ETHproductionsのおかげでスコアが2倍になりました

スニペット1(21バイト、文字\ ,-.=>289`Facehilnorstux

Function`return this.sort\x28\x28t,h\x29=>t-h\x29`.call

スニペット2(9117バイト、文字(+)[!]

[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((!![]+[])[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+([][[]]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+!+[]]+(+[![]]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+!+[]]]+(!![]+[])[+[]]+(+(+!+[]+[+[]]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+!+[]])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]+!+[]]+(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+(![]+[])[+!+[]]+[[]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(!![]+[])[+[]]]([[]])+[]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+[]])+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+([]+[])[(![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(!![]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]()[+!+[]+[+!+[]]]+([]+[])[([![]]+[][[]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[!+[]+!+[]+!+[]]]()[!+[]+!+[]]+(![]+[])[+!+[]]+(+((+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]+[+[]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+[]]+[+!+[]]])+[])[!+[]+!+[]]+(+(+!+[]+[+!+[]]))[(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(+![]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(+![]+[![]]+([]+[])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]](!+[]+!+[]+[+[]])+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])[([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(![]+[])[!+[]+!+[]]]

ブラウザのコンソールで両方のバージョンをテストできます。最初のバージョンは単なる関数であり、2番目のバージョンは括弧と引数を追加する必要があるスニペットです。

< {function snippet here}([1, -44, 65, -105, 12])
> [-105, -44, 1, 12, 65]

どうやって?

最初のスニペットは、渡された配列でsortメソッドを呼び出します。デフォルトでは、ソート方法は辞書式にソートしますが、これは整数(特に複数桁の負の数)には適していません。そのため、2つの要素を取り、前者から後者を減算する矢印関数の形式でコールバックを渡す必要があります。結果の値に応じて、2つの要素は再配置されます:0より小さい場合、aba表示されb、0より大きい場合、後に表示され、0の場合、両方の要素が隣り合わせになります。

2番目のスニペットは、最初のスニペットのエンコードされたバージョンにすぎず、JavaScriptでobject.function()が等しいという事実を利用していますobject["function"]()。また、空の配列、!演算子、および数値キャストを使用して、すべての種類の文字列を生成し、関数名に必要な文字を見つけることができます。次に、ブラケットをもう一度使用して、文字列内の特定のインデックスにある文字を取得し、それらのすべての文字を連結して、次のJavaScriptコードを作成します。

[]["fill"]["constructor"]("return this.sort((a,b)=>a-b)")["call"]

[]["fill"]equals [].fill、これ["constructor"]Functionオブジェクトです。次に、最初の関数である文字列(関数の呼び出し時に評価される)を使用して呼び出しますが、引数がに置き換えられていることに注意してくださいthis。の値をthis引数に設定するには、この関数で関数、つまりを呼び出す必要があります["call"]。従来のJavaScriptでは、次のように記述します。

function _() {
    return this.sort((a,b)=>a-b);
}
_.call(argument);

代わりにバックティックを使用して、括弧なしでソリューションを取得することは可能です。Function`return a=>a.sort\x28\x28a,b\x29=>a-b\x29` 例えば、しかし文字を使用せずに、あなたはすでに使用されてきました
ETHproductions

それは重要ではありませんが、おそらく、JSFがそのcharを生成するものの代わりに導入'して実行することで、2番目のスニペットでかなりのバイトを節約できます'('。(また、使用fおよびtvarsの代わりになどabb文字通り3000の文字についての費用)
ETHproductions

7

V、スコア3、4

これは本当に楽しいチャレンジでした!ありがたいことに、vimには組み込みの「ソート」機能があります。そうでなければ、これは基本的に不可能です。残念ながら、V / vimは文字列ベースであるため、数値でソートするには引数が必要です。だから私は電話しています

  • 数値で並べ替えn

  • 16進値xでソートし、

  • 浮動小数点値で並べ替え f

ちょっとした注意:<esc>またはのようなものを書くとき<C-r>、これは実際にはシングルバイトです。これは印刷できない文字を表し、残念ながらVは印刷できない文字に大きく依存しているため、この方法はすべてを簡単にします。TIOリンクには-vフラグがあり、Vインタプリタはそれらを表す文字であるかのようにこれらを読み取ります。

プログラム1、2バイト

ún

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

これにより、V固有のソート関数が呼び出されます。

プログラム2、10バイト

Qsor x
vi

これは単に「ソート」を直接呼び出します。これに関する唯一の興味深い点はex、Vのgreat祖父であるテキストエディタ「ex」をエミュレートする奇妙なモードであるモードから実行することです。viは、visualexモードを終了するために使用されるコマンドのショートカットです。これには、末尾の改行が必要です。

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

プログラム3、14バイト

OSOR X<esc>V~DJ:<C-r>"

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

さて、ここから説明が少し奇妙になり始めます。テキストを作成できる場合はsor x、それを削除して現在のコマンドに挿入できます<C-r><register-name>。したがって、大文字で入力します。

O                       " Open a newline above the current line, and enter insert mode
 SOR X                  " From insert mode, enter 'SOR X'
      <esc>             " Leave insert mode
           V            " Select this whole line
            ~           " And toggle the case of every selected character ('u' would also work here)
             D          " Delete this line (into register '"')
              J         " Get rid of a newline
               :        " Enter command-line mode
                <C-r>"  " Insert register '"'
                        " Implicitly hit enter, running the 'sor x' command
                        " Implicitly print the buffer

プログラム4、19バイト

YPC<C-v>58fbe a<C-c>g?_dd@1

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

そして、ここから説明が非常に奇妙になり始めます。前回と同様に、異なるキーを使用できるように、通常モードでコマンドを作成します。

YP                          " Create a copy of this line up one line. This is mostly so that we have a line to work with without messing with the numbers.
  C                         " Delete this line and enter insert mode
   <C-v>58                  " Insert ASCII '58' (which is ':')
          fbe a             " Insert 'fbe a'
               <C-c>        " Pretty much equivalent to <esc>
                    g?_     " ROT13 this line. Now the line is ':sor n'
                       dd   " Delete this whole line
                         @1 " And run it as if typed

6

CJam、スコア4

プログラム1:組み込み

$

プログラム2:評価済みビルトイン

36c~

36はのASCII値です$

プログラム3:順列ソート

e!0=

e!     e# Find unique permutations of the input
  0=   e# Take the first one, which happens to be in sorted order

プログラム4:最小値

[{__)\;\{_@_@<{\}&;}*^{1m<}{)\}?}h;]

この不気味な怪物の説明:

[             e# Begin working in an array
{             e# Do this block while the TOS is truthy (doesn't pop)
 __           e#  Duplicate TOS twice (the array)
 )\;          e#  Take the last element of the array
 \            e#  Swap top two elements, bringing the other array copy to the top
 {            e#  Reduce the array using this block
  _@_@<{\}&;  e#   The minimum of two values (e was already used, so can't use e<)
 }*           e#  (result is the minimum value from the array)
 ^            e#  Bitwise XOR of last element with minimum element;
              e#   if the numbers are the same, result is 0, otherwise non-zero
 {            e#  If non-zero (i.e. last element wasn't the minimum element)
  1m<         e#   Rotate the array 1 to the left
 }{           e#  Else
  )\          e#   Remove the last element and bring the array back to TOS
 }?           e#  (end if)
}h            e# (end do-while)
;             e# Remove the empty array left behind
]             e# End the array

それがどれほど役立つかはわかりませんが、必要(+1m<応じて代わりに使用できます。
マーティンエンダー

私はすでに使用しています@MartinEnder <それはに固執する方が良いでしょうですので、そのスニペットに1m<
ビジネス猫

私は必ず私がブロックを使用せずに、とにかくもうやることができるでしょうじゃないけれども...
ビジネスキャット

5

Japt、スコア= 4

プログラム1

n

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

プログラム2

ñ

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

プログラム3

s)$.sort((a,b)=>a-b

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

プログラム4

Ov85d +110d

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


1
良いですね。を実行することで3番目のプログラムでUを保存できると思いますs)$.sort(...
-ETHproductions

@ETHproductionsありがとう。とにかくもっともっとできるかどうかはよくわかりません。使用されているためO、これ以上JaptまたはJSを評価できません$。他の並べ替え方法を考えていただければ、提案をお待ちしています!:)
トム

4

オクターブ、2ポイント

エソランと競争するのは難しいが、ここに行く:

誰かがこれを破ったら感動します。unique値のソートに使用できますが、重複を取り除きます。重複を挿入するには、括弧が必要になります。これらはバブルソートで頻繁に使用されます。また@、も使用する必要があります。

番号1:

これは非常に簡単ですans。変数に割り当てられた匿名関数を作成します。

@sort

次のように呼び出しますans([-5, 3, 0, -2, 100])。tioでは機能しませんが、octave-onlineでは機能します


2番:

これは、文字を使用せずに、単にバブルソートを実装したもの@sortです。のためにこれを関数にすることoはできません。inputまた、のために使用できませんt。そのため、にこだわっていevalます。

eval(['a=inpu',116,'("");']);i=1;k=0;
while~k,k=1;i=1;while i<numel(a),if a(i)>a(i+1),a([i+1,i]) = a([i,i+1]);k=0;
end,i++;end,end,a

eval(['a=inpu',116,'("");']);a=input("");入力ベクトルを入力するために使用できる:に評価されます。残りはforまたはを使用しないバブルソートmodです。これはスクリプトに保存し、GUI / CLIから呼び出す必要があることに注意してください。input("")(残りのコードを入力として使用するため、惨めに失敗するため)コピーアンドペーストできません。


4

Haskell(lambdabot)、3つの関数

sort


vv v|vvv:vvvv<-v=vv vvvv|v==v=v
vvvv==:vvv|vvvv==vv vvvv=vvv:vvvv|v:vv<-vvvv,vvv<v=vvv:v:vv|v:vv<-vvvv=v:vv==:vvv
vv=:vvvv|v:vvv<-vvvv=vv==:v=:vvv
vv=:v=vv
v vvv=vv vvv=:vvv


fix(ap(min).ap((++).flip(map)[1].(.(0*)).(+).minimum).(.ap(\\)(flip(map)[1].(.(0*)).(+).minimum)))

大量のimportステートメントを回避するために、lambdabot環境を使用しています。sortニーズさえimport Data.List。lambdabotはデフォルトで多数のモジュールをインポートします。不足importsしていることに加えて、それは私たちのルールによると標準のHaskellコードです。

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

機能1

sort

のライブラリ関数Data.List。ここで言うことはあまりありません。

機能2

vv v|vvv:vvvv<-v=vv vvvv|v==v=v
vvvv==:vvv|vvvv==vv vvvv=vvv:vvvv|v:vv<-vvvv,vvv<v=vvv:v:vv|v:vv<-vvvv=v:vv==:vvv
vv=:vvvv|v:vvv<-vvvv=vv==:v=:vvv
vv=:v=vv
v vvv=vv vvv=:vvv

関数vは挿入ソ​​ートを実装します。

()パラメータを避けるためにパターンガードを使用します。と比較vv v|vvv:vvvv<-v=...してくださいvv(vvv:vvvv)=...

1行目のfunction vvは、空のリストを作成するヘルパー関数です。これにより、[]リテラルの空のリストを作成するために使用する必要はありません。より読みやすい:

mkEmpty list | hd:tl <- list = mkEmpty tl | otherwise = list

(==:)insertは、要素をソート済みリストに挿入し、結果のリストがソートされたままになるようにします。より読みやすい:

list `insert` el
  | list == []           = el:list
  | hd:tl <- list, el<hd = el:hd:tl
  | hd:tl <- list        = hd : tl `insert` el

(=:)削減されます。より読みやすい:

acc `reduce` list
  | hd:tl <- list = (acc `insert` hd) `reduce` tl
acc `reduce` list = acc

そして最後vに、入力リストを次のように減らします[]

sort list = [] `reduce` list

機能3

fix(ap(min).ap((++).flip(map)[1].(.(0*)).(+).minimum).(.ap(\\)(flip(map)[1].(.(0*)).(+).minimum)))

sort機能1からリスト・歩行機能(のほとんどになりfoldscanuntil)使用できませんが。=関数2で使用される再帰が必要fixです。残っている唯一のオプションは、固定小数点コンビネーターを使用することです。私はで始めました

fix (\f x -> min x ([minimum x]++f(x\\[minimum x])))

これは選択ソートです。それをポイントフリーに変える(ラムダを使用することはできません。これは、関数2のパターングラードで使用されている\f x ->...ためです-):

fix (ap min . ap ((++) . return . minimum) . (. ap (\\) (return . minimum)))

で値からシングルトンリストを作成することreturnは禁止されている(と同じpure)ので、独自の関数を作成する必要があります:\x -> map (\y -> x+0*y) [1]またはpoint-free flip map[1].(.(0*)).(+)return利回りの置き換え

fix(ap(min).ap((++).flip(map)[1].(.(0*)).(+).minimum).(.ap(\\)(flip(map)[1].(.(0*)).(+).minimum)))

2

MATL、3プログラム

プログラム1

S

これは、暗黙的な入力と表示を伴う組み込み関数を使用するだけです。

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

プログラム2

`GGnZrd0<a}3M

これは、結果のすべての連続する差が負でないまで、入力のランダムな順列を生成し続けます(これは@czで示されるようにbogosort です)。実行時間は非決定的であり、その平均は入力サイズとともに非常に速く増加します(つまり、すべてのエントリが異なるサイズnの配列の場合、𝒪(n!))。

MATL Online試しください。

プログラム3

t:"tt_X>_=&)]&h

これは、配列の最小値を計算し、その値に等しいすべての要素を削除し、残りを処理するループです。これは、入力サイズと同じ回数行われます。入力内のすべてのエントリが異なるわけではない場合、配列はすでに空になっているため、反復の一部は役に立たない(ただし無害です)。

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


1
良い横思考!
グレッグマーティン

それはボゴソートですか?
c ..

@cz googles bogo-sort Indeed!TIL
ルイスメンドー

1

ピップ、4プログラム

プログラム1-組み込み

スニペット; のリストを想定していxます。

SNx

SN数値のソート用)

プログラム2-フィルター順列

スニペット; のリストを想定していyます。約7項目より長い入力の場合、非常に遅くなります。

Y$<=_FIPMyPOy

       PMy     List of permutations of y
     FI        Filter on this lambda function:
 $<=_           Fold on less-than-or-equal
                (gives 1 if the permutation is sorted ascending, 0 otherwise)
Y              Yank that result back into y
               Filter returned a list of (one or more) permutations, so we need to
          POy  Pop the first one

プログラム3-評価

スニペット; のリストを想定していzます。

V J C[83 78 122]

    C[83 78 122]  Apply chr to each number; yields ["S" "N" "z"]
  J               Join that list into a string
V                 Eval

プログラム4 -MergeSort

無名関数; 引数(などのリストを呼び出します({...} [1 2])f:{...} (f [1 2])

{b:#a>o?(fa@(,#a/2))lc:#a>o?(fa@(#a/2,()))aa:lWb{Wb@0>c@0|b@0Qc@0{aAE:c@0c@>:o}t:bb:cc:t}aALc}

ゴルフをしていない:

{
 ; If more than one element in a, b gets result of recursion with first half
 ; else b gets l (empty list)
 b: #a>o ? (f a@(,#a/2)) l
 ; If more than one element in a, c gets result of recursion with second half
 ; else c gets a
 c: #a>o ? (f a@(#a/2,())) a
 ; Now we merge b and c
 ; We'll put the results in a, which must be initialized to l (empty list)
 a:l
 ; Loop while b is nonempty
 W b {
  ; Loop while 0th element of c exists and is less than or equal to 0th element
  ; of b (note: Q is string equality)
  W b@0>c@0 | b@0Qc@0 {
   ; Append 0th element of c to a
   a AE: c@0
   ; Slice c from 1st element on and assign that back to c (removing 0th)
   c @>: o
  }
  ; Swap b and c
  t:b
  b:c
  c:t
 }
 ; When b is empty, we only need append the rest of c to a and return
 aALc
}

1

PowerShell、2

|sort

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

これは、(たとえば)PowerShellのREPLに相当するもので実行されるスニペットです。TIOリンクには使用状況が表示されます。sort別名であるSort-Objectコマンドレットを使用します。


PARAM($A)[ARRAY]::SORT($A);$A

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

PowerShellコマンドでは大文字と小文字が区別されないためsort、一方とSORT他方で使用できます。これは入力配列を受け取り、その配列をその場でソートしてから出力します。


1

Ruby、2つのプログラム

最初の-簡単な:

->t{t.sort}

第二-トリッキーな部分:

def w(g)
    eval ""<<103<<46<<115<<111<<114<<116
end

0

J

プログラム1:3バイト

/:~

以下のように/:~ 3,1,2,1出力1 1 2 3

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

Jの注では、負の数の前に_ではなく-を付けて、4、_10,56、_333などを試すことができます。

プログラム2:5バイト

|.\:~

コードが正しく表示されるように回答を修正しました。いい答えだ!また、Try it onlineTIOのWebページにリンクしているため、回答内のページをリンクするには、次のようにします[displayed text](link)
clismique

ありがとう!始めたばかりなので、ゆっくりと理解してください!今より良く見えると思います。あなたの助けに感謝します。リチャード
リチャードドノヴァン

作成するプログラムは文字を共有できません。AS-され、:そして~それらの両方で発生します。
リン

0

PHP 7、2プログラム

どちらのプログラムももっとゴルフできます。

プログラム1、254バイト、文字 ! "$&+.01:;=>?[]adeginoprtv

$a=$argv;0 .$a[1+1]?$i=$n=$d=0:print$a[1]and die;g:$r=0 .$a[++$i+1];$i=!$r?1:$i;$n=!$r?$n+1:$n;$v=$i+1;$d=$v>$d?$v:$d;$n>$d?print$a[$d]and die:0;$e=$d>$n&&$a[$i]>$a[$v];$t=$a[$i];$a[$i]=$e?$a[$v]:$a[$i];$a[$v]=$e?$t:$a[$v];$n==$d?print"$a[$i] ":0;goto g;

バブルソート。goto組み込みループが必要とするループを作成するために使用します()

プログラム2、155バイト、文字 #%'(),-67ACEFINORTUYZ^_{|}~

IF(CREATE_FUNCTION('','NEFTIEZIENAECCERCTZIENA~N~UEEFECTZIENAUERTEF~CFACTY~YRZIENAUE'^')))6()~(7)7~6-677|~(7)7%~#|~6)77|~(7)7|~77-)^))(-|~^~~~(7)7|~')()){}

IF(...){}の使用を回避します;$前のプログラムですでに使用されているため、メインコードはXORでエンコードされています。コード:

global$argv;unset($argv[0]);sort($argv);echo join(' ',$argv);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.