新年のリサイクル


23

2015年の適切な解決策は、より持続可能な生活を送ることです。リサイクルから始めます。リサイクルコード、つまり!

あなたの仕事は、2015末尾の改行の有無にかかわらず(そしてそれだけで)STDOUTに番号を印刷することです。ただし、PPCGからいくつかの古いコードをリサイクルして、そうする必要があります。仕組みは次のとおりです。

  • 2014-12-16 00:00:00Z(サンドボックスに投稿した日)より前にCodeGolf.SEに投稿された回答を選択してください。例外:昨年の新年のチャレンジからの回答は使用できません。
  • その回答からコードブロックを1つ選択します(インラインコードスニペットではなく、独自の段落である必要があります)。このブロックは、実際のコードとしてアドバタイズする必要があります。たとえば、たまたま固定幅書式を使用するテストケースや出力例を使用することはできません。
  • このチャレンジの提出物を形成するために、そのコードブロックの文字を再配置します。順序の変更のみが可能で、文字の追加や削除はできません。これには改行が含まれます。
  • 元のソースブロックが言語で構文的に有効であることを示すことができる必要があります。最良の場合、コンパイル時または実行時エラーなしで実行されることを示すことでこれを行うことができます。したがって、元のコードはJavaであったかもしれませんが、(すべてのファイルがWhitespaceで有効であるため)ホワイトスペースの回答に使用できますが、おそらくPythonの回答には使用できません(元のコードは有効なPython構文ではないため) )。

答えは、すべての入力および外部状態(実際の現在の日付を含む)を無視する必要があることに注意してください。これは、可能であれば空の場合、それがクラッシュしないよう、言って、STDINから読み込むと、ストリームのすべての可能な内容で同じ出力を生成します。

結果のコードは、完全なプログラムである必要があります(関数でも、REPL環境を想定したスニペットでもありません)。

これはコードゴルフなので、最短回答(バイト単位)が勝ちます。

リーダーボード

これは、異なる言語で非常に異なる結果になると確信しています。したがって、次のStack Snippetは、通常のリーダーボードと言語ごとの勝者の概要の両方を生成します。

回答が表示されるようにするには、次のマークダウンテンプレートを使用して、見出しから回答を開始してください。

# Language Name, N bytes

N提出物のサイズはどこですか。スコアを改善する場合、古いスコアを打つことで見出しに残すことができます。例えば:

# Ruby, <s>104</s> <s>101</s> 96 bytes


すべてのホワイトスペースプログラムが有効なわけではありません。ideone.com/Jphkf3で
Ypnypn

この疑問が思い浮かびました。元のコードの大部分をコメントアウトする方法で元のコードをリサイクルすることは許可されていますか?
ProgramFOX

@ProgramFOXはい、なぜならあなたがたくさんコメントアウトしなければならないなら、おそらくあなたのスコアを傷つけるからです。
マーティンエンダー

@Ypnypnこれは、構文エラーではなく、実行時エラーのように見えますよね?
マーティンエンダー

回答:


22

GolfScript、9バイト

オリジナルの答えは(DIBを!)私はそれが構文的に有効である知っている方法ですGolfScriptでもあります。http://golfscript.apphb.com/でテストしました。

2015}{.**

私はゴルフ用に設計された言語の使用を軽んじていますが、この挑戦​​に勝たなければならなかったので、この答えを投稿することで自分の価値を裏切りました。ほとんどのキャラクターがこの言語で何をしているのかはわかりませんが、GolfScriptの回答をざっと読みながら}、プログラムの残りの部分で一致しないコメントが出ていることを偶然知りました。これにより、残りのキャラクターを無視することができました。


1
ええと、GSで比類のないブレースが有効だとは思いませんでした。
マーティンエンダー

3
@MartinBüttnerこれを見たことがありませんか?
FryAmTheEggman

16

Befunge-93、2085バイト

私は楽しんで、リサイクルされたものをリサイクルしてメタになると思った。ここでは簡潔さの表彰は受けません。

+2012+1+1e1 or b+bbv+b+NN
"a"""""
p((('?'.ord-' '.ord )/(1.0/'A'.ord)).to_i)
<<id
                   1
                   !
                   _"  fabaaaca"-.-.-.-.+"O"2::++p

aa
AaAAaAAaAAaAAaA
eEe ddd OoOOoOOoOOoOOoOOoOOoOOoOOoOOoO ddD Ccc eEE
ccc LLl
SssSss LLl
SsS LLl
SsSSsSSsSSsS LLl
cccccc
mMm



+   +     a     pppp  pppp  y   y     n   n eeeee +     +    y   y eeeee     a     rrr    "
+   +    a a    p   p p   p  y y      nn  n e      + + +      y y  e        a a    r  r   "
+++++   aaaaa   pppp  pppp    y       n n n eee    + + +       y   eee     aaaaa   rrr    "
+   +  a     a  p     p       y       n  nn e       + +        y   e      a     a  r  r
+   + a       a p     p       y       n   n eeeee   + +        y   eeeee a       a r  r   "



Hope to see another round of awesome programming puzzles and code golf challenges

===============================
"" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" " ' ' ' ' '

Big char dump below (will clean up if there's more languages to squeeze in):

  $$$$$$$()++++++++++++++++++++++++++++--------------------------/////:::;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<>>>>>??AAACCDDEEEFHHLLMMMMM
NOOOOOOOOOOORRRRRRRRRSSSUUUUV[\]___aaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
bbbbbbbbbbbbbbbbbbbbbbbcccccccccccccddddddddddddddddddddddddddddddddddddddd
ddddddddddddddddddddddddddddddddddddddddddddddddddeeeeeeeeeeeeeeeeeeeeeeeee
eeeeeeeeeeeeeeeeeeffffffffffghhhhhhiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiilll
llllllllllmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnnnnnnnnnnnnnnnnn
nnnnnnnnnnnnnoooooooooooooooooooooooooooooooooooooooooooooooooppppppppppppp
ppppppppppppprrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrsssssss
ssssssssssssssssssssssssstttttttttttttttttttttttttttttttttttttttttttttttttt
ttttttttttttttttttttttttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
uuuuuuuuuuuuvvvvvvvvwwxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyzz{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}

"""
one=1
print(int(ord('A')/(one/(ord(' ')-one))))
id
"mOO"

これは、実際には5つの言語の多言語です:Befunge-93oOo CodePyth、Python 3およびRuby。ただし、元のコードはBefunge-93でのみ構文的に有効であるため、私はそれだけをカウントしています。

残念ながら、元のコードにはsのペアが1つしかなく、sが[]多すぎた.ため、実際にBrainfuckを組み込むことができませんでした(したがってoOoコード)。


ノート

次の理由により、これは驚くほど制限的であることが判明しました。

  • 使用可能な数字の完全なセットはです。RubyおよびPythonの001111111222使用が必要ordです。特に5、Pythにとって苦痛であることが判明したがありません。
  • Befunge を配置するために使用する必要がある@ことを意味しpていません@
  • 欠如は*、数の逆数で割ることによって乗算しなければならなかったことを意味しました。楽しい。

Befunge-93

Befungeプログラムは

                   v
                   1
                   !
                   _"  fabaaaca"-.-.-.-.+"O"2::++p

役に立たない指示をスキップしました。私たちは、特に文字、間のASCII値の差として各桁をエンコードcabfa

oOoコード

対応するBFは

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

、唯一の関連部分は

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

パイス

Pythは最初の行のみを実行するため、

+2012+1+1e1 or b+bbv+b+NN

Pythはプレフィックス表記を使用するため、行の最初の部分は実際には

2012 + (1 + (1 + (1 % 10)))

注:をe意味します%10

Pythの性質により、これは自動的に印刷されます。行の残りは有効なPythですが、前のスペースoは自動印刷を抑制します。

Python 3

Pythonコードの大部分は、文字列、特に中央にある3つの大きな引用符で囲まれた文字列を使用してコメント化されています。いくつかの浮遊ストリングを無視すると、次のようになります。

+2012+1+1e1 or b+bbv+b+NN
"""
...
"""
one=1
print(int(ord('A')/(one/(ord(' ')-one))))
id

最初と最後の行は構文的に有効ですが、何もしません。中央の2行は、必要なものを印刷します。

ルビー

Rubyのコードも似ていますが、プログラムの大部分をコメントアウトするために、三重引用符で囲まれた文字列の代わりにheredocを使用しています。いくつかの浮遊文字列を無視すると、次のようになります。

+2012+1+1e1 or b+bbv+b+NN
p((('?'.ord-' '.ord )/(1.0/'A'.ord)).to_i)
<<id
...
id

繰り返しますが、最初の行は構文的には有効ですが、何もしません。2行目は必要なものを印刷します。


4
へえ、あなたは間違いなく「最短コード」賞を授与されませんが、創造性のために+1されます!
ドアノブ

11

CJam、12バイト

T~mp[]!_1+oE^

スクランブルを解除コードのトピックは、乱数印刷のための本当に良いソースです。これはつなぎ合わせるのがとても楽しかったです:)

T~     bitwise not of 0 is -1                     [-1]
mp     replace with 0 as -1 is not prime          [0]
[]!    not of an empty array (falsy) is 1         [0, 1]
_      copy that 1                                [0, 1, 1]
1+     add 1                                      [0, 1, 2]
o      output top of stack                        [0, 1]           2
E      push 14                                    [0, 1, 14]       2
^      bitwise xor                                [0, 15]          2
       (CJam implicitly prints stack afterwards)  []               2015

ボーナス回答

14バイト:

36.e8 .79e2%15

19バイト:

0_*1_)@@{_%\_)*\};5

7

ダチョウ、198

ダチョウの回答が得られることを楽しみにしています。どれだけ長くても構いません。:P(ちなみにこれはバージョン0.5.0です

{: rotate ( circ n -- )
    neg swap change-circular-start

IN: 1 9 [a,b] <circular> dup 6 rotate >array .
{ 4 5 6 7 8 9 1 2 3 }
IN: 1 9 [a,b] <circular> dup 3 rotate >array .
 7 8 9   3 4  6 };2 n15

オリジナル

: rotate ( circ n -- )
    neg swap change-circular-start ;

IN: 1 9 [a,b] <circular> dup 6 rotate >array .
{ 4 5 6 7 8 9 1 2 3 }
IN: 1 9 [a,b] <circular> dup 3 rotate >array .
{ 7 8 9 1 2 3 4 5 6 }

変更したのは次のとおりです。

  • すぐにポップ()2 n15されるブロック({})以外のすべてをラップしました;

  • 2 n15最後に立ち往生。2をプッシュし2、をnプッシュし0、を15プッシュします。15これは最終的2015に出力時になります。

これは実際にバグを見つけるのに役立ちました:2n15何らかの理由で動作しません(印刷されます215)が、両方2 n152n 15動作します。その理由を理解する必要があります。

この完璧なコードサンプルを見つけるために使用した検索クエリは次のとおりです。

created:.. 2014-12-16 is:answer code: "2" code: "0" code: "1" code: "5" code: "]" code: ";"

この答えは140で有効ですが、もっと小さくできるかどうかを確認します。


7

JavaScript、26バイト

オリジナル

alert(998|(103>8>0&41>-0))

リサイクル済み:

alert(4030>>(998>1|8&1-0))

4030を1ビット右にシフトします。


5

CJam、14バイト

これは少し難しいので、少し長くても投稿しなければなりませんでした。元の回答もCJamにあるため、有効です。

元の回答:

92e8.17 5e6.3%

リサイクル2015:

9.68e3 .7e2%15

使い方

9.68e3 is 9680
.7e2 is 70
9680 70% is 9680%70 = 20
15 is 15

したがって、スタックには次のものが含まれ2015次々に印刷され、2015

こちらからオンラインでお試しください


5

マーベラス、54バイト

退屈な答え(54バイト)

32303135
:R
:Q
++003333333567QQRR}0

(その後に54バイトに相当する大量の末尾改行が続きます)

元の回答

メインボードは単にのキャラクターを表すビー玉を落とし2015ます。RそしてQボードは定義されていますが、使用されることはありません。

別の回答(92バイト)

3W!!?0]]>W/\&0&1@1@0@0
      ]]>W/\&0&1@1@0@0
                @1  @0
03  02
\\  //
32+A
  Dp

元の回答

空白セルとしてのスペースをチェックする必要があります。これは最初に2(0x32)を印刷0x03+0x02+0x0A=0x0F=15し、次に3桁の10進数(015)として印刷します。最初の3行は何もしません。

ここで答えをテストします。


4

Pyth、25

https://github.com/isaacg1/pyth

J6ifqT++2010/JJ4U*2^TJ^TT

これが元の答えです(これもpythで書かれています)。私はこれが非常に競争力のある答えではないことを知っています(長さ26のPythonの答えがあります)が、私はこれを思いつくのが本当に楽しかったし、かなりユーモラスな答えになると思います。

説明:

J6                           : J=6
  i                   ^TT    : convert_to_base(..., 10 BILLION)
   fqT          U*2^TJ       : filter(lambda T: T==..., range(2*10^6)
      ++2010/JJ4             : 2010 + J/J + 4

基本的に、これは2015年に等しい最初の200万の数字のリストをフィルター処理します。その後、この数字のリストを10進数の10進数の数字として扱います。ありがたいことに、範囲内に2015に等しい数値が1つしかないため、2015 * 10000000000 ^ 0を取得します。これは2015年です。これには実行に数秒かかります。




2

Mathematica、60バイト

⌊DF@IM~RS~ad~ee~ee~ggggiiimmnnoorrrstt~.22346⌋Print@2015

ソース

Floor括弧内の部分は、存在しない関数の一連の関数アプリケーションです(シンボリック計算モデルのため、Mathematicaには問題がありません)。同様に、フローリングを書いて、Print@2015で乗算です。これについてもMathematicaは文句を言いません。構文糖がなければ、

Floor[ggggiiimmnnoorrrstt[ee[RS[DF[IM], ad], ee], 0.22346]] * Print[2015]

REPL環境を想定していないため、この評価結果は決して出力されません(これは Null Floor[ggggiiimmnnoorrrstt[ee[RS[DF[IM], ad], ee], 0.22346]])が、Print実際にはSTDOUTの副作用のみが出力されます。

これにソースを提供してくれたSp3000に感謝します。


2

> <>、57バイト

RadioASCIIチャレンジの元のC ++コード:

#include <cstdio>
int main(){int x;printf("Lawrencium");}

リサイクルされた> <>(魚)コード:

eclne)nfn;
   ""#(();<>Laaccddiiiiiiimmnnnoprrsttttuuwx{}

Befungeと同様に、> <>はスタックベースの2D言語です。実行は左上から始まり、最初は右向きです。次の方法で、プログラムの最初の行のみが実行されます。

e      Push 14                          [14]
c      Push 12                          [14, 12]
l      Push the length of the stack     [14, 12, 2]
n      Output as num                    [14, 12]          2
e      Push 14                          [14, 12, 14]      2
)      Push 1 if greater than else 0    [14, 0]           2
n      Output as num                    [14]              20
f      Push 15                          [14, 15]          20
n      Output as num                    [14]              2015
;      Terminate                        [14]              2015

さて、大きな問題は、C ++コードがなぜ有効なのかということです。> <>には、プログラムフローの方向を変更する方法があります(結局2D言語です)。

^>v<     Arrows which direct program flow a certain direction
_/|\     Mirrors which reflect the direction of program flow
#        Four-way mirror, reflect from all directions

C ++コードが実行されると、イニシャル#はプログラムフローを左方向に反映します。しかし、> <>はトロイダルであるため、命令ポインターは折り返され、行の終わりから表示され、>プログラムの流れを再び右に向けます。次に、ポインターはに戻り#>...に戻ります。したがって、無限ループが発生し、エラーはスローされません。


1

Python 3、1878バイト

非常に長いですが、とにかく共有したい:

import sys,re,zlib as z,base64
print(2015)#,PIL.Image as ire.search(str(z.adler3(i.open(sys.argv[1]).tobytes()[2::6])%203)+'(\\D+',z.decompress(base64.b8decode(b'c${Tc%XZ>86NyfdNqBH<%b?iLI_EpFkwO-GfQC$tcfjoB$+h*^;0s?o$g*?uzgjxs%~BKif!C3zALZEU!&?wJd#-mqgS@p<P&+)AsV|c*52*C>U&(_4w^urvvWJU8Bj;bvv4ia;eiJLu+bsXLru`DjH|W<`|;xLq++kv5k8VWZgQe*`_u+opEF8>A6qjM%k#skzbiuJ7dL_*><K@9l6!M*H(|w)PZJ2`RYy7K2VVrv+zc)&2Fc?wvh|^#ksyymE?D!Q$3!LbFX%h%vT%1#lr486Iybw?0!`H)ZlZ#XIao2uXTr}(IBl@wRWHa#})bgV);O3HoW7+T*!5M3=^mu6Ri$`7L;uUWj~gsqR6gQR9h7^nKdBIgy>ats36%|M|8p1x;32(ZfK9R5_xK5ts=Sz70c%SIK&g3N1E|sg{n3>JSbKwwhssGcb$8uMNw=Nv;f_;rj?}kz(3-&#FQw@O;q(8nGHjbrTC(NQv=ckXT|eHr|amahCq(7T6<LBTr5Gj>fHV~3DcYINN!Qr`6Dl?jT>!4u5~bb%Zi6VTax;%vg*m325J_$nEC%yqbbYeEp!K_K7k)W-XCP`6+}N7tktMVX+{@c2L&kLAc&IvspGrzZ$F`uOBg}fA3W2neAU}tg~<+iCN=<sR^Zke+9WNhnCyy6!8nfa>33&OWiPt2s=OMTrUgilSYQxrG!gziB!Aj83zX&6S|yjIQkA?iF0n%?<+B=%_D11aoCv?@Q&eei{sqNkr7RG`#*xyzSUE6BUNnZK)3|3Wls}K$qaKv;jOO#!{3Ms)4CQ?shafnAF^zVq(`K9o2xL5JoQoGea+W1$+xmw&8OMOtN1Pid6UAcd+*_bB6IY$KjrO=ac^tPv3(8O`&(agOBbT{Va6s}Rm9&`I#yivC;MhW8=n+^^&Reho;~!~W<xgH6bVq3^=H7)sUXV2nv~DP4`CY`f55i&qH)DvPMQy>)y*Z=|68w@v=#oo5^RSh5R2F%1-vt>h=|+1n0pE^Yq-72!)1+o{hD_3<Cyxpyr6r%cei-AFQ*h1seM$MP>ovLS2k#Ci$to#do$s3MXu2lZsw~9HkbjVWM@1!{w>}LWVj#j2qC(+*Okc>=<qcV}*}+U_QK+(ZZ(x>ZMdDDWtgHiBK+7p6aHHI`u-h6z7|Xm`>D1t4uEp271y7oCI^{1^H~O7QRxTA_U&92Q8z$J2O|5Lbeg_0umd^pSU<%-ki7LtDvo&AgIt0h~6(y@Hr+kyLJ$<B#07KdGob0EW$7@f{GszaUv#tkpSyk759Khmvq-aiyM-_&x_VCTx$Vy<;$<k{T$-@{Mhc<<%KD1AHK^MKkg%pYIW}SxhV?&a{o9=rs@*+hqyoioE=TF>9S<KxY+^69^OA0jkS#0!w@kw4}KTcP9#+PVW+qB|7B`Y?eRs+7}8RSAs?i?-Cz#Wp(Iihd`nI!Q_i%R^o_;fvDQ5|{Cr;yWeirL>_l#(wn)$QenJkK6Sgw)5NleBzvo&G#@>X`7Ib*aS4LHx9epI%BXXV&y7LJ&54g}D25-Q8>DZQ5hGKyIeJkQQu08%j|<x~)q(AOVw9P~Z*c0Z@VM6n#<}tBT6+T%4mZ9f*y76xlEFM~o$xr9*SZHd^6D-C!pkkp3m(-~W3&>KY@106L+;I><MJ^Dz`f{(I3i?u`2pWjUjlwZx`B1JB#h#u3xTH*b1K?TG40|4lxF1$_Pw+t?h2')).decode()).group(1))

KennyTMの回答から引用

2、0、1、5、および#がコード内で見つかることがわかったので、作成するためにいくつかの文字を移動print(2015)し、残りをコメントアウトできました。また、PILインポートをコメントに入れたため、そのライブラリは必要ありません。


1

PHP、21バイト

<?=65*4*31*2/8;//7**9

これをもう一度試してみましょう。Unscramble the Source Code からの別のPHP回答から取得。それはかなり基本的ですが、これまでのところ、非ゴルフ言語での最短プログラムです。http://codepad.org/15EjIYAUで確認できます。元のコードは次のとおりです。

<?=9*8*7*6*5*4/3/2/1;

あなたも必要ありません4*2/8;)
マーティンエンダー

私は知っていますが、もっと面白くしたかったのですが、とにかくコメントアウトされていたでしょう。
NinjaBearMonkey
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.