t="+,m-n./mAm0o1p23a4q56r7sBt89u-t-1:v;A<w4x=y1z>[?]A^@CD_ CD_EsF`GHmIJbKa*l";eval$s=%w{F=%q{ceY8#<DvO1=x&t9CSOqMYkzH U.kCpz+Vo8hB.1AF&tq21+$/IrMY]U.aDd!-1y!4MMGQm6m?bYh($QMYpX s4g,x1UlbNKH?>NzbisMn?sT@m3,F.Abb`xW!r%'%Ybee>xkUfjf[(*^Nd Xo_"@hQh%Fx*q[iB7EM"suSG8GVOIzceg/O=4CL,d[-k]twgVP`&wcfaT` 2M)j8sFY?(HKzOrVCHO_694[Uq8g @i/i;tMBG#;-;B]rV[])`3'<os^. OV(SA<=ok%m[iV#qt[&dJ7SIdB;/ VUnVIrH;hEJ*QWD"E+
RubyKaigi でこっそり (?) 発表したものを再掲。 読み込んでみる *1 。 $ java -classpath classes example.QRCodeDecoderCUIExample quine-ruby-code.png > quine-ruby-code.rb [Success] quine-ruby-code.png Processed 1 images in 1050ms (1050 images/sec) OK: 1 NG: 0quine-ruby-code.rb はこんなの。 #!ruby # Q(uine)R(uby)code (C) Y.Endoh 2009 eval s=%q(X=(0..7).map{|i|1<<i};W=116;m=(1..w=117).map{[]};B=999.times{|i|X<<( X[-4]^X[-5]^X[-6]^X[
15 パズルを quine で作ってみました。 eval((%w[a=0;loop{a=(0..15).sort_by{rand};b=a.reverse;b=a[0,4]+b[8,4]+a [8,4]+b[0,4];n=0;16.times{|i|b[i]>0&&(0..i).map{|j|b[j]>b[i]&&n+=1}};n% 2>0&&break;};eval$s="b=0x#{a.map{|n|"%x"%n}.join}"+%w[;i=(m=0..15).find {|i|1>b&m=15<<4*i};t=m|n=m<<4*o=("AdABrBlBAuA"=~/(.)#{ARGV*''}\1/||04|| 0)-4;( n<1 ||n>1<<64||[255<<12]&[t>>040||0,t>>16, t]!=[])?t=0:i +=o;; ## s ####### ="eva
Quine の難しい点はたぶん、 自分自身を出力しようとして永久に書き終わらないよギャース クォート文字列中にクォート文字を入れられないよギャース という2点じゃないかなぁと思います。前者は変数を使えば簡単です。後者はクォート文字をエンコードできるようにしてやる、っていうのがまぁ基本的な考えかたではないかと思いますが、これは色々方法があります。一般的な作り方としては以下とかがすごくわかりやすかったです。 http://d.hatena.ne.jp/KeisukeNakano/20070814/1187070401 format 系 多くの言語で手軽に書ける…と思う。 %s で自分自身を出力できる && クォート文字列は %c で、っていうのが基本的な発想。 Ruby だと、 printf a="printf a=%c%s%c,34,a,34",34,a,34 とかが基本形。いくつか短くする
■ [web] Googleドキュメントの表計算で曜日を入力させる方法 今年の春から、家計簿を付けるのにGoogleドキュメントを使っています。最初はOOo Calcでやってたんだけど、 「Googleドキュメントならどこのマシンからでも更新できてよくね?」ってことで移行。 しかしですね、Googleドキュメントはなんと日付の書式指定で曜日を付けられないのです。つまり 1 | 2008年11月1日(土) | コーヒー | 120 | みたいなことができない。しかも、OOoの文書からインポートしたてのときはちゃんと曜日が出てたんですが、 なんかセルをコピーしたり移動してるうちに一部分だけ曜日が出なくなった、これはキモい。 んで調べてみたところ Perl Tips | Google ドキュメント (Google Spreadsheets) で、日本語の曜日を表示する方法 にて方法が紹介されてい
最終的に1525バイトになった。劇的に縮められる新機軸はもうなさそうなのでネタバレ 続きを読む 上の続き 続きを読む (m-n)%3 をどうやって計算するか? 続きを読む wwWWwWWWwWWWWWWw # s2n1 vwwWWwWWWw # s2 vwWWwwwWwwwwwwWWWwWWWWWwwwwWwwWWwWwwwwwwwwwwww # mkwWv vWwwwWWwww # ch_v, ch_W vwwWWWWWWWWww # mkout vWwwwWWwwwwwwwwwwWWWwwww # out_v, out_w, out_W vwWwwwwWwwwwWwwww # tr1 = triplet(out_v, out_w, out_W) vwWWWwWWWWWw # out_Ww vwWWWWwWWWw # out_WWw vwWWWWWWWwWWWw # out_vWWw v
この記事は Quine Advent Calender 2014 の 102 日目になりました。ref: http://d.hatena.ne.jp/shinichiro_h/20080910#1220988953 やろうやろうと思って放置してたら先にやられてしまったー。一念発起して完成させて、がんばって縮めて見ました。 $ time ruby grass.rb quine.www > quine2.www real 0m21.830s user 0m20.440s sys 0m1.390s $ diff quine.www quine2.www $ wc -c quine.www 9787 quine.wwwでも試しに golf 鯖に投稿してみたら、over 10K って言われた。なぜー。 あとは菊さんの 100B が楽しみですね。 以下どーんとソース。 どーん。 wWwwwwWWWwv
誰も quine を書いたことのなさそうな言語で quine を書いてみたくなったので、ちょっと調べても見つからなかった Verilog で書いてみました。 module quine; wire [648:1] s = 648'h3b0a696e697469616c2023312024646973706c617928226 d6f64756c65207175696e653b5c6e77697265205b3634383a315d2073203d20363438 276825682573222c732c73293b0a656e646d6f64756c65; initial #1 $display("module quine;\nwire [648:1] s = 648'h%h%s",s,s); endmodule 数値リテラル中の改行は適当に省いてください。 Icarus Verilog で
回文になっている quine です。以下のように動けば正解です。 $ ruby pquine.rb > pquine2.rb $ diff pquine.rb pquine2.rb $ ruby -e 's = File.read("pquine.rb"); p(s == s.reverse)' true 以下は僕の考えた解答。 どれも改行コードは LF で、ファイル末尾に改行をつけないで実行してください。 まずはインチキ。 DATA.rewind $> << DATA.read __END__ __DNE__ daer.ATAD << >$ dniwer.ATAD 一行コメントを使うとわりと簡単。 eval s="$><<\"eval s=\#{t=s.inspect}#\"+(s[5,7]+t).reverse"#"esrever.)t+]7,5[s(+"\#}tcepsni.s=t{
Perl で記号だけ (ASCII が 32-126 で ~/\W/ なものと改行のみ) で Quine を書く努力をしていました。なんか最初は 300Byte 近くだったんだけどゴルフしてるうちに 103Byte まで。 ($;=<<'' #&-!!*!%>{(\$;=<<'' $; )=~(' _ ^-^,'^'"`[;[?@(\$;^\$^)})')+ )=~(' _ ^-^,'^'"`[;[?@($;^$^)})') なんか色々やってるうちに Ruby の最短 に似てきたのでした。 追記: せっかくなので顔文字を埋めてみた。顔文字埋めてる場合じゃなくてまだ縮んだ。 何やってるかっていうとなんか ;''=~ から先が要は eval($;^$^) というコードを実行していて、 $;^$^ は xxxa+print"\$;=<<'_' ..." とかいう感じの自分自身を吐き出すコードにな
Writing obfuscated code is fun. Golfed binaries I created other page . Polyglots Polyglot quine Polyglot Quine in C and Ruby and Python and Perl and Brainfuck . In other words, this program is runnable with 5 language implementations and it produces its source code without file I/O. Source code . You can use this source code like following: > gcc -xc <(./BFI <(python <(ruby <(perl poly_quine5.txt)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く