도티 번호 코사인 함수의 정점 또는 방정식의 해결책 COS (X) = X . 1
당신의 임무는이 상수에 가까운 코드를 만드는 것입니다. 코드는 정수를 입력으로 받아서 실수를 출력하는 함수를 나타내야합니다. 입력이 증가함에 따라 함수의 한계는 Dottie 수 여야합니다.
숫자의 분수, 소수 또는 대수 표현으로 출력 할 수 있습니다. 출력은 임의로 정교 할 수 있어야하며, 플로트 및 더블은이 문제에 충분하지 않습니다. 언어가 임의의 정밀도 숫자를 사용할 수없는 경우 언어를 구현하거나 새 언어를 선택해야합니다.
이것은 코드 골프 질문이므로 바이트 수가 적을수록 답이 바이트로 표시됩니다.
팁
상수를 계산하는 한 가지 방법은 임의의 수를 취하고 코사인을 반복적으로 적용하는 것입니다. 응용의 수가 무한대에 가까워 질수록 결과는 고정 코사인 점으로 향합니다.
다음은 숫자의 정확한 근사값입니다.
0.739085133215161
1 : 여기서 우리는 라디안으로 코사인을 취할 것입니다
답변
MATL , 34 30 19 바이트
Sanchises 덕분에 11 바이트 할인 !
48i:"'cos('wh41hGY$
출력의 마지막 10 진수는 꺼져있을 수 있습니다. 그러나 왼쪽부터 시작하여 올바른 숫자의 수가 입력에 따라 증가하고 결과는 실제 상수로 수렴됩니다.
설명
입력 n의 경우 x = 1 에서 시작 하면 함수가 적용됩니다.
x ↦ cos ( x )
함께 N -digit 가변 정밀도 산술 N 개의 시간.
48 % Push 48, which is ASCII for '1': initial value for x as a string
i:" % Do n times, where n is the input
'cos(' % Push this string
w % Swap. Moves current string x onto the top of the stack
h % Concatenate
41 % Push 41, which is ASCII for ')'
h % Concatenate. This gives the string 'cos(x)', where x is the
% current number
GY$ % Evaluate with variable-prevision arithmetic using n digits
% The result is a string, which represents the new x
% End (implicit). Display (implicit). The stack contains the last x
답변
답변
GNU bc -l, 30
에 -l
플래그를 표시 할 때 점수에 +1이 포함 됩니다 bc
.
for(a=1;a/A-b/A;b=c(a))a=b
a
마지막 줄 바꿈은 중요하고 필요합니다.
-l
두 가지 일을합니다 :
c()
cos (x)를 포함하여 “math”라이브러리 활성화- 정밀도 (스케일)를 소수점 이하 20 자리로 설정 (
bc
임의의 정밀도 계산)
정밀도 요구 사항에 대해서는 명확하지 않습니다. 그대로,이 프로그램은 소수점 이하 20 자리까지 계산합니다. 다른 정밀도가 필요한 scale=n;
경우 프로그램 시작시 n
소수점 이하 자릿수를 삽입해야 합니다. 이 점수를 내 점수에 추가해야하는지 모르겠습니다.
소수점 이하 자릿수 (예 : 21, 20은 아님)의 경우 계산은 마지막 자리에서 솔루션의 양쪽을 진동시킵니다. 따라서 현재 반복과 이전 반복을 비교할 A
때 마지막 자리를 지우려면 양쪽을 10 ( )으로 나눕니다 .
답변
매스 매 티카, 22 바이트
Nest[Cos@#&,0,9#]~N~#&
입력
[100]
산출
0.73908513321516064165531208767387340401341175890075746496568063577328 \ 46548835475945993761069317665318
답변
답변
K : 6 바이트
_cos/1
0.7390851
f/
f
고정 점에 도달 할 때까지 적용됩니다 .