코드 길이와 같은 자리수의 파이로 출력


9

코드 길이가 x어디에서 pi의 숫자 를 인쇄 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

인쇄해야하는 자릿수를 결정하는 데 사용할 수 있습니다 . 소수점은 pi의 숫자로 계산되지 않으므로 길이 3의 코드 는 길이 4의 출력을 가져야합니다 .floor(π/10 * 10code_length) / 10code_length - 13.14

규칙 :

  • 코드 길이는 3 자보다 커야합니다.
  • 표준 허점을 사용할 수 없습니다.
  • 표준 허용 출력 방법을 사용할 수 있습니다.
  • 코드 길이를 결정하기 위해 소스를 읽을 수 없습니다.
  • 내장 파이 상수를 사용할 수 없습니다.
  • Pi는 완전히 정확 하고 근사하지 않아야합니다.
  • 출력의 소수점이 필요합니다. 반환 값을 통해 출력하도록 선택한 경우 부동 소수점 정수를 반환해야합니다.
  • 이 과제의 목표는 솔루션의 가장 짧은 언어가 아니라 각 언어의 가장 짧은 솔루션을 찾는 것입니다. 솔루션이 다른 방법을 사용하는 한 더 짧은 솔루션이 동일한 언어로 게시 될 때 언어로 솔루션을 게시하는 것을 두려워하지 마십시오.

... 이것이 유효합니까?
Jonathan Allan

(edit ^ this even (rounding))
Jonathan Allan

"코드 길이"← 바이트 또는 문자?
Lynn

평소와 같이 @ 린 바이트.
MD XF

방금 3허용 되나요?
NoOneIsHere 여기

답변:


3

apt , 9 4 바이트

가능한 한 짧게 얻을 수 있습니다 :)

뒤에 인쇄 할 수없는 (역행 피드, 문자 코드 141)을 포함합니다 #.

3.#

그것을 테스트

Japt에서 뒤에 오는 모든 문자 #는 문자 코드로 변환되어 앞에 나오는 숫자 나 소수점에 추가됩니다.3.




6

VBA (Excel), 15 바이트

MsgBox 4*Atn(1)

출력 : 3.14159265358979

PI의 길이에 맞게 골프를 쳤을 때 이것이 허용되지 않는다고 생각합니다. 비 골프 길이는 17 바이트입니다. 디:


1
아직 환영받지 못한 것처럼 보이므로 사이트에 오신 것을 환영합니다!
MD XF

고마워요 : D
remoel

아닌가 Atn아크 탄젠트? 이것이 허용되는지 확실하지 않습니다 ... OP 요청
JungHwan Min

OP가 내장 PI만을 참조한다고 생각했습니다. 내 잘못이야.
remoel September

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있고 사용할 수 있지만 Jelly 솔루션과 동일합니다. .,
Zacharý



4

데스 모 , 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를 반환 합니다 k=9^9 (이것이 충분히 정확하다는 것을 확인할 수는 없지만 더 큰 k 값으로 더 정확해질 수 있다고 생각합니다 ) 그 다음 바닥에 결과 128함께, 소수점, 3.소스 코드의 길이입니다.

온라인으로 사용해보십시오!


실제로 결과를 어떻게 볼 수 있습니까? 나는 단지 3.14159265617잘못된 곳을보고 있습니까 ? 버튼을 눌러야합니까?
Jonathan Allan

기본적으로 Desmos는 제공된 소수점 이하 자릿수로 인쇄되지 않지만 값은 여전히 ​​정확해야합니다.
ATaco

1
도전은 "인쇄하는 것"이기 때문에 실망 스럽습니다.
Jonathan Allan

1
"출력의 소수점이 필요합니다. 반환 값을 통해 출력하도록 선택하면 부동 소수점 정수를 반환해야합니다." 이것이 유효합니다.
ATaco

그 진술의 의도는 정밀도를 떨어 뜨리지 않고 소수점 구분 기호를 보장하는 것이라고 생각합니다. 당신의 대답이 나쁘지 않다고 생각합니다.
Jonathan Allan


3

자바 스크립트, 16 바이트

_=>Math.acos(-1)

f=
_=>Math.acos(-1)
console.log(f())




3

APL, 6 바이트

10○⍟-1

ln (-1)의 허수 부분을 취합니다.

온라인으로 사용해보십시오!


안녕하세요, @Uriel을 환영합니다! 좋은 하나, 나는 (음수의 로그와 함께) 그런 일을 생각하지 않았습니다.
Zacharý

@ Zacharý 감사합니다, 방금 방문을 삭제 하고이 답변에 도움이되지 : P
Uriel

2

J , 16 바이트

17j15":4*_3 o.1:

온라인으로 사용해보십시오!

VBA 답변과 유사합니다. 출력 : 3.141592653589793.


"파이를 결정하기 위해 내장 매크로 나 상수를 사용할 수 없습니다." 웃긴, 그것은 당신의 의견입니다
Leaky Nun

출력은 16이 아닌 17 바이트입니다.
ATaco

1
@ATaco 정확히 16 자리입니다
ASCII 전용

@LeakyNun 그렇지 않습니다. _3 o.1atan (1)을 계산합니다. 아시다시피, 나는 규칙을 잘 알고 있습니다.
코너 오브라이언


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.

내장 사용 :

05AB1E , 4 바이트

žq5£

온라인으로 사용해보십시오!


3žs 어떤 이유로 작동하지 않습니다 ...


@ Zacharý 내가 놓친 것이 있습니까? 왜 특별한 xD입니까?
Magic Octopus Urn

내 사용자 이름으로되어 있으며 설명을 추가 할 수 있습니까?
Zacharý

@ Zacharý HA! 내 뇌는 가능한 재미있는 PPCG 관련 농담을 겪고 있었으며, 빈 상태가되었습니다. 나는 쓰레기를 너무 많이 생각했다.
Magic Octopus Urn

@ Zacharý도 추가했습니다.
Magic Octopus Urn

MY 암시 IO이 있다면, 이길 수있는 방법이 없을 것 E3., 나는 화가 해요 P : 지금 자기.
Zacharý

2

ForceLang , 269 바이트

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

적어도 github언어에 연결하십시오 .
Jonathan Allan

2

MATL , 9 8 바이트

-1X;V9:)

온라인으로 사용해보십시오!

설명:

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

Luis Mendo 덕분에 1 바이트를 절약했습니다!




1

펄 5, 40 바이트

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

-pMbignum8로 계산 된 명령 행 옵션이 필요합니다 .

샘플 사용량 :

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

TIO 링크가 없어서 죄송합니다. 지원하지 않는 것 같습니다 bignum(또는 일치하지 않는 오프닝 괄호 ...).


1

MY , 7 바이트

’2ō"8↑↵

온라인으로 사용해보십시오!

어떻게?

  • , 스택 상단을 줄입니다 ( 0비어 있으면 팝되어 스택을 만듭니다 [-1]). (젤리와 같은 기호)
  • 2을 누릅니다 2.
  • ō스택의 상단이 2이므로 2, pop을 버리고 n푸시합니다 acos(n)(라디안으로 표시되면 pi를 제공하고,이 기호는 o그 위에 음의 부호가 o붙 습니다. (일반 삼각의 경우)는 APL에서 나옵니다).
  • "스택의 맨 위 요소를 팝하여 문자열로 푸시합니다.
  • 8을 누릅니다 8.
  • a누른 다음 b을 누릅니다 b[:a](이것은 APL에서 가져온 또 다른 기호입니다).
  • , 새 줄로 출력합니다 (OUTPUT <-STACK).

그리고 암시 적 출력을 추가 : P
MD XF

내가 내의 본질에 충실 유지하고있어, 나는 실제 구문 향상된 버전을 확인하고 있습니다 확실히 암시 출력
재커리

1

RPL (HP48), 86.5 바이트, 87 자리 [이 숫자는 무엇입니까?]

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

GROB는 이미지 키워드입니다. 뒤에 오는 두 숫자는 너비와 높이입니다. 뒤에 오는 16 진수는 비트 맵입니다. 이는 2 자리마다 1 바이트의 저장 공간과 이미지 메타 데이터를 더한 것입니다.

빈 프로그램 « »은 10 바이트를 사용합니다. 명령은 2.5 바이트를 사용합니다. float는 10.5 바이트를 차지하지만 한 자리 정수와 같으면 2.5 바이트를 사용할 수 있습니다.

HP48은 각 메모리 위치에 8 비트가 아닌 4 비트를 저장하므로 바이트는 2 개의 연속 위치 (로우 엔디안)를 차지합니다. 종종 20 비트 청크가 사용되며 2.5 바이트 (3이 아님)를 사용합니다.





0

Excel VBA, 16 바이트

Excel VBA의 STDOUT으로 입력 및 출력하지 않는 익명 VBE 즉시 창 기능

각 줄은 길이 16의 Pi를 반환하는 별도의 함수를 나타냅니다.

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