답변:
bc
-l
플래그 와 함께 호출 된 경우 자연 로그를 지원합니다 . base-10 또는 base-2 로그를 계산할 수 있습니다.
$ bc -l
...
l(100)/l(10)
2.00000000000000000000
l(256)/l(2)
8.00000000000000000007
나는 기본적으로 계승이 있다고 생각하지 않지만 스스로 작성하기에는 충분합니다.
$ bc
...
define fact_rec (n) {
if (n < 0) {
print "oops";
halt;
}
if (n < 2) return 1;
return n*fact_rec(n-1);
}
fact_rec(5)
120
또는:
define fact_it (n) {
if (n < 0) {
print "oops";
halt;
}
res = 1;
for (; n > 1; n--) {
res *= n;
}
return res;
}
fact_it(100)
93326215443944152681699238856266700490715968264381621468592963895217\
59999322991560894146397615651828625369792082722375825118521091686400\
0000000000000000000000
POSIX를 준수하려면 다음을 작성해야합니다.
define f(n) {
auto s, m
if (n <= 0) {
"Invalid input: "
n
return(-1)
}
s = scale
scale = 0
m = n / 1
scale = s
if (n != m) {
"Invalid input: "
n
return(-1)
}
if (n < 2) return(1)
return(n * f(n - 1))
}
즉, 단일 문자 함수 이름, 아니오 print
, 아니오 halt
, 괄호가 필요합니다 return(x)
. 입력 유효성 검사가 필요하지 않은 경우 (여기 양의 정수의 경우) 다음과 같습니다.
define f(n) {
if (n < 2) return(1)
return(n * f(n - 1))
}
0!=1
, 1!=1
. 적어도 위키피디아는 그렇게 말합니다.
Orpie는 이다 계산기와 명령 줄 괴짜 계산기. 최신 HP RPN 계산기를 에뮬레이트합니다. 물론 이는 계산하는 유일한 방법입니다.
TI, Casios 등에서 제기 된 계산기 이단자 인 경우 온라인으로 재교육을 시작할 수있는 많은 RPN 자습서가 있습니다. RPN 사고 방식을 익히면 Orpie 매뉴얼 이 결국 사용됩니다.
5를 계산하려면! Orpie에서 작성하는대로 입력하십시오 5 !. Enter그 사이를 눌러 5
스택에 먼저 밀어 넣을 수 있지만 반드시 그럴 필요는 없습니다.
로그 10 (5) 을 계산하려면을 입력하십시오 5 Enter ' l o Enter. 5
다음 키 스트로크는 연산자가 아니기 때문에이 경우에는 스택을 먼저 밀어야합니다 . 작은 따옴표 문자는 명령 약어 모드로 들어가서 입력을 시작할 log10
수 있으며 처음 두 문자만으로 고유하게 식별 할 수 있습니다. ( l
혼자서 ln
대신 자연 로그 기능을 얻을 수 있습니다 .)
어떤 RPN 계산기와 마찬가지로, 당신이 얻을 수있는 정말 연습의 비트와 함께, 빠른 Orpie와.
Orpie는 재고 Ubuntu repos에 있습니다. FreeBSD는 다음과 같이 포트에 포함합니다 math/orpie
. OS X에서는 Homebrew를 통해 설치할 수 있습니다 . 다른 OS에서 타사 패키지를 사용할 수 있습니다. OCaml 로 작성 되었으므로 OCaml 개발 환경이 설치되어 있지 않기 때문에 소스에서 빌드하는 것은 다소 번거로울 수 있습니다 . 하나의 설정을 얻는 것이 특히 어렵지는 않습니다.
명령 줄 계산기의 이맥 인 GNU Octave 는 항상 존재합니다 (계산기에 내장 된 완전한 개발 환경과 프로그래밍 언어 및 수천 개의 선택적 애드온을 원할 때)
또는 R 통계는 더 일이 있다면.
나는 대부분은 단지 사용하는 bc -l
난이 ... 표준 수학 라이브러리가로드 얻을 수 bc
별칭 bc -l
. bc
매뉴얼 페이지를 다음과 같이 정의 하지만 계승 함수 정의에 대한 정보는 Mat의 답변을 참조하십시오 .
define f (x) {
if (x <= 1) return (1);
return (f(x-1) * x);
}
== 1이 아닌 <= 1을 확인하면 음수 (오류 여야 함) 또는 0 (유효)을 공급할 경우 무한 루프가 방지됩니다.
내가 가장 좋아하는 것은 가볍고 간단 W-Calc
합니다.
http://w-calc.sourceforge.net
명령을 수동으로 보거나 수동으로 수동으로 다시 만들 필요가 없습니다 bc
. 명령은 대부분 정확히 예상 한 것이므로 원하는 것을 입력하면 작동합니다. 귀하의 질문에 따라 테스트 - 실제로 log()
및 n!
작업 예상대로.
(물론 나는 Orpie에 대해 들어 보지 못했습니다. 더 나은 옵션 일 수 있습니다.)