Đầu ra có cùng số chữ số pi với độ dài của mã


9

Thử thách của bạn là in các xchữ số của pi trong đó xđộ dài mã của bạn.

Ví dụ:

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

Bạn có thể sử dụng để xác định số chữ số bạn cần in. Lưu ý rằng dấu thập phân không được tính là một chữ số của pi - vì vậy mã có độ dài 3 phải có đầu ra , có độ dài 4.floor(π/10 * 10code_length) / 10code_length - 13.14

Quy tắc:

  • Độ dài mã của bạn phải lớn hơn ba ký tự.
  • Bạn không thể sử dụng bất kỳ sơ hở tiêu chuẩn.
  • Bạn có thể sử dụng bất kỳ phương pháp đầu ra tiêu chuẩn được phép.
  • Bạn không thể đọc nguồn của mình để xác định độ dài mã.
  • Bạn không thể sử dụng hằng số dựng sẵn.
  • Pi phải hoàn toàn chính xác và không gần đúng.
  • Dấu thập phân trong đầu ra là cần thiết. Nếu bạn chọn xuất qua giá trị trả về, bạn phải trả về số nguyên dấu phẩy động.
  • Mục tiêu của thử thách này là tìm ra giải pháp ngắn nhất trong mỗi ngôn ngữ, không phải là ngôn ngữ ngắn nhất cho giải pháp. Đừng ngại đăng một giải pháp bằng một ngôn ngữ khi một giải pháp ngắn hơn được đăng trong cùng một ngôn ngữ miễn là giải pháp của bạn sử dụng một phương pháp khác.

... vậy điều này có hợp lệ hay không?
Jonathan Allan

(chỉnh sửa ^ này chẵn (làm tròn))
Jonathan Allan

Độ dài mã của Mã số ← ← theo byte hoặc bằng ký tự?
Lynn

@Lynn Byte, như thường lệ.
MD XF

3được phép không?
NoOneIsHere

Câu trả lời:


3

Japt , 9 4 byte

Càng ngắn càng tốt.

Bao gồm một không thể in được (nguồn cấp dữ liệu ngược, mã số 141) sau #.

3.#

Kiểm tra nó

Trong Japt, bất kỳ ký tự nào sau đây #được chuyển đổi thành mã ký tự của nó và được thêm vào bất kỳ chữ số hoặc dấu thập phân nào có thể đứng trước nó, trong trường hợp này là3.




6

VBA (Excel), 15 byte

MsgBox 4*Atn(1)

Đầu ra: 3.14159265358979

Tôi nghĩ rằng điều này là không thể chấp nhận được khi tôi chơi golf chỉ để phù hợp với chiều dài của PI. Độ dài không chơi gôn của nó là 17 byte. Đ:


1
Có vẻ như bạn chưa được chào đón, vì vậy, chào mừng đến với trang web!
MD XF

Ồ, cảm ơn bạn, thưa ngài! : D
làm lại

Không phải là Atnarctangent? Tôi không chắc điều này có được phép không ... hỏi OP
JungHwan Min

Tôi nghĩ OP chỉ đề cập đến PI tích hợp. Lỗi của tôi.
lại

5

Thạch , 6 byte

3;⁽4ƒṾ

Hãy thử trực tuyến!

In 3,14159bằng dấu tách thập phân "Châu Âu" được phép , ,.

Làm sao?

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
Danh sách chữ số đó có vẻ kỳ quặc. Tôi nghĩ rằng có một thêm ,'trong đó.
Jonathan Frech

1
Bạn có thể làm -ÆAær5và sử dụng .thay vì ,, nhưng sau đó nó sẽ giống như giải pháp Jelly của tôi.
Zacharý



4

Desmos , 130 byte

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

Mã nguồn cho điều này (có thể được truy cập bằng cách sao chép và dán bên trong và bên ngoài Desmos) không tối ưu khi được tạo bằng trình soạn thảo Desmos, do đó, một vài byte khoảng trắng được đặt xuống nếu có thể.

Định nghĩa này một chức năng fmà không có đối số lợi nhuận pi, tính bằng Gregory Chuỗi đến k=9^9 (Tôi không thể khẳng định điều này là đủ chính xác, tuy nhiên tôi của tin rằng nó là, nó có thể được thực hiện chính xác hơn với một giá trị lớn của k ) sau đó xếp kết quả thành các 128số thập phân, cùng với đó 3.là độ dài của mã nguồn.

Hãy thử trực tuyến!


Làm thế nào để một người thực sự nhìn thấy kết quả - tôi chỉ thấy 3.14159265617, tôi đang nhìn sai chỗ; Tôi có cần nhấn nút không?
Jonathan Allan

Desmos không in mặc định đến nhiều vị trí thập phân như được cung cấp, nhưng giá trị vẫn phải chính xác.
ATaco

1
Điều đó thật đáng thất vọng vì thử thách là "in ..."
Jonathan Allan

1
"Dấu thập phân trong đầu ra là cần thiết. Nếu bạn chọn đầu ra thông qua giá trị trả về, bạn phải trả về một số nguyên dấu phẩy động." mà làm cho điều này hợp lệ.
ATaco

Tôi cảm thấy mục đích của tuyên bố đó không phải là cho phép độ chính xác thấp hơn mà là để đảm bảo một dấu tách thập phân. Tâm trí bạn tôi không nghĩ câu trả lời của bạn là xấu.
Jonathan Allan




3

Neim , 5 byte

3FBρσ

Giải trình:

3      Push 3
 FB    F pushes 45, B converts it into a character code, '.'
   ρ   Push 14
    σ  Push 15
Implicitly concatenate and print stack

Hãy thử trực tuyến!


3

APL, 6 byte

10○⍟-1

Lấy phần tưởng tượng của ln (-1).

Hãy thử trực tuyến!


Xin chào, quay lại @Uriel! Thật tuyệt, tôi đã không nghĩ đến bất cứ điều gì như thế (với nhật ký các số âm), công việc tốt!
Zacharý

@ Zacharý cảm ơn, vừa bỏ một chuyến thăm và không thể giúp trả lời điều này: P
Uriel

2

J , 16 byte

17j15":4*_3 o.1:

Hãy thử trực tuyến!

Tương tự như câu trả lời VBA. Đầu ra : 3.141592653589793.


"Bạn không được sử dụng macro dựng sẵn hoặc hằng số để xác định pi." Thật buồn cười, đó là nhận xét của bạn
Leaky Nun

Đầu ra của bạn là 17 byte, không phải 16.
ATaco

1
@ATaco chính xác, đó là 16 chữ số
ASCII - chỉ

@LeakyNun thì không. _3 o.1tính atan (1). Như bạn có thể đã biết, tôi nhận thức rõ các quy tắc.
Conor O'Brien

2

Toán.JS , 17 byte.

     log(-1,e).im

Đó là 5 không gian hàng đầu

Điều này tính toán đến 15 vị trí thập phân và in ngầm nó.

Dùng thử trực tuyến!


Chà, về mặt kỹ thuật, cái này tính toán phần ảo ln(-1), nhưng vì nó là một con số tưởng tượng thuần túy, nên nó tương đương với việc chia cho i.
Zacharý

2

05AB1E , 11 byte

3•∊&SK•)'.ý

Hãy thử trực tuyến!

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.

SỬ DỤNG BUILT-INS:

05AB1E , 4 byte

žq5£

Hãy thử trực tuyến!


3žs không hoạt động vì một số lý do ...


@ Zacharý tôi có bỏ lỡ điều gì không? Tại sao xD đặc biệt đó?
Bạch tuộc ma thuật Urn

Đó là trong tên người dùng của tôi, và ngoài ra, bạn có thể thêm một lời giải thích?
Zacharý

@ Zacharý HÀ! Bộ não của tôi đã trải qua tất cả những trò đùa hài hước liên quan đến PPCG có thể xảy ra, trở nên trống rỗng. Tôi lật đổ tào lao.
Bạch tuộc ma thuật Urn

@ Zacharý cũng được, thêm vào.
Bạch tuộc ma thuật Urn

Nếu MY đã ngầm IO, sẽ có không có cách nào để đánh bại E3., tôi giận tôi tự bây giờ: p.
Zacharý

2

ForceLang , 269 byte

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268

Liên kết với ngôn ngữ trên github ít nhất.
Jonathan Allan

2

MATL , 9 8 byte

-1X;V9:)

Hãy thử trực tuyến!

Giải trình:

-1      % number literal
X;      % inverse cosine (radians), giving pi
V       % convert to string
9       % specify precision
:)      % keep first 9 characters - 8 digits of precision

Đã lưu một byte nhờ Luis Mendo!


1

Thạch , 6 byte

-ÆAær5

Hãy thử trực tuyến!

Sử dụng một cách tiếp cận khác với các câu trả lời Jelly khác.

Làm sao?

-ÆAlà cosin nghịch đảo của -1(là pi), ær5lấy phần cần thiết. Nó đã được giải quyết để làm tròn tương đương với cắt ngắn trong trường hợp này



1

Perl 5, 40 byte

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

Yêu cầu tùy chọn dòng lệnh -pMbignum, được tính là 8.

Mẫu sử dụng:

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

Tôi xin lỗi vì không có liên kết TIO, nó dường như không hỗ trợ bignum(hoặc một cú đúp mở đầu chưa từng có ...).


1

TÔI , 7 byte

’2ō"8↑↵

Hãy thử trực tuyến!

Làm sao?

  • , giảm đỉnh của ngăn xếp ( 0được bật nếu trống, tạo ngăn xếp [-1]). (Biểu tượng giống như Jelly)
  • 2, đẩy 2.
  • ō, vì đỉnh của ngăn xếp là hai, loại bỏ 2, pop n, sau đó đẩy acos(n)(theo radian, điều này cho pi, biểu tượng này ocó dấu âm trên đầu nó o(đối với trig bình thường) đến từ APL).
  • ", bật phần tử trên cùng của ngăn xếp và đẩy nó dưới dạng chuỗi.
  • 8, đẩy 8.
  • , bật arồi b, đẩy b[:a](Đây là một biểu tượng khác được lấy từ APL).
  • , đầu ra với một dòng mới (OUTPUT <- STACK).

Sau đó thêm đầu ra ẩn: P
MD XF

Tôi đang giữ đúng bản chất của MY, tôi có thể tạo một phiên bản cải tiến với cú pháp thực tế và chắc chắn với đầu ra ngầm định
Zacharý

1

RPL (HP48), 86,5 byte, 87 chữ số [Điều này có tính không?]

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

GROB là một từ khóa hình ảnh. 2 số theo sau là chiều rộng và chiều cao. Các chữ số thập lục phân theo sau là bitmap. Đó là 1 byte lưu trữ cho mỗi 2 chữ số cộng với siêu dữ liệu hình ảnh.

Chương trình trống « » mất 10 byte. Một lệnh mất 2,5 byte. Một float mất 10,5 byte, nhưng nếu nó bằng một số nguyên một chữ số, nó có thể mất 2,5 byte.

HP48 lưu trữ 4 chứ không phải 8 bit tại mỗi vị trí bộ nhớ, do đó, một byte chiếm 2 vị trí liên tiếp (endian thấp). Thông thường các đoạn 20 bit được sử dụng và chúng chiếm 2,5 byte (không phải 3).





0

VBA Excel, 16 byte

Các hàm cửa sổ ngay lập tức VBE ẩn danh không có đầu vào và đầu ra cho bất kỳ STDOUT nào của Excel VBA

Mỗi dòng đại diện cho một chức năng riêng biệt trả về Pi có độ dài 16

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



0

TI-BASIC, 7 byte

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

Ba báo cáo sẽ in 3.141593.


Lưu ý: TI-BASIC là ngôn ngữ được mã hóa. Số lượng ký tự không bằng số byte.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.