ผลิตหมายเลข 2014 โดยไม่มีตัวเลขใด ๆ ในซอร์สโค้ดของคุณ


579

หมายเหตุถึงการท้าทายผู้เขียนตามฉันทามติเมตา : คำถามนี้ได้รับการตอบรับอย่างดีเมื่อมีการโพสต์ แต่ความท้าทายเช่นนี้การขอให้ผู้ตอบDo Do โดยไม่ใช้ Y น่าจะได้รับต่ำ ลองใช้sandbox เพื่อรับคำติชมหากคุณต้องการโพสต์คำถามที่คล้ายกัน


มันคือ2017 2018 2019 แล้วคนกลับบ้าน

ดังนั้นตอนนี้ถึงปี 2014 ก็ถึงเวลาสำหรับคำถามเกี่ยวกับรหัสที่เกี่ยวข้องกับหมายเลข 2014

งานของคุณคือการสร้างโปรแกรมที่พิมพ์ตัวเลข2014โดยไม่ต้องใช้อักขระใด ๆ0123456789ในรหัสของคุณและเป็นอิสระจากตัวแปรภายนอกเช่นวันที่หรือเวลาหรือการสุ่มเมล็ด

รหัสที่สั้นที่สุด (นับเป็นไบต์) ให้ทำในภาษาใด ๆ ที่หมายเลขนั้นเป็นโทเค็นที่ถูกต้องชนะ


ลีดเดอร์บอร์ด:


10
แม้ว่าตัวเลขจะถูกละเว้นใน brainfuck แต่ฉันคิดว่าฉันโพสต์ไว้ 32 Chars:++++++[>++++++++<-]>++.--.+.+++.
— Braden ดีที่สุด

4
Brainfuck ไม่ใช่ภาษาที่ถูกต้องสำหรับความท้าทายนี้
— Joe Z.

8
ฉันสงสัยว่าคำถามนี้ได้รับความนิยมบ้างเล็กน้อยในช่วงปีใหม่
— Joe Z.

3
กำลังรอ "Come on folks คุณไม่ทราบหรือเปล่าว่าเป็นปี 2016" :)
— padawan

1
@BradenBest สามารถทำได้ด้วยอักขระ 31 ตัวในวิธีที่แตกต่างกันอย่างน้อยสองวิธี: +++++++ [> +++++++ <-]> + .--. +. +++ และ ++++++++++ [> +++++ <-]> .--. +. +++
— Zubin Mukerjee

คำตอบ:


126

Mouse-2002 , 4 ไบต์

นั่นคือASCII ที่บริสุทธิ์และหวาน 4 ไบต์

ในเมาส์ตัวอักษรของตัวอักษรจะเริ่มต้นเป็นค่า 0-25 !เป็นผู้ดำเนินการสำหรับจำนวนเต็มพิมพ์จึงพิมพ์นี้20แล้ว14(ไม่มีการขึ้นบรรทัดใหม่ต่อเนื่อง)

U!O!

ไม่มีล่ามออนไลน์ที่มีอยู่ แต่ที่นี่คุณจะได้พบกับล่ามเขียนใน C (จำเป็นต้องปรับแต่งบางอย่างก่อนที่หนึ่งสามารถบีบบังคับgccรวบรวม) และล่ามเรียบเรียงเดียวกันWin32แต่ที่ทำงานอย่างสมบูรณ์แบบบน Linux wineด้วย

ที่นี่คุณสามารถค้นหาล่ามเวอร์ชันที่แก้ไขซึ่งรวบรวม


7
ว้าวนี่คือการค้นพบที่น่าอัศจรรย์มากหลังจากความท้าทาย และด้วยภาษาที่ลึกลับไม่มีใครที่นี่เคยได้ยินมันเลย!
— Joe Z.

3
BTW: สิ่งนี้ทำเช่นเดียวกับของ CJam KEแต่จริง ๆ แล้วใช้ได้เพราะเป็นภาษาก่อนหน้า 2014
— Joe Z.

7
รูปลักษณ์พอใจในตัวเองบนใบหน้าของฉันตอนนี้คล้ายกับที่ของ Fortran-77 ตัวช่วยสร้างหลังจากหวดแสดงของงูใหญ่บางอย่างในเร็วที่สุดรหัส
— cat

56
เกมนี้ของ @cat และ Mouse-2002
— Digital Trauma

5
@DigitalTrauma แน่นอน: 3
— แมว

1300

Python ขนาด 52 ไบต์

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

อัปเดตในปี 2558 ด้วย @Frg:

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
คุณสมควรได้รับรางวัลความฉลาด
— Carter Pape

167
ว้าว - เป็นเช่นนี้ในจิตวิญญาณของคำถามนี้ <3
— โยฮันเนส

80
ฉันแปลกใจนิดหน่อยว่ามันเป็นเพียงวลีที่สี่ที่ฉันลองหลังจาก "สวัสดีปีใหม่!" ซึ่งน่าจะเหมาะสำหรับปี 1374
— dansalmo

55
print sum(ord(c) for c in 'HAPPY NEW YEAR To you too.') โอ้เดี๋ยวก่อนฉันไปหนึ่งปีแล้ว นั่นคือ 2013.
— Warren 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 เป็นเพียงการจับคู่หมายเลข a, b โดยที่ ความสำคัญของเซตเหล่านั้นคือ [32,126] คือชุดของอักขระ ASCII ที่พิมพ์ได้และ [10,15] คือชุดของตัวเลข Befunge ที่เข้าถึงได้ง่าย ฉันพบว่าจับคู่กับโปรแกรม python นี้ :

(a,b)∈[32,126]×[10,15]∧a2−b=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 bytes / 5 chars):

"ߞ".@

เวอร์ชั่นเก่า

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+,;

พุชค่า ascii สำหรับ 2014, -10 จากนั้นพิมพ์แต่ละภาพหลังจากเพิ่ม 10 ลงไป


78
en.wikipedia.org/wiki/Befunge ... นี่คือสิ่งที่ฉันไม่ได้ ...
— Plato

36
"ภาษาที่ถูกสร้างขึ้นมาโดยคริสเพรสซีย์ในปี 1993 เป็นความพยายามที่จะประดิษฐ์ภาษาซึ่งเป็นเรื่องยากที่จะรวบรวมเป็นไปได้" ...
— จะ

7
@ 11684 ผลลัพธ์ค่อนข้างชัดเจนในคำถาม หากโปรแกรมที่พิมพ์ออกมา: randomstuff2randomstuff0randomstuff1randomstuff4ฉันจะไม่ถือว่าเป็นโซลูชันที่ถูกต้อง
— Cruncher

7
@Plato แทนที่จะอ่านบทความวิกิพีเดีย (ซึ่งรวมถึง Befunge 93 เท่านั้น) หากคุณต้องการเรียนรู้เกี่ยวกับ Befunge 98 ให้อ่านรายละเอียดอย่างเป็นทางการ
— Justin

3
วิกิพีเดีย: 'ภาษานี้ถูกสร้างขึ้นโดย Chris Pressey ในปี 1993 เพื่อพยายามประดิษฐ์ภาษาที่ยากต่อการรวบรวมเท่าที่จะเป็นไปได้' ... แต่ทำไม?
— CousinCocaine

239

ทับทิม, 15

p Time.new.year

ชั่วคราว;)


โปรดทราบว่าส่วนของคำถาม

เป็นอิสระจากตัวแปรภายนอกใด ๆ เช่นวันที่หรือเวลาหรือสุ่มเมล็ด

ไม่ถูกแก้ไขจนกว่าจะนานหลังจากที่ฉันโพสต์คำตอบของฉัน ...


Jan Dvorak เสนอทางเลือกที่ดีในการแสดงความคิดเห็น :

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
— John Dvorak

5
@ ฮอบส์ไม่มันไม่ใช่; คำถามไม่ได้พูดอะไรเกี่ยวกับเรื่องนี้
— Doorknob

12
วิธีนี้จะทำงานได้อย่างถูกต้องในบางครั้ง
— hippietrail

119
มันทำงานได้ดีในการทดสอบทั้งหมดจนถึงปัจจุบัน
— CoderTao

7
ฉันเชื่อว่าจิตวิญญาณของคำถามคือการพูดปีปัจจุบัน [ซึ่งเกิดขึ้นเป็น 2014 ในปีนี้] วิธีการแก้ปัญหานี้จึง "พกพา" มากกว่าเวลาที่ยอมรับได้;) คุณ (และ Jan Dvorak) ได้รับคะแนนของฉัน!
— Olivier Dulac

223

ไป 2 ไบต์ (UTF-16)

อักขระ Unicode หนึ่งตัว (2 ไบต์ในรูปแบบ UTF-16, 3 ไบต์ในรูปแบบ UTF-8) เอาท์พุท 2014 เป็นส่วนหนึ่งของข้อผิดพลาด

—

http://ideone.com/dRgKfk

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

7
มันฉลาดมาก แต่คำถามก็ขอให้โปรแกรมพิมพ์หมายเลขออกมา
— HelloGoodbye

40
หากมีการนับรหัสข้อผิดพลาดที่พิมพ์การส่งนี้จะชนะ
— ToastyMallows

37
+1 คำถามไม่ได้พูดว่า "พิมพ์เฉพาะจำนวนและไม่มีอะไรอื่น"
— Kaz

1
ฉันไม่สนใจว่ามันจะถูกต้องหรือไม่มันยอดเยี่ยมมาก
— โปรแกรม Redwolf


177

Python 26

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

53
bbc คือ 2014 ในฐาน 13
— Darren Stone

71
ฉันถือว่าการใช้ตัวละคร 'bbc' และการใช้ฐาน 13 เป็นบรรณาการดักลาสอดัมส์ "ฉันอาจจะเสียใจ แต่ฉันไม่เขียนมุขในฐาน 13"
— Brian Minton

10
13 ปีที่แล้ว ฉีก.
— Darren Stone

4
IMO คำตอบนี้อยู่ใน "True Pythonese"
— kmonsoor

8
@BrianMinton: การใช้ฐาน 13 อาจเป็นเพราะมันเป็นเพียงฐานระหว่าง 2 และ 36 ที่ช่วยให้จำนวน 2014 ที่จะเป็นตัวแทนโดยไม่ต้องมีตัวละคร-0 9
— dan04

146

MATLAB, Scala (4 ตัวอักษร, 5 ไบต์)

คุณสามารถใช้ประโยชน์จากระบบที่ค่อนข้างอ่อนแอของ MATLAB (และ Scala) ได้ที่นี่ เคล็ดลับคือการใช้การดำเนิน+การunary บนสตริงที่ประกอบด้วยอักขระเท่านั้นߞ(ของรหัสจุด UTF-8 U + 07DE หรือ 2014 เป็นทศนิยม) การดำเนินการนี้เป็นการแปลงสตริงเป็น double (ใน MATLAB) และเป็นInt(ใน Scala):

+'ߞ'

รายละเอียดจำนวนไบต์:

  • + คือ ASCII และนับเป็น 1 ไบต์
  • ' คือ ASCII และนับเป็น 1 ไบต์ (แต่ปรากฏสองครั้งในนิพจน์)
  • ߞ เป็นอักขระ UTF-8 ขนาด 2 ไบต์

ทั้งหมด: 5 ไบต์

TeX (32 26 ตัวอักษรจำนวนไบต์มากที่สุด)

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

ทางเลือกที่สั้นกว่านี้ (เสนอโดยโจเซฟไรท์ ) คือ

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

XeTeX / LuaTeX (13 ตัวอักษร, 14 ไบต์)

หากอนุญาตให้ XeTeX หรือ LuaTeX สามารถใช้อินพุต UTF-8 ได้โดยตรง (ตามที่Joseph Wrightเสนอ):

\number`ߞ\bye

\let~\number~`^^T~`^^N\bye25 ตัวอักษร / ไบต์ คุณนับว่าผิด IMHO ก็เป็น 25 สำหรับการแก้ปัญหาของคุณเช่นกัน
— yo '

1
@tohecz ฉันคิดว่าโซลูชันของเรามีความยาว 26 ไบต์จริง ๆ
— jub0bs

1
หากต้องการปีปัจจุบันให้ป้อน 13 ไบต์:\the\year\bye
— yo '

2
+'ߞ'ยังใช้งานได้ใน Scala (และภาษาอื่น ๆ ที่ฉันจินตนาการ)
— theon

118

dc, 6 ตัวอักษร

DiBBCp
  • D เพิ่ม 13 ในสแต็กแม้กระทั่งค่าอินพุตรัศมีคือ 10 ในตอนแรก
  • i เปลี่ยน radix อินพุต (เป็น 13 จาก 10)
  • BBC คือ 2014 ฐาน 13
  • p พิมพ์

เอาต์พุตคอนโซล:

$ dc <<< "DiBBCp"
2014

10
เป็นจริง แต่โปรแกรม dc จริงยังคงอยู่DiBBCp(6 ตัวอักษร) ส่วนที่เหลือเป็นเพียงวิธีในการเรียกใช้
— daniero

11
ฉันจะลงคะแนนให้ แต่มันมี 42 คะแนน! ใช้ฐาน 13 และคำว่า BBC ช่างยอดเยี่ยมจริงๆ! ดูเหมือนว่าปีนี้เราจะได้พบกับคำถามสำหรับชีวิตจักรวาลและ Everithing ;-) en.wikipedia.org/wiki/Base_13 ฉัน upvoting ความคิดเห็นของ @ daniero แทนและออกจากคำตอบกับชื่อเสียงอันงดงาม 42 นี้ ;-)
— Pablo Marin-Garcia

4
@ PabloMarin-Garcia โชคไม่ดีที่บางคนไม่รู้จักทำลายมัน ... มี 43 คะแนนตอนนี้ โปรดย้อนกลับและโหวตลง! :)
— โทมัส

3
@Tomas Vogons เป็น Vogons เสมอ การต่อต้านนั้นไร้ประโยชน์เมื่อเทียบกับระบบอวกาศ
— Pablo Marin-Garcia

2
ฉันไม่สามารถหาDคำสั่งในหน้าคู่มือได้ มันทำอะไร? ไม่เป็นไร
— หรอก

93

รหัสมอร์ส, 23

;)

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

21
"ในภาษาใด ๆ ที่มีหมายเลขโทเค็นที่ถูกต้อง"
— Doorknob

14
"..---" เป็นโทเค็นที่ถูกต้องใน 5 จังหวะสำหรับหมายเลขสองใช่มั้ย เช่นเดียวกับ "4" เป็นโทเค็นที่ถูกต้องในสามจังหวะสำหรับหมายเลข "สี่"
— DavidC

8
อักษรเบรลล์อาจสั้นกว่านี้ :)
— Dr. belisarius

31
จุดดี. แต่ฉันก็โล่งใจที่ไม่มีใครถามว่าจะให้มอร์สโค้ดทำงานบนคอมพิวเตอร์ได้อย่างไร
— DavidC

14
@DavidCarraher คุณหมายถึงอะไร? โดยปกติฉันคิดว่าคุณใช้ repo นี้เพื่อถอดรหัสมัน github.com/Nyubis/mspa-morse-decoderทุกคนทำมัน ...
— Michael J. Calkins

88

72 45 ตัวอักษรในรหัส; รหัสตัวอักษรเป็นศูนย์

นี่อยู่ไกลจากคำตอบที่สั้นที่สุดที่โพสต์ แต่ยังไม่มีใครโพสต์คำตอบที่

  • ไม่ใช้รหัสตัวอักษรแทนตัวเลขและ
  • ไม่เรียกวันที่ของระบบ

การใช้คณิตศาสตร์บริสุทธิ์ (โอเคและการแปลงบูลีนอัตโนมัติ) ใน R จากคอนโซล R:

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

พิมพ์จำนวน 2014. Tเป็นคำพ้องที่กำหนดไว้ล่วงหน้าสำหรับความจริงในอาร์floorและexpฟังก์ชั่นที่มีอยู่ในแพคเกจฐานโดยตรงเช่นเดียวกับpiค่าคงที่ R ไม่มีตัวดำเนินการที่เพิ่มขึ้น แต่การทำซ้ำ(x*x)กลายเป็นอักขระที่น้อยลงซึ่งทำการเพิ่มและลดละสองครั้ง


รุ่นดั้งเดิมใน 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

ป.ล. ถ้าคุณสามารถทำให้อัลกอริทึมเดียวกันสั้นลงในภาษาอื่นให้โพสต์ความคิดเห็นด้วย


1
o =! ""; (o + o) + "" + (oo) + (o + oo) + (o + o + o + o + o)
— เคอร์เนล James

4
25 ไบต์: การแจ้งเตือน ('ߞ'. charCodeAt ())
— oberhamsi

1
+1 อย่างไรก็ตามคุณอ้างว่าคำตอบของคุณเป็นคำตอบแรกที่ "ไม่ใช้รหัสตัวอักษรแทนตัวเลขและไม่เรียกวันที่ของระบบ" นั่นเป็นเรื่องจริงเท็จ คำตอบของฉันมีวิธีแก้ปัญหานี้cdd**e-.@(โพสต์ต่อหน้าคุณ) ซึ่งไม่ได้ใช้รหัสตัวอักษรหรือวันที่ของระบบ มันคำนวณจำนวนปี 2014 c, dและeเป็นหลักเลขฐานสิบหก a,, b... , fpush (ตามลำดับ) 10,11, ... 15 ดังนั้น12 * 13 * 13 - 14การคำนวณ
— Justin

นี่ไม่ใช่คำตอบแรกที่ไม่ใช้รหัสอักขระ ฉันมีหลายรุ่นก่อนหน้านี้
— Timtech

1
@Quincunx: ถูกต้อง; ฉันอ่านไม่ทันว่าเวอร์ชั่นของคุณใช้เลขฐานสิบหกไม่ใช่รหัสตัวอักษร
— AmeliaBR

85

สกาลา REPL

34 29 ตัวอักษร

+"Happy new year to you!".sum

โอเคถ้าคุณต้องการให้มันเล่นกอล์ฟด้วยตัวอักษรใด ๆ คุณสามารถใช้:

'@'*' '-'"'

หรือ

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

ซึ่งมี 11 และ 22 ตัวอักษรตามลำดับ


4
ความคิดที่น่าสนใจแม้ว่ามันจะไม่ใช่กอล์ฟโดยเฉพาะ แต่สตริงตัวเองทำให้มันน่าสนใจกว่าสิ่งที่ใช้ไบต์สูงหรืออะไรแบบนั้น
— Konrad Borowski

ฉันเพิ่มเวอร์ชัน golfed
— Mikaël Mayer

คุณสามารถบันทึกอักขระสองสามตัวจากtoIntแบบนี้: +"Happy new year to you!".sum ทดสอบ
— theon

Updated ฉันไม่ทราบว่า + อาจเป็นคำนำหน้า
— Mikaël Mayer

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
— Konrad Borowski

1
มันดูน่าสนใจ มันทำอะไร?
— Justin

7
@Quincunx: มันไม่ bitwise (0x00 เปลี่ยนเป็น 0xFF และ 0x7F เปลี่ยนเป็น 0x80) ในตัวละครทุกตัวของสตริง เนื่องจากสตริงเป็นตัวระบุที่ถูกต้อง (ทุกสิ่งที่มีชุดบิตสูงเป็นตัวระบุสำหรับ PHP อาจสนับสนุนการเข้ารหัสอื่น ๆ ) PHP คิดว่ามันคงที่ แต่เนื่องจากไม่ได้กำหนดไว้จึงถือว่าเป็นสตริง
— Konrad Borowski

2
เนื่องจากคำถามคือ "ตอนนี้เป็น 2014 ... " แล้วecho date('Y');ล่ะ
— John

6
@John: ไม่ หากคุณจะอ่านความคิดเห็นสำหรับคำถามคุณจะสังเกตเห็นว่า OP ไม่ต้องการให้ได้รับปีปัจจุบันเป็นคำตอบ นอกจากนี้<?=date(Y);จะเป็น 11 ตัวอักษรและฉันมีทางออกใน 9 ตัว
— Konrad Borowski

67

C, 33 ไบต์

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

19
น่ารำคาญเพียงใดที่การแยกตัวประกอบเฉพาะของปี 2557 ต้องใช้ ASCII 5!
— Ben Jackson

ฉันได้รับ (int a; YES; a ++) {NSLog (@ "%%", a);} สำหรับ Cocoa Touch วัตถุประสงค์ C แต่ฉันยังไม่สามารถเพิ่มได้ (ยังไม่ได้รับคะแนนมากพอ) มันแสดงปี 2014 ในที่สุดและมีข้อผิดพลาดในการคอมไพเลอร์และเป็นไปได้ที่มันอาจจะไม่ทำงานเลย
— เหล็กรีไซเคิล

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

1
@mjy คำสั่ง Byte ของตัวอักษรหลายตัวไม่รับประกัน
— Jonathon Reinhart

@JonathonReinhart ตัวอักษรหลายตัวเป็นการนำไปใช้โดยสิ้นเชิง
— FUZxxl

54

Mathematica, 14 ตัวอักษร (หรือ 15 ถ้าคุณนับบิตแมปเป็นตัวอักษร)

TextRecognize @ป้อนคำอธิบายรูปภาพที่นี่


50
ที่จริงแล้วคุณควรนับจำนวนไบต์ดังนั้นมันจึงมีขนาด 14+ ขนาดของรูปบิตแมป
— Sylwester

22
บิตแมปอาจจะเป็น 7,357 ตัวอักษรจริงๆ
— Joe Z.

5
นอกจากนี้ฉันเชื่อว่าบางไบต์ในภาพตกลงไปใน\dช่วง กล่าวคือถ้าเป็น GIF ส่วนหัวนั้นรับประกันว่าจะมีบางส่วน
— John Dvorak

13
คุณเป็นคนฆ่าจอย ดีใช้ First @ ToCharacterCode @ "ߞ" สำหรับ 25 ตัวอักษร 26 ไบต์
— Michael Stern

9
เป็นโบนัสนี่เป็นวิธีแก้ปัญหา Mathematica ใน 30 ตัวอักษร --URLFetch @ " goo.gl/miVwHe "
— Michael Stern

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.
>>> 

สิ่งนี้จะไม่ทำงานเมื่อมีคนอัปเดต Python 3 ของพวกเขาต่อปีนับจากนี้
— Joe Z.

21
นั่นเป็นเหตุผลที่ฉันพูดถึงpython3.4.0b2มันจะไม่เกิดขึ้นสองครั้ง วันที่เผยแพร่ไม่ใช่วันที่ระบบ
— คุณ

6
นี่ทำให้ฉันยิ้มได้!
— Matt Fletcher

2
ใช้งานได้ใน Python 3.4.2
— Erik the Outgolfer

คุณไม่ได้รับอนุญาตให้เพิ่มเอาต์พุตภายนอก
— MilkyWay90

48

Javascript ขนาด 23 ไบต์

ใช้การแปลงฐาน 64

alert(atob("MjAxNA=="))

23 ตัวอักษร (16 กับ atob ด้วยตัวเอง)

หรือ

alert("MMXIV") // ;)

27
MMXIVไม่มีตัวละครที่เหมือนกันกับที่2014ฉันตรวจสอบล่าสุด ...// ;)
— โจ Z.

23
ชาวโรมันโบราณอาจไม่เห็นด้วย คนแรกผลิต 2014 แม้ว่าในภาษาอังกฤษที่ทันสมัย
— logic8

1
คนแรกของคุณไม่ออกแม้ว่า ...
— Doorknob

1
หากคุณเปิดคอนโซลในโครเมี่ยมให้วางแล้วกด Enter เพื่อคืนค่า - ฉันจะเพิ่มการแจ้งเตือนให้นานกว่าคอนโซลอื่น
— logic8

5
@ logic8: ดีหนึ่ง +1 อีกรุ่น JavaScript ที่ใช้งานได้: (4 ไบต์) [!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]- alert([!+[]+!+[]]+[+[]]+[+!+[]]+[!+[]+!+[]+!+[]+!+[]]);แม้ว่าฉันไม่แน่ใจว่าเป็นไปตามJoe Zข้อกำหนดของ
— Nope

41

Perl - 10 ตัวอักษร

โซลูชันนี้ได้รับความอนุเคราะห์จาก BrowserUK บน PerlMonksแต่ฉันได้ลบเครื่องหมายวรรคตอนและช่องว่างที่ไม่จำเป็นออกจากโซลูชันที่เขาโพสต์ไว้ มันเป็นบิต "ไม่ใช่" ในสตริงไบนารี่สี่ตัวอักษร

say~"ÍÏÎË"

อักขระที่แสดงด้านบนแสดงถึงเลขฐานสอง octa cd: cf: ce: cb และเป็นวิธีที่ปรากฏใน ISO-8859-1 และ ISO-8859-15

นี่คือสคริปต์ทั้งหมดในฐานสิบหกบวกกับตัวอย่างที่เรียกใช้:

$ 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

สิ่งนี้ใช้ bitwise "หรือ" ในสองสายอักขระสี่ตัว"RPQT"และ"````"(นั่นคือสี่ backticks)

$ ~/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

(ตอนแรกฉันมีสองสายในทางตรงกันข้ามซึ่งต้องการช่องว่างระหว่างprintและRPQTเพื่อแยกโทเค็น @DomHastings ชี้ให้เห็นว่าโดยการสลับพวกเขาไปรอบ ๆ ฉันสามารถบันทึกตัวละคร)

Perl (โกง) - 8 ตัวอักษร

นี่อาจจะไม่ได้อยู่ในจิตวิญญาณของการแข่งขัน แต่hdb บน PerlMonks ได้ชี้ให้เห็นว่า 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
เฮ้มีถ้าคุณย้อนกลับสตริงและ barewords print"````"^RPQTคุณสามารถบันทึกถ่าน: อาจเป็นไปได้ที่จะใช้sayกับ 5.10+ ด้วยการใช้ -E แทน -e แต่ฉันไม่รู้ว่ามันจะมีค่าปรับ +2 สำหรับบรรทัดคำสั่งอื่นหรือไม่
— Dom Hastings

2
ถือว่ายอมรับได้เพื่อระบุว่าคุณใช้ Perl 5 และใช้งานโดยsayไม่มีการลงโทษ
— Peter Taylor

@ DomHastings โดยส่วนตัวฉันคิดว่าถ้าคุณจะทำกับ "-e" หรือ "-E" ฉันจะบอกว่าคุณควรจะรวมคำสั่งทั้งหมดรวมถึง "perl -E" ในการนับตัวละครของคุณ .
— tobyink


4
say ABCD^srrpนอกจากนี้คุณยังอาจจะช่วยไบต์อื่นโดยใช้ตัวอักษรของสตริงที่ไม่ต้องใช้คำพูดเช่น
— primo

40

ทับทิม, 20

p 'bbc'.to_i ?\r.ord

คำอธิบาย: bbcอยู่2014ในฐาน 13 ตัวสั้นกว่า Python ไม่สั้นเท่ากับ Forth


23
"ไม่มีใครเขียนเรื่องตลกในฐาน 13!"
— Jean-Michaël Celerier

1
? W = $; "^ XA [_AXeMFGIAHJLjKNAEFEJJNHQHNKLAEMINJOJOHLAGKHOJOJ [เอจี [HQHRFJAH} IHAIGGwIIAHHGwKHAHGHrEUAGQFiGVAGQGfIPAFHKHHbJHAQII] MGASHNSOHATIdIAUJJRLIAWLIQGKAZOFUA] ZAeSAiPAjOAkLA" .codepoints {| R | r- = 68; $> << (R <0 ?? \ n: (w = W = =? $? '':? $) * r)}
— Darren Stone

1
p 'ߞ'.ordสำหรับโปรแกรมการทำงานอย่างเต็มที่ภายใน'ߞ'.ord irbใช้งานได้ตั้งแต่
— 1.9+

1
ไม่มีตัวอักขระ Unicode "แปลก": ?-*?--?\v(45 * 45 - 11) (Ruby 1.8)
— Ricardo Panaggio

ตัวละครตัวเล็ก: ?.*?.-?f(46 * 46 - 102) (Ruby 1.8 เท่านั้นอีกครั้ง)
— Ricardo Panaggio

29

พาวเวอร์เซลล์, 9

+"ߞ"[""]

ߞ( U + 07DE NKO จดหมาย KA ) นับเป็นไบต์ที่สองตามข้อมูลแท็กรหัสกอล์ฟ

[""]ส่งคืนอักขระตัวแรกจากสตริง ( ""ถูกแปลงเป็น0) unary plus opeartor ( +) แปลงอักขระเป็นจำนวนเต็ม


1
ตามcodegolf.stackexchange.com/tags/code-golf/infoควรนับเป็น 9 ตัวอักษร
— Konrad Borowski

@GlitchMr ขอบคุณฉันแก้ไขคำตอบแล้ว
— Danko Durbić

3
นี่['']เป็นกลลวงที่ดี ฉันมักจะใช้[char]แต่ที่แน่นอน :) สั้น
— โจอี้

27

Scala REPL - 6 ตัวอักษร

"?="##

( ##คือความหมายสัญลักษณ์ของ Scala hashCodeและสตริง Java "?="hashes ถึง 2014)

Scala REPL - 4 ตัวอักษร 5 ไบต์

+'ߞ'

คณิตศาสตร์ในอักขระ Unicode Intชื่นชอบของเราผลิต


27

Javascript, 18 ตัวอักษร

alert(btoa('ÛMx'))

อัปเดต:ใน ES6 การใช้เทมเพลตตัวอักษรสามารถบันทึกอักขระได้สองตัว:

alert(btoa`ÛMx`)

รหัสข้างต้นค่อนข้างง่ายต่อการเข้าใจโดยคำนึงถึงว่าbtoaแปลงสตริงเป็นสตริงอื่นตามชุดของกฎที่กำหนดไว้อย่างดี ( RFC 4648 ) เพื่อดูว่าการแปลงทำงานอย่างไรเราจะเขียนสตริงอินพุต "ÛMx" เป็นลำดับเลขฐานสองโดยที่แต่ละอักขระจะแสดงผลเป็นรหัสอักขระ 8 บิต

ป้อนอักขระ | Û | M | x
รหัสตัวละคร (ทศนิยม) | 219 | 77 | 120
รหัสอักขระ (ไบนารี) | 11011011 | 01001101 | 01111000

หลังจากจัดระเบียบเลขฐานสองใหม่ในแถวสุดท้ายในกลุ่ม 6 เราจะได้รับการแทนเลขฐานสองของตัวเลขใหม่ 4 ซึ่งสอดคล้องกับดัชนี Base64 ของ 4 ตัวอักษรในสตริง "2014"

ดัชนี Base64 (ไบนารี) | 110110 110100 | 110101 | 111000
ดัชนี Base64 (ฐานสิบ) | 54 | 52 | 53 | 56
อักขระเอาท์พุท 2 | 0 | 1 | 4

ตามข้อกำหนดของ HTML, ตัวละครที่ส่งออกสามารถเรียกข้อมูลจากดัชนี Base64 ของตนตามตารางนี้: http://dev.w3.org/html5/spec-LC/webappapis.html#base64-table

หากคุณไม่สนใจรายละเอียดคุณสามารถให้เบราว์เซอร์ทำการคำนวณให้คุณและพบว่า "ÛMx" เป็นผลมาจากการประเมินatob('2014')ใน Javascript


คำถามที่กล่าวถึงการพิมพ์จำนวน ฉันรู้ว่าการประเมินผลในคอนโซลจะนำไปสู่ผลลัพธ์ที่ส่งคืน แต่โดยทั่วไปแล้วCode Golfคาดว่าคำตอบของ JS จะรวมถึงรูปแบบของ IO ( alertโดยทั่วไป)
— zzzzBov

@zzzzBov ใช่คำตอบเดิมของฉันรวมถึงการalertโทร
— GOTO 0

จะแสดงชุมชนalertว่ามีการออก ฉันสงสัยว่ามาตรฐานมีการเปลี่ยนแปลงสำหรับ codegolf JS หรือไม่ว่าเป็นเพียงการเปลี่ยนแปลงที่นำโดยชุมชน
— zzzzBov

@zzzzBov: มันเป็นการเปลี่ยนแปลงโดยผู้ใช้นิรนามที่ยอมรับโดย SHiNKiROU และ luser droog อย่างไรก็ตามการแก้ไขนี้ทำให้เกิดการอภิปรายใน Meta ( meta.codegolf.stackexchange.com/questions/803/… )
— Konrad Borowski

@ แก้ไขด่วนไม่ใช่การแก้ไขเพียงอย่างเดียวที่ทำให้ฉันถามคำถามเกี่ยวกับ meta ฉันเห็นโค้ดกอล์ฟมากพอที่ผู้คนไม่เห็นด้วยกับเรื่องที่ว่าคอนโซล dev นับเป็นงานพิมพ์หรือไม่ฉันคิดว่ามันคุ้มค่าที่จะขอมาตรฐาน
— zzzzBov

24

อีกรายการ GolfScript อีก 9 ตัวอักษรที่พิมพ์ได้

ฉันเชื่อว่านี่สั้นกว่ารายการ GolfScript ที่สามารถพิมพ์ได้:

"!="{*}*)

( รายการ 7 char ของปีเตอร์เทย์เลอร์ชนะ แต่รวมถึงตัวควบคุมที่ไม่สามารถพิมพ์ได้)

ผมเรียกนี้ "นั่นคือเพื่อให้ปีที่ผ่านมา!" เนื่องจากสิ่งที่จริงแล้วสร้างหมายเลข2013ใน 8 ตัวอักษรเป็น 33 × 61 และเพิ่มทีละหนึ่ง ;-)


คุณชนะ (สำหรับ ascii golfscript)
— 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 ธ.ค. หรือเลขฐานสิบหก 2014 บันทึกหนึ่งอักขระถ่านหนึ่งตัวอักษรและสองสตริงในรูปแบบ
— MSalters

'b'*'S'@MSalters ไม่เป็น 8134 ตัวประกอบสำคัญของ 8212 คือ 2 * 2 * 2053 ดังนั้นฉันไม่เห็นวิธีง่าย ๆ ในการสร้าง
— fredoverflow

Bah ตรวจสอบกับการหารจำนวนเต็มว่า8212/'b' == 'S':(
— MSalters

และ octal ไม่ทำงานเช่นกัน (02014 = 1036 = 37 * 28, 28 ไม่สามารถพิมพ์ได้)
— MSalters

1
@ FredOverflow แล้ววิธีแก้ปัญหาถ่าน 28 ตัวของฉันล่ะ? main () {ใส่ (__ วันที่ __ + '\ a');}
— อรุณประศาสราชกุมาร

20

มา 14

'> '" * '^ - .      

1
คุณอธิบายได้ไหมว่ามันทำงานอย่างไร
— ProgramFOX

1
ฉันแสดงค่าคงที่จำนวนเต็มเป็นตัวอักษรตัวอักษรโดยใช้ค่าเลขลำดับ (ASCII) ดังนั้นนี่คือ: 62 34 * 94 - . ถ้าคุณไม่ได้พูดออกมา, print (62 * 34 - 94)ที่นี้หมายถึง
— Darren Stone

Forth (Gforth 0.7.0), 5 ไบต์, 4 ตัวอักษร: 'ߞ .มันพิมพ์อักขระ
— 18446744073709551615

20

GolfScript, 14

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

มันทำงานอย่างไร: ASCII มีลักษณะเช่นนี้:

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

ดังนั้นจะใช้รหัส ASCII ของตัวละครแต่ละตัวลบห้าและเกาะมันในสตริง

{...}%ใช้อาร์เรย์ของอักขระของสตริงที่แม็พเมื่อกำหนดสตริงเป็นอาร์กิวเมนต์ ดังนั้นมันจะเพิ่มอักขระแต่ละตัวทีละ 5 ( )หมายถึงการเพิ่มขึ้น)


+ที่สิ้นสุดไม่จำเป็น นอกจากนี้แทนที่จะเพิ่มขึ้น 5 ครั้งเพียงแค่เพิ่มห้าครั้ง ประหยัดทั้งหมด: 4 ตัวอักษร '-+,/'{5+}%
— Justin

15
@Quincunx 5เป็นตัวเลข
— Peter Taylor

5
@PeterTaylor ฉันลืมไปตลอด
— Justin

วิธีแก้ปัญหาที่ชาญฉลาด
— Sumurai8 8

เวอร์ชั่น CJam ของสิ่งนี้: "-+,/"_,)f+. :) (จากนั้นอีกครั้งมี CJam KD)
— มาร์ตินเอนเดอร์

19

Python 32 ตัวอักษร

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

อาจเป็นไปได้ที่จะลดขนาดลงโดยใช้ Unicode char ปี 2014 ߞแต่ฉันไม่ได้ลอง

Quincunx ตั้งข้อสังเกตว่า

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

สั้นลงสามตัวอักษร


รุ่น Unicode ทำงานอย่างน้อยในหลาม 3 print(ord("ߞ"))IDLE: ดูเหมือนจะไม่ทำงานใน Python 2 Python 2 อาจไม่รองรับ Unicode
— Justin

3
นอกจากนี้สำหรับรุ่นของคุณa=ord('.');print(a*a-ord('f'))จะสั้นกว่า 2 ตัวอักษร
— Justin

@Quincunx มันรองรับ แต่คุณต้องมีการเข้ารหัสที่กำหนดไว้ในไฟล์ของคุณและผนวกuที่ส่วนท้ายของสตริง (จะ"ߞ"u)
— Kroltan

2
@ Kroltan ที่จริงแล้วฉันค่อนข้างมั่นใจว่าส่วนที่สองนั้นไม่เป็นความจริง ในหลาม 2 คุณต้องย่อหน้าสตริงกับuจะบอกว่าพวกเขาเป็น Unicode แต่ในหลาม 3 สตริงทั้งหมดโดยอัตโนมัติ Unicode
— murgatroid99

1
คล้ายกับที่แสดงความคิดเห็นข้างต้นโดยไม่ใช้ Unicode print ord('.')**2-ord('f')จะสั้นกว่าเล็กน้อย
— MLS

18

APL (6 ไบต์, 4 ตัวอักษร)

⊃⎕TS

ทำงานได้เฉพาะปีนี้เท่านั้น

ทำไมมันถึงได้ผล

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

โดยไม่ต้องพึ่งพาวันที่ของระบบมันคือ10 ไบต์ (7 ตัวอักษร):

⎕UCS'ߞ'

6
น่าเสียดายที่คำตอบที่ใช้งานได้สำหรับปีนี้ไม่ถูกต้องเท่านั้น
— Joe Z.

ฉันไม่รู้จัก APL: กล่องสี่เหลี่ยมนั้นเป็นถ่าน APL หรือฉันไม่มีการแสดงแบบอักษร (Chrome)
— Carl Witthoft

@JoeZ .: คำถามไม่ได้บอกว่า แต่ฉันได้เพิ่มหนึ่งที่ไม่ได้พึ่งพามันเป็นปี 2014
— marinus

4
@CarlWitthoft: มันเรียกว่ารูปสี่เหลี่ยม ( ⎕) มันควรจะมีลักษณะเช่นนั้น
— marinus

18

Python 32 10 ไบต์, 91 85 (66 ที่mathนำเข้าโดยค่าเริ่มต้น) ไบต์บริสุทธิ์ทางคณิตศาสตร์

มีความสนุกสนานเขียนนี้:

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)

พิมพ์วิธีที่เป็นไปได้ทั้งหมดที่ฉันสามารถเขียนได้2014โดยใช้วิธีการของBruno Le Floch (32 ตัวอักษร):

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

6
@MLS ดีที่มีหลักในนั้น :)
— โจอาคิม Isaksson

2
ฉันปรับรุ่นคณิตศาสตร์ของคุณให้เหมาะสม: a,b=int(e),int(pi);c=a+a;print a**(b*c-c+b)-a*a**c-aและคุณสามารถกำจัดการนำเข้าคณิตศาสตร์ทั้งหมดโดยการใช้ประโยชน์จากความจริงที่ว่าTrueใน Python 2.x นั้นเหมือนกับเลขจำนวนเต็ม 1 ในการดำเนินการทำให้มีความยาวสูงสุด 50 อักขระ: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 ตัวเลขไม่มีตัวเลข;)
— Mega Man

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) ได้รับการจัดการโดย R ในบริบทนี้เป็นจำนวนเต็ม 13 เอาต์พุต:

> 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! และฉันหวังว่าวิธีแก้ปัญหาตัวเลขโรมันของฉันจะดีที่สุด ... :( ;-)
— Tomas

ตัวแปรด้านล่างสามารถทำให้สั้นลงได้: cat(a<-T+T,T-T,T/T,a^a,sep="")(30 ตัวอักษร), paste0(aT+T,T-T,T/T,a^a)(26 ตัวอักษร)
— โทมัส

@Tomas ฟังก์ชั่นไม่ได้รับอนุญาตเนื่องจากมีสัญลักษณ์paste0 0วิธีการแก้ปัญหาของคุณทำให้ 30 catตัวอักษรถ้าใช้
— djhurio

สร้างไฟล์2014ในไดเรกทอรีปัจจุบันและเขียนlist.files()- 12 ตัวอักษร
— Zbynek

@ Zbynek ฉันคาดว่าทางออกของคุณจะไม่ถูกต้องในขอบเขตทั่วไปของกฎ codegolf
— djhurio

15

ชวา - 77 75 ตัวอักษร

75 ตัวอักษรหากprintมีการเพิ่มในชั้นเรียนด้วยวิธีการหลัก:

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

มันหมายความว่า35*60-86ซึ่งเท่ากับ 2014


2
ฉันชอบสูตรของคุณ
— โยฮันเนส

7
สิ่งนี้จะต้องมีความยาวมากกว่าเดิมเพราะคำจำกัดความของคลาสจะต้องอยู่ในการเรียกใช้ วิธีที่สั้นที่สุดที่ฉันรู้ (กับ Java 6):class a{static{System.out.println('#'*'<'-'V');}}
— Justin

1
@Quincunx ซึ่งใช้ Java 7 จำเป็นต้องใช้วิธีการหลัก
— True Soft

2
@TrueSoft Note ฉันพูดว่า "with Java 6" คุณควรเลือก Java ที่สั้นที่สุดเท่าที่จะเป็นไปได้
— Justin

2
คุณสามารถลบ 'ln' ใน println เพื่อลด chars ...
— laksys
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.