เอาต์พุตที่มีจำนวนหลักของ pi เท่ากันกับความยาวของโค้ด


9

ความท้าทายของคุณคือการพิมพ์ xตัวเลขของปี่ที่xมีความยาวรหัสของคุณ

ตัวอย่าง:

Source code (length) -> output
foo!        (4)         3.141
foobar      (6)         3.14159
kinda long  (10)        3.141592653
+++++       (5)         3.1415
123456789   (9)         3.14159265

คุณสามารถใช้ได้ floor(π/10 * 10code_length) / 10code_length - 1เพื่อกำหนดจำนวนหลักที่คุณต้องการพิมพ์ โปรดทราบว่าจุดทศนิยมไม่นับเป็นหลักของไพ - ดังนั้นโค้ดของความยาว 3 ควรมีเอาต์พุต3.14, ของความยาว 4

กฎ:

  • ความยาวรหัสของคุณจะต้องมากกว่าสามตัว
  • คุณไม่สามารถใช้ช่องโหว่มาตรฐานใด ๆ
  • คุณสามารถใช้วิธีการส่งออกมาตรฐานที่ได้รับอนุญาต
  • คุณไม่สามารถอ่านซอร์สของคุณเพื่อกำหนดความยาวโค้ด
  • คุณไม่สามารถใช้ค่าคงที่บิวด์อินได้
  • Pi จะต้องแม่นยำอย่างสมบูรณ์และไม่ใกล้เคียง
  • จำเป็นต้องมีจุดทศนิยมในเอาต์พุต หากคุณเลือกที่จะส่งออกผ่านทางค่าตอบแทนคุณจะต้องกลับจำนวนเต็มทศนิยม
  • เป้าหมายของความท้าทายนี้คือการหาทางออกที่สั้นที่สุดในแต่ละภาษาไม่ใช่ภาษาที่สั้นที่สุดสำหรับการแก้ปัญหา อย่ากลัวที่จะโพสต์โซลูชันเป็นภาษาเมื่อมีการโพสต์โซลูชันที่สั้นกว่าในภาษาเดียวกันตราบใดที่โซลูชันของคุณใช้วิธีการอื่น

... ดังนั้นสิ่งนี้จะถูกต้องหรือไม่?
Jonathan Allan

(แก้ไข ^ thisแม้ (การปัดเศษ))
Jonathan Allan

“ ความยาวรหัส” ←หน่วยเป็นไบต์หรือเป็นอักขระ?
ลินน์

@Lynn Bytes ตามปกติ
MD XF

เป็นเพียงการ3ได้รับอนุญาต?
NoOneIsHere

คำตอบ:


3

Japt , 9 4 ไบต์

สั้นที่สุดเท่าที่จะทำได้ :)

รวมถึงไม่สามารถพิมพ์ (อาหารเส้นกลับ charcode 141) #หลังจากที่

3.#

ทดสอบมัน

ใน Japt ตัวอักษรใด ๆ ที่ตามมา#จะถูกแปลงเป็นรหัสตัวอักษรและผนวกเข้ากับตัวเลขหรือจุดทศนิยมใด ๆ ที่อาจนำหน้าในกรณีนี้3.




6

VBA (Excel) 15 ไบต์

MsgBox 4*Atn(1)

เอาท์พุท: 3.14159265358979

ฉันคิดว่านี่ไม่เป็นที่ยอมรับเพราะฉันเล่นกอล์ฟเพื่อให้พอดีกับความยาวของ PI ความยาวที่ไม่ตีกอล์ฟของมันคือ 17 ไบต์ D:


1
ดูเหมือนกับว่าคุณยังไม่ได้รับการต้อนรับดังนั้นยินดีต้อนรับสู่เว็บไซต์!
MD XF

โอ้ขอบคุณครับท่าน! : D
remoel

Atnอาร์คแทนเจนต์ไม่ใช่เหรอ? ฉันไม่แน่ใจว่าสิ่งนี้ได้รับอนุญาตหรือไม่ ... ถาม OP
JungHwan Min

ฉันคิดว่า OP หมายถึง PI ในตัวเท่านั้น ความผิดฉันเอง.
remoel

5

เยลลี่ 6 ไบต์

3;⁽4ƒṾ

ลองออนไลน์!

พิมพ์3,14159ด้วยตัวคั่นทศนิยม "ยุโรป" ที่อนุญาต,คั่นทศนิยม

อย่างไร?

3;⁽4ƒṾ - Main link: no arguments
3      - literal 3                3
  ⁽4ƒ  - base 250 literal 14159   14159
 ;     - concatenate              [3,14159]
     Ṿ - unevaluate               ['3', ',', '1', '4', '1', '5', '9']
       - implicit print           3,14159

1
รายการหลักนั้นดูแปลก ฉันคิดว่ามีพิเศษ,'ในนั้น
Jonathan Frech

1
คุณสามารถทำ-ÆAær5และใช้.แทนได้,แต่จากนั้นมันจะเหมือนกับโซลูชันเยลลี่ของฉัน
Zacharý

4

Python 3 , 64 ไบต์

print("3.%d"%int("SIXW57LUPVBUA10HBQJOL57QLF54UT0U00KIN32O",36))

ลองออนไลน์!


งูหลาม 2 เทียบเท่า 60 print'3.%d'%int('3p3aqd50r7654t9ywkfkgsm0yx0bikcluxlhsm',36)ไบต์
Jonathan Allan

@JonathanAllan Python 2 ใน 59: tio.run/##K6gsycjPM/r/…
primo

@primo ดูเหมือนจะโพสต์ถ้า & เมื่อ ...
Jonathan Allan

1
@JanathanAllan ถ้าคุณหมายถึงเมื่อมันถูกเปิดอีกครั้งมันเป็นตอนนี้
MD XF


4

Desmos , 130 ไบต์

f\left(\right)=\frac{\operatorname{floor}\left(10^{128}\cdot 4\sum_{k=1}^{9^9}\frac{\left(-1\right)^{k+1}}{2k-1}\right)}{10^{128}}

ซอร์สโค้ดสำหรับสิ่งนี้ (ซึ่งสามารถเข้าถึงได้โดยการคัดลอกและวางทั้งด้านในและด้านนอกของ Desmos) ไม่เหมาะเมื่อสร้างโดยใช้ตัวแก้ไข Desmos ดังนั้นช่องว่างไม่กี่ไบต์จึงถูกลงที่เป็นไปได้

นี่เป็นการกำหนดฟังก์ชั่นfที่ไม่รับอาร์กิวเมนต์คืนค่า pi คำนวณโดยใช้Gregory Sequenceไปที่k=9^9 (ฉันไม่สามารถยืนยันได้ว่ามันถูกต้องเพียงพออย่างไรก็ตามฉันเชื่อว่ามันคือมันสามารถทำให้แม่นยำยิ่งขึ้นด้วยค่า k ที่มากขึ้น )จากนั้นจะปูพื้นผลลัพธ์เป็น128ตำแหน่งทศนิยมซึ่งข้างๆ3.คือความยาวของซอร์สโค้ด

ลองออนไลน์!


คนเราเห็นผลลัพธ์ได้อย่างไร - ฉันแค่เห็น3.14159265617ฉันกำลังดูผิดที่; ฉันต้องกดปุ่มหรือไม่
Jonathan Allan

Desmos ไม่พิมพ์ค่าเริ่มต้นเป็นทศนิยมจำนวนมากตามที่ระบุ แต่ค่าควรยังคงถูกต้อง
ATaco

1
นั่นน่าผิดหวังเนื่องจากความท้าทายคือ "การพิมพ์ ... "
Jonathan Allan

1
"จำเป็นต้องมีจุดทศนิยมในเอาท์พุทหากคุณเลือกที่จะแสดงผลด้วยค่าส่งคืนคุณต้องส่งคืนเลขจำนวนเต็มทศนิยม" ซึ่งทำให้ถูกต้อง
ATaco

ฉันรู้สึกว่าเจตนาของข้อความนั้นไม่อนุญาตให้มีความแม่นยำน้อยลง แต่เพื่อให้แน่ใจว่าตัวแยกทศนิยม ใจคุณฉันไม่คิดว่าคำตอบของคุณไม่ดี
Jonathan Allan



3

CJam , 5 ไบต์

3.14F

ลองออนไลน์!

มันทำงานอย่างไร

3.14   e# Push 3.14.
    F  e# Push 15.

ถ้าเพียง 3.Eแต่คุณอาจจะได้ทำ : P ไม่ทางใดก็ทางหนึ่งการรุกรานของ IO
Zacharý

กำลังจะโพสต์3'.EFแต่จากนั้นฉันเห็นคำตอบนี้ ...
ผลไม้ Esolanging


3

APL, 6 ไบต์

10○⍟-1

รับส่วนจินตภาพของ ln (-1)

ลองออนไลน์!


สวัสดียินดีต้อนรับกลับ @Uriel! เป็นคนดีฉันไม่ได้คิดอะไรแบบนั้น (มีบันทึกของจำนวนลบ), ทำได้ดีมาก!
Zacharý

@ Zacharýขอบคุณเพิ่งไปเยี่ยมและไม่สามารถช่วยตอบคำถามนี้ได้: P
Uriel

2

J , 16 ไบต์

17j15":4*_3 o.1:

ลองออนไลน์!

คล้ายกับคำตอบ VBA เอาท์พุท: 3.141592653589793.


"คุณไม่สามารถใช้แมโครภายในหรือค่าคงที่เพื่อกำหนดค่า pi" ตลกมันเป็นความคิดเห็นของคุณ
Leaky Nun

ผลลัพธ์ของคุณคือ 17 ไบต์ไม่ใช่ 16
ATaco

1
@ATaco ตรงไปตรงมามันคือตัวเลข 16 หลัก
เท่านั้น ASCII เท่านั้น

@LeakyNun มันทำไม่ได้ _3 o.1คำนวณ atan (1) อย่างที่คุณอาจทราบฉันรู้ดีถึงกฎ
Conor O'Brien

2

Math.JSขนาด 17 ไบต์

     log(-1,e).im

นั่นคือ 5 ช่องว่างชั้นนำ

สิ่งนี้จะคำนวณ จะเป็นทศนิยม 15 ตำแหน่งและพิมพ์โดยนัย

ลองออนไลน์!


ดีในทางเทคนิคนี้จะคำนวณส่วนจินตภาพของแต่เนื่องจากมันเป็นจำนวนจินตนาการก็เทียบเท่ากับหารด้วยln(-1) i
Zacharý

2

05AB1E , 11 ไบต์

3•∊&SK•)'.ý

ลองออนไลน์!

COMMAND     # CURRENT STACK         | EXPLANATION
------------#-----------------------+-----------------------------------
3           # [3]                   | Push 3.
 •∊&SK•     # [3, 1415926535]       | Push compressed base-255 number 1415926535.
       )    # [[3,1415926535]]      | Wrap the 2 to an array.
        '.  # [[3,1415926535],'.']  | Push a decimal point.
          ý # ['3.1415926535']      | Join 3 and 1415926535 with a decimal point.

การใช้ BUILT-INS:

05AB1E , 4 ไบต์

žq5£

ลองออนไลน์!


3žs ไม่ทำงานด้วยเหตุผลบางอย่าง ...


@ Zacharýฉันคิดถึงอะไรบางอย่าง? ทำไม xD พิเศษนั้น?
Magic Octopus Urn

อยู่ในชื่อผู้ใช้ของฉันและคุณสามารถเพิ่มคำอธิบายได้หรือไม่
Zacharý

@ Zacharý HA! สมองของฉันกำลังจะผ่านไปได้ทั้งหมดตลก PPCG ที่เกี่ยวข้องกับตลกมันอาจจะขึ้นมาว่างเปล่า ฉันคิดว่าอึ
Magic Octopus Urn

@ Zacharýยังเพิ่ม
Magic Octopus Urn

ถ้าฉันมีนัย IO จะมีวิธีที่จะชนะไม่มีE3.ฉันบ้าที่ฉันตัวเองตอนนี้: p
Zacharý



1

เยลลี่ 6 ไบต์

-ÆAær5

ลองออนไลน์!

ใช้แนวทางที่แตกต่างจากคำตอบของ Jelly อื่น ๆ

อย่างไร?

-ÆAคือ inverse cosine ของ-1(ซึ่งคือ pi), ær5ดึงส่วนที่ต้องการ มันได้ผลดังนั้นการปัดเศษจึงเท่ากับการตัดในกรณีนี้



1

Perl 5, 40 ไบต์

}{$\=$\/~(2*$_)*~$_+2for-130..-2

ต้องใช้ตัวเลือกบรรทัดคำสั่ง-pMbignumนับเป็น 8

ตัวอย่าง Useage:

$ perl -pMbignum test.pl < /dev/null
3.141592653589793238462643383279502884197

ฉันขอโทษที่ไม่มีลิงก์ TIO ดูเหมือนจะไม่รองรับbignum(หรือวงเล็บปีกกาเปิดที่ไม่มีใครเทียบ ... )


1

MY , 7 ไบต์

’2ō"8↑↵

ลองออนไลน์!

อย่างไร?

  • ลดค่าส่วนบนสุดของสแต็ก ( 0ถูกเปิดถ้าว่างเปล่าทำให้สแต็ก[-1]) (สัญลักษณ์เดียวกับเยลลี่)
  • 22ผลักดัน
  • ōเนื่องจากด้านบนสุดของสแต็กคือสองให้ทิ้ง the 2, pop nแล้วกดacos(n)(เป็นเรเดียนนี่จะให้ pi สัญลักษณ์นี้oมีเครื่องหมายลบอยู่ด้านบนo(สำหรับตรีโกณมิติปกติ) มาจาก APL)
  • "วางองค์ประกอบด้านบนของสแต็กแล้วดันเป็นสตริง
  • 88ผลักดัน
  • ปรากฏaแล้วbกดb[:a](นี่คือสัญลักษณ์อื่นที่นำมาจาก APL)
  • เอาต์พุตด้วยบรรทัดใหม่ (OUTPUT <- STACK)

จากนั้นเพิ่มเอาต์พุตโดยนัย: P
MD XF

ฉันรักษาความเป็นจริงกับธรรมชาติของฉันฉันอาจทำให้รุ่นปรับปรุงด้วยไวยากรณ์จริงและแน่นอนด้วยผลลัพธ์โดยนัย
Zacharý

1

RPL (HP48), 86.5 ไบต์, 87 หลัก [นับรวมหรือไม่?]

« GROB 8 43
14159265358979323846264338327950288419716939937510582097494459230781640628620899862803
→STR 9 OVER SIZE SUB 2 "." REPL »

GROB เป็นคำค้นหาภาพ ตัวเลข 2 ตัวที่ตามมาคือความกว้างและความสูง ตัวเลขฐานสิบหกที่ตามมาคือบิตแมป นั่นคือพื้นที่เก็บข้อมูล 1 ไบต์สำหรับทุก ๆ 2 หลักรวมถึงข้อมูลเมตาของภาพ

โปรแกรมว่าง« »ใช้เวลา 10 ไบต์ คำสั่งใช้เวลา 2.5 ไบต์ ลอยใช้เวลา 10.5 ไบต์ แต่ถ้ามันเท่ากับจำนวนเต็มหลักเดียวก็สามารถใช้ 2.5 ไบต์

HP48 เก็บ 4 มากกว่า 8 บิตในแต่ละตำแหน่งหน่วยความจำดังนั้นไบต์จึงใช้ 2 ตำแหน่งต่อเนื่องกัน (ต่ำสุด) บ่อยครั้งที่มีการใช้ชิ้นส่วน 20 บิตและใช้ขนาด 2.5 ไบต์ (ไม่ใช่ 3)





0

Excel VBA ขนาด 16 ไบต์

ฟังก์ชันหน้าต่าง VBE แบบไม่ระบุชื่อทันทีที่ไม่รับอินพุตและเอาต์พุตไปยัง STDOUTs ใด ๆ ของ Excel VBA

แต่ละบรรทัดแสดงถึงฟังก์ชันแยกต่างหากที่ส่งคืน Pi ของความยาว 16

?Mid(4*Atn(1),1)
?Str([Acos(-1)])
Debug.?4*Atn(1);
MsgBox[Acos(-1)]
[A1]="=ACOS(-1)"



0

TI-BASIC ขนาด 7 ไบต์

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

ข้อความทั้งสามนี้จะพิมพ์ออก3.141593มา


หมายเหตุ: TI-BASIC เป็นภาษาโทเค็น จำนวนตัวอักษรไม่เท่ากับจำนวนไบต์

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