ソースコードに数字を入れずに2014年の数字を作成します


579

メタコンセンサスによるライターへの挑戦への注意:この質問は投稿されたときに好評でしたが、Yを使用せずDo Xに回答者に尋ねるこのような挑戦は、 あまり受け入れられない可能性があります。 同様の課題を投稿する場合は、サンドボックスを使用しフィードバックを取得しください。


それはだ2017 2018既に2019年、人々は、家に帰ります。

それで、2014年になりましたので、2014年の番号を含むコードの質問の時間です。

あなたの仕事は、コード内2014の文字を一切使用せずに0123456789、日付や時刻、ランダムシードなどの外部変数とは無関係に、数値を出力するプログラムを作成することです。

数字が有効なトークンであるすべての言語でそうするための最短コード(バイト単位)が勝ちます。


リーダーボード:


10
Brainfuckでは数字は無視されますが、とにかく1つ投稿すると思いました。32文字:++++++[>++++++++<-]>++.--.+.+++.
ブレーデンベスト

4
Brainfuckは、このチャレンジの有効な言語ではありません。
ジョーZ.

8
この質問は、新年の頃に人気の小さなスパイクを取得するのだろうか。
ジョーZ.

3
「みんな来て、2016年だと気付いてない?」:)
パダワン

1
@BradenBest少なくとも2つの異なる方法で31文字で実行できます:+++++++ [> +++++++ <-]> + .--。+。+++。および++++++++++ [> +++++ <-]> .--。+。+++。
ズビンムケルジー

回答:


126

Mouse- 2002、4バイト。

これは4バイトの純粋で甘いASCIIです。

ではマウス、アルファベットの文字は、値0〜25に初期化されています。!は整数を出力するための演算子です。したがって、これ2014(間欠的な改行なしで)出力します。

U!O!

利用可能なオンラインインタープリターはありませんが、ここではCで書かれたインタープリター(gccコンパイルを強制する前にいくつかの調整が必要)と同じコンパイル済みインタープリターWin32がありますが、Linuxで完全に動作しwineます。

ここで、コンパイルされたインタープリターの修正バージョンを見つけることができます。


7
うわー、これはチャレンジ後の非常に素晴らしい発見です。そして、非常に難解な言語で、ここの誰もまだそれを聞いていませんでした!
ジョーZ.

3
ところで:これはCJamと同じことをしますがKE、2014
Joe Z.

7
私の顔の独善的な外観は、最速のコードでPythonの支持者をpropった後のFortran-77ウィザードの外観に似ています

56
これは@catとMouse-2002のゲームです。
デジタル外傷

5
@DigitalTrauma実際:3

1300

Python、52バイト

print sum(ord(c) for c in 'Happy new year to you!')

@Frgのおかげで2015年に更新されました:

print sum(ord(c) for c in 'A Happy New Year to You!')

2016年版を見るにはマウスオーバー:

print sum(ord(c) for c in 'Happy New Year to you!!!')

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


186
あなたは賢賞に値する
カーターパプ

167
うわー、これはこの質問の精神に沿ったものです。<3
ヨハネス

80
「!ハッピー新年」私はそれが年1374のために完璧だっただろう唯一の第四句、私が試した後、あったことを少し驚きました
dansalmo

55
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.') ああ待って、私は一年遅れています。それは2013年だ
ウォーレンP

164
sum(map(ord,'Happy new year to you!'))7文字節約できます。

243

Befunge 98 - 17の 11 9 8バイト

'-:*b-.@

古いバージョンに似ていますが、私は覚えていました '

'-:* pushes 45, duplicates it, then squares it, producing 2025
b-   subtracts 11 from it, resulting in 2014
.@   prints the result, then ends the program

興味深いことに、45 2 -11は、B番号の唯一のペアである 、これらのセットの重要性は、[32126]ということですは印刷可能なアスキー文字のセットであり、[10,15]は簡単にアクセス可能なBefunge番号のセットです。私はこのPythonプログラムとそのペアを見つけました:

(a,b)[32,126]×[10,15]a2b=2014
for a in range(32,127):
    for c in range(10,16):
        if (a**2-c)==2014:
            print("%s,%s"%(a,c))

または、インタープリターがユニコードをサポートしている場合、これは機能します:

Befunge 98-5バイト(4文字)

'ߞ.@

少なくともhttp://www.quirkster.com/iano/js/befunge.htmlでは次のコード(Befunge 93-6バイト/ 5文字)で動作します:

"ߞ".@

旧版

cdd**e-.@

数値を計算してから出力します:

cdd pushes numbers to the stack so that it is this: 12,13,13
**  multiplies top three values of stack, which is now: 2028
e   pushes 14
-   subtracts the top two values of the stack, resulting in: 2014
.   prints the numerical value
@   end of program

古いバージョン:

"*'&("#;:a`j@a+,;

2014年の-10のASCII値をプッシュします。次に、10を追加した後にそれぞれを印刷します。


78
en.wikipedia.org/wiki/Befunge ...これは私も...いないものである
プラトン

36
...「言語は、もともと可能としてコンパイルすることなどが困難である言語を考案する試みとして、1993年にクリス・プレスジーによって作成された」
意志

7
@ 11684出力は、質問でかなり明確に定義されています。プログラムが印刷された場合:randomstuff2randomstuff0randomstuff1randomstuff4私はそれを有効な解決策とは思わないでしょう。
ランチャー14年

7
@Platoウィキペディアの記事(Befunge 93のみを含む)を読むのではなく、Befunge 98について学びたい場合は、公式仕様を
ジャスティン14年

3
Wiki:「この言語は元々、可能な限りコンパイルが難しい言語を考案する試みとして1993年にChris Presseyによって作成されました」...しかし、なぜですか?
いとこコカイン14年

239

ルビー、15

p Time.new.year

一時的 ;)


質問のセクションに注意してください

日付や時刻、ランダムシードなどの外部変数とは無関係

回答を投稿してから長い間編集されませんでした...


ヤン・ドヴォルザークはコメントで素晴らしい選択肢を提供します:

Happy = Time
Happy.new.year

しかし、それはとても熱心ではありません。私が好む:

Happy = Time
class Time; alias year! year; end

Happy.new.year!

あるいは:

class Have; def self.a; A.new; end; end
class A; def happy; Time; end; end
class Time; alias year! year; end

Have.a.happy.new.year!

そして、ここに正しい英語の句読点があります:

def noop x = nil; end
alias a noop
alias happy noop
alias new noop
alias year! noop
def Have x
    p Time.new.year
end

Have a happy new year!

さてさて、私はそれを助けることができませんでした:

def noop x = nil; end
eval %w[we wish you a merry christmas! christmas and a happy new].map{|x|"alias #{x} noop"}*"\n"
def year!; p Time.new.year; end

we wish you a merry christmas! we wish you a merry christmas!
we wish you a merry christmas and a happy new year!

168
Happy = Time; Happy.new.year
ジョンドヴォルザーク14年

5
@hobbsいいえ、そうではありません。質問はこれについて何も言っていない
ドアノブ

12
これは、時々しか正しく機能しません。
ヒッピートレイル14年

119
これは、現在までのすべてのテストでうまく働いている
CoderTao

7
質問の精神は、今年(たまたま2014年)を言うことだったと思います。したがって、この解決策は、受け入れられた解決策よりも「ポータブル」です。あなた(およびJan Dvorak)が私の票を獲得します!
オリビエデュラック14年

223

Go、2バイト(UTF-16)

1つのUnicode文字(UTF-16で2バイト、UTF-8形式で3バイト)、エラーの一部として2014を出力

http://ideone.com/dRgKfk

can't load package: package : 
prog.go:1:1: illegal character U+2014 '—'

7
これは非常に賢い方法ですが、質問は番号を印刷するプログラムを要求します。
HelloGoodbye 14年

40
印刷されたエラーコードがカウントされる場合、この提出が勝つはずです。
ToastyMallows 14年

37
+1。質問は「数字だけを印刷し、それ以外は何も印刷しない」とは言っていません。
カズ

1
有効かどうかは気にしませんが、とても素晴らしいです。
Redwolfプログラム


177

Python、26

print int('bbc',ord("\r"))

53
bbcは2014年のベース13-
ダレンストーン

71
文字「bbc」の使用とベース13の使用はダグラスアダムスの賛辞だと思います。「申し訳ありませんが、ベース13でジョークを書きません。」
ブライアンミントン14年

10
13年前。RIP。
ダレンストーン14年

4
IMO、この答えは「True Pythonese」にあります-kmonsoor 14
1

8
@BrianMinton:それは数2014文字の任意なし表現することを可能にする2と36の間の唯一の基地だからベース13の使用は、おそらく0- 9
dan04 14年

146

MATLAB、Scala(4文字、5バイト)

ここでは、MATLAB(およびScala)の比較的弱い型システムを利用できます。秘The +は、文字ߞ(UTF-8コードポイントU + 07DE、または10進数の2014)のみで構成される文字列に単項演算を適用することです。この操作は、文字列を暗黙的にdouble(MATLABの場合)およびInt(Scalaの場合)に変換します。

+'ߞ'

バイトカウントの詳細:

  • + ASCIIであり、1バイトとしてカウントされます
  • ' ASCIIであり、1バイトとしてカウントされます(ただし、式に2回現れます)
  • ߞ 2バイトのUTF-8文字です

合計:5バイト

TeX(32 26文字、バイト数)

\def~{\the\catcode`}~}~\\~\%\bye

さらに短い代替案(Joseph Wrightが提案)は

\number`^^T\number`^^N\bye

XeTeX / LuaTeX(13文字、14バイト)

XeTeXまたはLuaTeXが許可されている場合、UTF-8入力を直接使用できます(Joseph Wrightが提案したとおり)。

\number`ߞ\bye

\let~\number~`^^T~`^^N\bye25文字/バイト。あなたは間違って数えますが、あなたのソリューションでも25です。
yo

1
@toheczどちらのソリューションも実際には26バイトの長さだと思います。
jub0bs 14年

1
現在の年が必要な場合、13バイト:\the\year\bye
yo

2
+'ߞ'また、Scalaで動作します(といくつかの他の言語は、私が想像)
ディオン

118

dc、6文字

DiBBCp
  • D 入力基数が最初は10であっても、13をスタックにプッシュします
  • i 入力基数を変更します(10から13に)
  • BBC 2014ベース13です。
  • p 印刷します。

コンソール出力:

$ dc <<< "DiBBCp"
2014

10
確かに、実際のdcプログラムはまだDiBBCp(6文字)であり、残りはそれを実行する方法にすぎません。
ダニエロ14年

11
私はこれに賛成するつもりでしたが、それは42ポイントです!ベース13と単語BBCを使用します。なんてかっこいい!今年、我々は生命、宇宙およびeverithing ;-)のための質問を見つけるだろうと思われen.wikipedia.org/wiki/Base_13を。私は代わりに@danieroのコメントを支持し、この素晴らしい42の評判で答えを残します;-)
パブロマリンガルシア

4
@ PabloMarin-Garcia、残念ながら知らない人がそれを破りました... 43票を獲得しました。戻って投票してください!:)
トマス

3
@Tomas Vogonsは常にVogonsです。銀河間の官僚主義に対する抵抗は無益です。
パブロマリンガルシア14年

2
Dマニュアルページにもコマンドが見つかりません。それは何をするためのものか?気にしない... Dは13の16進数です。
kzh14年

93

モールス符号、23

;)

..--- ----- .---- ....-

21
「数字が有効なトークンである任意の言語で」
ドアノブ

14
「..---」は、5ストロークの2番目の有効なトークンです。「4」が有効なトークンであるように、3回のストロークで、「4」という数字に対して有効です。
DavidC 14年

8
点字は短くなる可能性があります:)
ベリサリウス博士14年

31
いい視点ね。ところで、私はモールス信号を自分のコンピューターで実行する方法を誰も尋ねなかったので安心しました。
DavidC 14年

14
@DavidCarraherどういう意味ですか?当然、このレポを使用してデコードすることを想定していました。github.com/Nyubis/mspa-morse-decoder誰もがやっています...-
マイケルJ.

88

72 コード内の45文字。ゼロ文字コード

これは、投稿された最短の答えとはほど遠いですが、誰もまだ答えを投稿していません

  • 数字の代わりに文字コードを使用しない
  • システム日付を呼び出しません。

Rコンソールから、Rで純粋な数学(大丈夫、および自動ブール変換)を使用します。

x<-(T+T);x+floor(exp(pi)^x)*x*x-(x*x)^(x*x)/x

番号2014 Tを出力します。Rのtrueの定義済みの同義語です。関数floorexp関数は、pi定数と同様にベースパッケージで直接使用できます。Rにはインクリメント演算子はありませんが、(x*x)インクリメントとデクリメントをそれぞれ2回行うより少ない文字であることが判明しました。


Javascriptのオリジナルバージョン(72文字)

コンソールでテストできるという簡単な理由で、空白が完全に欠けていることは気にしません:

m=Math;p=m.pow;t=true;++t+m.floor(p(m.exp(m.PI),t))*t*t++-p(++t,t--)/--t

コンソールで実行すると、2014年の数値が出力されます。


小道具XKCD(と私はEXP(PI)を考えるようになっ用): eからpiマイナスpi

PS異なる言語で同じアルゴリズムを短くできる場合は、コメントを投稿してください。


1
o =! "";(o + o)+ "" +(oo)+(o + oo)+(o + o + o + o)
カーネルジェームズ14年

4
25バイト:alert( 'ߞ'。charCodeAt())
oberhamsi

1
+1。ただし、答えは「数字の代わりに文字コードを使用せず、システム日付を呼び出さない」という最初の答えであると主張します。それは実際には間違っています。私の答えは、cdd**e-.@あなたの前に投稿されたこのソリューションで、文字コードやシステム日付を使用しません。これは番号2014を計算しcd及びe進数の数字です。ab、...、fプッシュ(それぞれ)10,11、... 15ので12 * 13 * 13 - 14計算があります。
ジャスティン14年

これは、文字コードを使用しない最初の答えではありませんでした。以前のものがいくつかあります。
ティムテック14年

1
@Quincunx:そのとおりです。ざっと目を通すと、バージョンが文字コードではなく16進数を使用していることに気づきませんでした。
アメリアBR 14年

85

Scala REPL

34 29文字。

+"Happy new year to you!".sum

あなたが本当にどんなチャーでゴルフしたいのなら、大丈夫です、あなたは使うことができます:

'@'*' '-'"'

または

"{yz}"map(_-'I'toChar)

それぞれ11文字と22文字です。


4
特にゴルフをしていなくても、興味深いアイデアです。しかし、文字列自体は、高バイトを使用するものやそのようなものよりも興味深いものになります。
コンラッドボロスキー14年

ゴルフバージョンを追加しました。
ミカエルメイヤー14年

あなたはからのカップルの文字救うことができるtoInt:このような+"Happy new year to you!".sum テスト
ディオン

更新しました。+がプレフィックスになることもありませんでした。
ミカエルメイヤー14年

68

PHP、9バイト

これには、PHP 7.1以前が必要です。PHP 7.2では動作しますが、警告が表示されます。将来のバージョンの保証はありません。

xxdバイナリデータのために必要です(コピーと貼り付けが簡単になるため)。戻るE_NOTICE可能性がありますが、実際には問題ではありませんか?

~ $ xxd -r > 2014.php
0000000: 3c3f 3d7e cdcf cecb 3b                   <?=~....;
~ $ php 2014.php
2014

または、ISO-8859-1エンコードを使用してこれを保存します。

<?=~ÍÏÎË;

@Quincunx:これをアップロードするのは比較的面倒でしたが、こちらはIdeone-ideone.com/APHKhnです。
コンラッドボロウスキ14年

1
これは面白そうです。それは何をするためのものか?
ジャスティン14年

7
@Quincunx:文字列のすべての文字についてビット単位では処理しません(0x00は0xFFに、0x7Fは0x80に変更します)。文字列は有効な識別子であるため(高ビットが設定されているものはすべて、おそらく他のエンコーディングをサポートするためのPHPの識別子文字です)、PHPはそれを定数と見なしますが、定義されていないため、文字列として扱います。
コンラッドボロウスキ14年

2
質問は「2014年になりました...」だったので、どうecho date('Y');ですか。
ジョン14年

6
@ジョン:いいえ。質問のコメントを読んだ場合、OPは現在の年を回答として取得したくないことに気付くでしょう。それに、<?=date(Y);11文字になりますが、9文字で解決できます。
コンラッド

67

C、33バイト

main(){printf("%d",'A'*' '-'B');}

19
2014年の素因数分解にASCII 5が必要なのは、なんといらいらすることでしょう!
ベンジャクソン14年

Cocoa TouchオブジェクティブCでfor(int a; YES; a ++){NSLog(@ "%i"、a);}を得ましたが、まだ追加できません(評価が十分ではありません)。最終的に2014が表示され、コンパイラエラーが発生し、まったく動作しない可能性があり、コンパイルされたサイズはおそらく4.2メガグラム程度です。
リサイクル鋼14年

main(){printf( "%d"、 '\ a \ xde');}
mjy 14年

1
@mjy複数文字リテラルのバイト順は保証されていません。
ジョナサンラインハルト

@JonathonReinhartの複数文字リテラルは、完全に実装定義です。
FUZxxl

54

Mathematica、14文字(ビットマップを文字として数える場合は15文字)

TextRecognize @ここに画像の説明を入力してください


50
実際には、14 +ビットマップイメージのサイズになるようにバイトをカウントする必要があります。
シル

22
ビットマップは、おそらく7,357文字です。
ジョーZ. 14年

5
また、画像内の一部のバイトが\d範囲内に収まると考えています。つまり、GIFの場合、ヘッダー自体に一部が含まれることが保証されます。
ジョンドボラック14年

13
あなたはみな殺し屋です。25文字、26バイトにはFirst @ ToCharacterCode @ "ߞ"を使用してください。
マイケルスターン14年

9
ボーナスとして、ここでは「@ --URLFetch 30文字でMathematicaのソリューションですgoo.gl/miVwHe
マイケル・スターン

53

Python3.4.0b2(0バイト)

% python3.4  
Python 3.4.0b2 (v3.4.0b2:ba32913eb13e, Jan  5 2014, 11:02:52) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 

1年後にPython 3のバージョンを更新すると、これは機能しません。
ジョーZ. 14年

21
だからpython3.4.0b2に言及したのですが二度と起こりません。リリース日であり、システム日付ではありません。
あなた14年

6
これは私を笑顔にしました!
マットフレッチャー14

2
Python 3.4.2でも機能します。
エリックアウトゴルファー

無関係な出力を追加することはできません。
MilkyWay90

48

Javascript、23バイト

Base 64変換を使用

alert(atob("MjAxNA=="))

23文字(16文字でatobを含む)

または

alert("MMXIV") // ;)

27
MMXIV共通の何の文字を持っていない2014最後に、私がチェック...// ;)
ジョー・Z.

23
古代ローマ人は同意しないかもしれません。最初のものは、現代英語で2014年を作成します。
logic8 14年

1
ただし、最初のものは出力されません...
Doorknob

1
クロームでコンソールを開いた場合、貼り付けてEnterキーを押すと値が返されます。とにかく他のアラートよりも長いアラートを追加します。
logic8 14年

5
@ logic8:ナイスワン+1。動作する別のJavaScriptバージョン:(4バイト)[!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]- の要件をalert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);満たしているかどうかはわかりませんがJoe Z
いや14年

41

Perl-10文字

このソリューションはPerlMonksのBrowserUKの好意によるものですが、私は彼が投稿したソリューションから不要な句読点や空白を削除しました。4文字のバイナリ文字列ではビット単位の「not」です。

say~"ÍÏÎË"

上に表示される文字は、バイナリオクテットcd:cf:ce:cbを表し、ISO-8859-1およびISO-8859-15での表示方法です。

スクリプト全体を16進数で示し、さらに実行例を示します。

$ hexcat ~/tmp/ten-stroke.pl
73:61:79:7e:22:cd:cf:ce:cb:22
$ perl -M5.010 ~/tmp/ten-stroke.pl
2014

Perl(高ビットなし)-14文字

say'````'^RPQT

これは、2つの4文字の文字列"RPQT"and "````"(つまり、4つのバックティック)でビット単位の「または」を使用します。

$ ~/tmp/fourteen-stroke.pl
73:61:79:27:60:60:60:60:27:5e:52:50:51:54
$ perl -M5.010 ~/tmp/fourteen-stroke.pl
2014

(最初は2つの文字列を逆方向に持っていたため、トークンの間に空白を必要printRPQTし、トークンを分離する必要がありました。

Perl(不正行為)-8文字

これはおそらく競争の精神の範囲内ではありませんが、PerlMonksのhdbは、Perlが、$0実行されている現在のプログラムの名前を含むと呼ばれる変数を提供することを指摘しています。スクリプト「2014」を含むファイルに名前を付けることが許可されて$0いる場合、2014と等しくなります。$0数字が含まれているため、直接使用することはできません${...}が、0と評価される式を含めることは可能です。例えば:

say${$|}

一貫性を保つために、それを使ってhexcat-then-perlを行いましょう:

$ hexcat 2014
73:61:79:24:7b:24:7c:7d
$ perl -M5.010 2014
2014

これは不正行為だと思いますが、それでもなお興味深い解決策なので、言及する価値があります。


2
文字列とベアワードを逆にすると、char:を保存できますprint"````"^RPQTsay5.10+でも-eの代わりに-E を使用することも可能かもしれませんが、異なるコマンドライン引数に対して+2のペナルティが発生するかどうかわかりませんか?
ドムヘイスティングス14年

2
Perl 5を使用してsayおり、ペナルティなしで使用することを指定することは受け入れられると考えられます。
ピーターテイラー14年

@DomHastings、個人的には、「-e」または「-E」を使用して実行する場合、「perl -E」を含むコマンド全体を文字数に含める必要があると思います。
tobyink 14年


4
また、などの引用符を必要としない文字列リテラルを使用して、別のバイトを保存することもできますsay ABCD^srrp
primo 14年

40

ルビー、20

p 'bbc'.to_i ?\r.ord

説明:bbcある2014Pythonのより短いベース13に。Forthほど短くはありません。


23
「ベース13で誰もジョークを書かない!」
ジャン=ミカエルセレリエ14年

1
?W = $; "^ XA [_AXeMFGIAHJLjKNAEFEJJNHQHNKLAEMINJOJOHLAGKHOJOJ [AG [HQHRFJAH} IHAIGGwIIAHHGwKHAHGHrEUAGQFiGVAGQGfIPAFHKHHbJHAQII] MGASHNSOHATIdIAUJJRLIAWLIQGKAZOFUA] ZAeSAiPAjOAkLA" .codepoints {| R | R- = 68; $> <<(R <0?\ N(W = W = =?$? '':?$)* r)}
ダレンストーン14年

1
p 'ߞ'.ord'ߞ'.ord内部で完全に機能するプログラムの場合irb。1.9以降で動作
リカルドパナッジオ14年

1
「奇妙な」ユニコード文字なし:?-*?--?\v(45 *
45-11

1文字小さい:?.*?.-?f(46 *
46-102

29

Powershell、9

+"ߞ"[""]

ߞU + 07DE NKO LETTER KA)は、code-golfタグ情報に従って2バイトとしてカウントされます。

[""]文字列の最初の文字を返します(""に変換されます0)。単項プラス演算子(+)は、文字を整数に変換します。


1
codegolf.stackexchange.com/tags/code-golf/infoによると、9文字としてカウントされます。
コンラッドボロスキー14年

@GlitchMr、ありがとう、答えを修正しました。
ダンコドゥルビッチ14年

3
これ['']はいいトリックです。私は通常使用しました[char]が、それは確かに短いです:)
ジョーイ14年

27

Scala REPL-6文字

"?="##

##Scalaのシンボルの意味hashCodeは、Java文字列"?="は2014年までハッシュします。)

Scala REPL-4文字、5バイト

+'ߞ'

私たちのお気に入りのユニコード文字の数学はInt


27

Javascript、18文字

alert(btoa('ÛMx'))

更新: ES6では、テンプレートリテラルを使用すると2つの文字を保存できます。

alert(btoaMx`)

上記のコードはbtoa、一連の明確に定義されたルール(RFC 4648)に従って文字列を別の文字列に変換することを念頭に置いて理解するのが非常に簡単です。変換の仕組みを確認するために、入力文字列「ÛMx」を一連の2進数として書き込みます。各文字は8ビット文字コードとしてレンダリングされます。

入力文字| Û| M | バツ
文字コード(10進数)| 219 | 77 | 120
文字コード(バイナリ)| 11011011 | 01001101 | 01111000

グループ6の最後の行の2進数を再編成した後、文字列「2014」の4文字のBase64インデックスに対応する4つの新しい数値のバイナリ表現を取得します。

Base64インデックス(バイナリ)| 110110 | 110100 | 110101 | 111000
Base64インデックス(10進数)| 54 | 52 | 53 | 56
出力文字| 2 | 0 | 1 | 4

HTML仕様に従って、出力文字は、この表http://dev.w3.org/html5/spec-LC/webappapis.html#base64-tableに従ってBase64インデックスから取得できます。

詳細を気にしない場合は、ブラウザに計算を行わせて、「ÛMx」がatob('2014')Javascript で評価した結果であることがわかります。


質問には番号の印刷が記載されています。コンソールでの評価により結果が返されることはわかっていますが、コードゴルフでは一般に、JSの回答に何らかの形式のIOが含まれることが予想されます(alert最も一般的です)。
zzzzBov 14年

@zzzzBovはい、元の回答にはalert電話が含まれていました。
後藤0 14年

Communityを削除したものとしてリストしますalert。JS codegolfの標準が変更されたのか、それともコミュニティによって採用された単なる変更なのかと思います。
zzzzBov 14年

@zzzzBov:これは、SHiNKiROUとluser droogが受け入れた匿名ユーザーによる変更でした。とにかく、この編集はMeta(meta.codegolf.stackexchange.com/questions/803/…)に関する議論を引き起こしました。
コンラッドボロスキー14年

@xfix、メタに関する質問をするようになったのはこの編集だけではありません。開発者コンソールが印刷としてカウントされるかどうかについて人々が意見の相違に陥るコードゴルフを見てきましたが、標準を求める価値があると考えました。
zzzzBov 14年

24

さらに別のGolfScriptエントリ、印刷可能な9文字

これは、これまでの印刷可能なGolfScriptエントリのいずれよりも短いと思います。

"!="{*}*)

Peter Taylorの7文字のエントリはこれに勝りますが、印刷できない制御文字が含まれます。)

私はこれを「去年はとてもそうだ!」と呼んでいます。エントリ。実際に行うのは、8文字で2013年を33×61として生成し、1ずつインクリメントするためです。;-)


あなたが勝ちます(アスキーゴルフスクリプト用)
aditsu

21

C(31)

main(){printf("%o",' b'/'\b');}

C(32)

main(){printf("%x%o",' ','\f');}

C(30)

main(){printf("%x",' j'^'~');}

C(30)

main(){printf("%d",'\a\xde');}

どのようにちょうど約"%x"'b'*'S'?8212年12月または2014年の16進数です。1つの文字、1つのリテラル、および2つのフォーマット文字列を保存します。
MSalters

@MSaltersいいえ、'b'*'S'8134です。8212の素因数分解は2 * 2 * 2053なので、簡単に生成する方法はありません。
fredoverflow

フン、整数の除算で確認8212/'b' == 'S':(
MSalters

8進数も機能しません(02014 = 1036 = 37 *
28、28

1
@FredOverflow私の28文字ソリューションはどうですか?main(){puts(__ DATE __ + '\ a');}
アルンプラサッドラージクマール14

20

フォース、14

'> '" * '^ - .      

1
これがどのように機能するか説明できますか?
ProgramFOX 14年

1
整数(ASCII)値を使用して、整数定数を文字リテラルとして表現しています。つまり、62 34 * 94 - . Forthを話さない場合、これはを意味しprint (62 * 34 - 94)ます。
ダレンストーン

Forth(Gforth 0.7.0)、5バイト、4文字:'ߞ .文字を出力します。
18446744073709551615 14年

20

GolfScript、14

'-+,/'{)))))}%

仕組み:ASCIIは次のようになります。

...
+
,
-
.
/
0
1
2
3
4
...

したがって、これは各文字のASCIIコードを取得し、5を減算し、文字列に貼り付けます。

{...}%引数として文字列を指定すると、マッピングされた文字列の文字の配列を生成します。したがって、各文字を5 )ずつ増やします(増分を意味します)。


+最後には不要です。また、5回インクリメントするのではなく、5を追加するだけです。合計節約量:4文字。'-+,/'{5+}%
ジャスティン14年

15
@Quincunx 5は数値です。
ピーターテイラー14年

5
@PeterTaylor忘れてしまいます。
ジャスティン14年

巧妙なソリューション
Sumurai8 14年

これのCJamバージョン:"-+,/"_,)f+。:)(その後、CJamにはKD。)
マーティンエンダー14

19

Python、32文字

print ord(',')*ord('-')+ord('"')

2014年のUnicode charを使用してそれを減らすことはおそらく可能ですߞが、私は試しませんでした。

Quincunxは、

a=ord('.');print a*a-ord('f')

3文字短くなります。


Unicodeバージョンは、少なくともPython 3でIDLE:を使用すると動作しprint(ord("ߞ"))ます。Python 2では動作しないようです。Python 2はおそらくUnicodeをサポートしていません。
ジャスティン14年

3
また、お使いのバージョンでa=ord('.');print(a*a-ord('f'))は、2文字短くなっています。
ジャスティン14年

@Quincunxサポートしますが、ファイルに特定のエンコーディングを設定しu、文字列の最後に追加する必要があります(そうなります"ߞ"u
Kroltan 14年

2
@Kroltan実際、2番目の部分は真実ではないと確信しています。Pythonの2では、あなたがしなければならなかった先頭に追加して文字列をu、彼らはユニコードだったと言うことではなく、Pythonの3では、すべての文字列が自動的にユニコードある
murgatroid99

1
上記のコメントと同様に、Unicodeを使用しない場合print ord('.')**2-ord('f')はわずかに短くなります。
MLS 14年

18

APL(6バイト、4文字)

⊃⎕TS

ただし、今年のみ有効です。

動作する理由:

      ⎕TS
2014 1 1 11 58 5 811
      ⊃⎕TS
2014

システムの日付に依存しない場合、10バイト(7文字)です。

⎕UCS'ߞ'

6
残念ながら、今年のみ有効な回答は無効です。
ジョーZ. 14年

APLがわかりません:その四角いボックスはAPL文字ですか、それともフォント表現(Chrome)がありませんか?
カールヴィットフト14年

@JoeZ:質問はそれを言っていないが、私はそれが2014年であることに依存しない1追加しました
マリナス

4
@CarlWitthoft:クワッド()そのように見えるはずです。
マリヌス14年

18

Python 32 10バイト、91 85(mathデフォルトでインポートされた66 )バイトの純粋な数学

これを書くのにいくらか楽しかった:

my_lst = []
for i in range(33, 126):
    for j in range(i, 126):
        if 2014 - 126 < i * j < 2014 - 33:
            if j not in range(48, 58):
                my_lst.append("ord('" + unichr(i) +
                              "')*ord('" + unichr(j) +
                              "')+ord('" + unichr(2014 - i * j) + "')")

for val in my_lst:
    print val, '->', eval(val)

Bruno Le Flochのメソッド(32文字)2014を使用して記述可能なすべての方法を出力します。

ord('!')*ord(':')+ord('d') -> 2014
ord('!')*ord(';')+ord('C') -> 2014
ord('!')*ord('<')+ord('"') -> 2014
ord('"')*ord(':')+ord('*') -> 2014
ord(')')*ord('/')+ord('W') -> 2014
ord('*')*ord('-')+ord('|') -> 2014
ord('*')*ord('.')+ord('R') -> 2014
ord('*')*ord('/')+ord('(') -> 2014
ord('+')*ord(',')+ord('z') -> 2014
ord('+')*ord('-')+ord('O') -> 2014
ord('+')*ord('.')+ord('$') -> 2014
ord(',')*ord(',')+ord('N') -> 2014
ord(',')*ord('-')+ord('"') -> 2014

しかし、これは明らかに冗長であるため、デフォルトでインタープリターがutf-8に設定されている場合、必要なことは次のとおりです。

>>> ord(u'ߞ')
2014

また、おかげで (アイデアのために)AmeliaBRの、純粋な数学バージョンを実装するために最善を尽くしました:

from math import*
a,b,c=int(e),round(e),ceil(pi);print int(a**(b*c-(c-b))-a*a**c-a)

ord( '、')** 2 + ord( 'N')
MLS 14年

6
@MLSまあ、それには数字があります:)
ヨアヒム・イサクソン14年

2
私は少しあなたの数学のバージョンを最適化:a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-a、あなたがいるという事実を利用して完全に数学の輸入を排除することができますTrue50個の文字にそれをダウンさせ、Pythonで2.xは運転中の整数1と同じである:o=True;a=o+o;b=a+o;c=b+o;print a**(b*c-o)-a*a**c-a
Ponkadoodle

あなたは、Python 3を使用する場合は、文字を保存することができます:ord('ߞ')
asmeurer

@JoachimIsaksson数字は数字ではありません;)
メガマン

17

R(20文字)

@popojan(彼はまだここに回答を投稿することは許可されていません)は、20文字以内でソリューションを提供しました。

sum(T+T:exp(T+pi))-T

出力:

> sum(T+T:exp(T+pi))-T
[1] 2014

R(22文字)

匿名ユーザーは、より短いソリューションを提案しています。

strtoi("bbc",pi*pi+pi)

2014あるBBCベース13にpi*pi+pi(= 13.0112)は整数13の出力として、この文脈においてRによって治療されます。

> strtoi("bbc",pi*pi+pi)
2014

R(30文字)

@Tomasに感謝します!

cat(a<-T+T,T-T,T/T,a*a,sep="")

出力:

> cat(a<-T+T,T-T,T/T,a*a,sep="")
2014

R(31文字)

cat(T+T,T-T,T/T,T+T+T+T,sep="")

AmeliaBRの回答からインスピレーションを受けています。出力:

> cat(T+T,T-T,T/T,T+T+T+T,sep="")
2014

わあ、+ 1!そして、ローマ数字の解決策が最高になることを願っていました... :( ;
トマス

以下のバリアントを短くすることができます:cat(a<-T+T,T-T,T/T,a^a,sep="")(30文字)、paste0(aT+T,T-T,T/T,a^a)(26文字)
トマス14年

@Tomas、関数にpaste0はsymbolが含まれているため、許可されていません0。を使用する場合、ソリューションは30文字になりcatます。
djhurio

ファイルを作成し2014、現在のディレクトリにし、書き込みlist.files()- 12の文字
Zbynek

@Zbynek、あなたのソリューションはcodegolfルールの一般的な範囲では有効ではないと思います。
djhurio

15

Java- 77 75文字

printmainメソッドを使用してクラスに75文字が追加された場合:

class C{public static void main(String[]a){System.out.print('#'*'<'-'V');}}

35*60-86どちらが2014に等しいかを意味します


2
あなたの式が好きです。
ヨハネス14年

7
実行するにはクラス定義が含まれている必要があるため、実際にはこれより長くする必要があります。私が知っている最短の方法(Java 6):class a{static{System.out.println('#'*'<'-'V');}}
ジャスティン14年

1
mainメソッドが必要とされているJava 7と@Quincunx、
トゥルーソフト

2
@TrueSoft Note「with Java 6」と言いました。できるだけ短いJavaを選択する必要があります。
ジャスティン14年

2
あなたは...文字を減らすためのprintlnで「LN」を削除することができます
laksys
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.