Dottie 수의 근사치

도티 번호 코사인 함수의 정점 또는 방정식의 해결책 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


답변

파이썬 3 , 58 바이트

lambda n:S('cos('*n+'0'+')'*n).evalf(n)
from sympy import*

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


답변

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


답변

PHP , 50 바이트

$a=$argv[1];$i=$j=0;while($i<$a){$j=cos($j);$i++;}

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


답변

K : 6 바이트

  _cos/1
0.7390851

f/f고정 점에 도달 할 때까지 적용됩니다 .


답변

R (+ Rmpfr), 55 바이트

function(n,b=Rmpfr::mpfr(1,n)){for(i in 1:n)b=cos(b);b}

Dennis는 이제 Rmpfr을 TIO에 추가하여 작동합니다. 몇 가지 테스트 사례를 추가했습니다.

설명:

나는에서 쓴 코드 소요 이러한 과제 평가 cos n에서 시작 시간을 1, 그러나 첫째로 나는 값이 객체 생성에 의해되고 싶어 정밀도 지정 b클래스를 mpfr1과 정밀도를 n, n>=2우리가 앞으로 더 정밀도를 얻을 수 있도록.

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