bc
unterstützt den natürlichen Logarithmus, wenn er mit dem -l
Flag aufgerufen wird . Sie können das Base-10- oder Base-2-Protokoll damit berechnen:
$ bc -l
...
l(100)/l(10)
2.00000000000000000000
l(256)/l(2)
8.00000000000000000007
Ich glaube nicht, dass es eine eingebaute Fakultät gibt, aber das ist einfach genug, um sich selbst zu schreiben:
$ 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
Oder:
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
Um POSIX-kompatibel zu sein, müssen Sie Folgendes schreiben:
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))
}
Das heißt: Name der Einzelzeichenfunktion, nein print
, nein halt
, Klammer erforderlich in return(x)
. Wenn Sie keine Eingabevalidierung benötigen (hier für positive Ganzzahlen), ist es nur:
define f(n) {
if (n < 2) return(1)
return(n * f(n - 1))
}
0!=1
genauso1!=1
. Zumindest sagt das Wikipedia.Orpie ist der Taschenrechner für Rechner- und Kommandozeilenfreaks. Es emuliert einen modernen HP RPN-Rechner, der natürlich die einzig wahre Berechnungsmethode ist.
Wenn Sie ein Taschenrechner-Häretiker sind, der auf TIs, Casios und dergleichen aufbaut, gibt es viele RPN- Tutorials online, mit denen Sie Ihre Umerziehung beginnen können. Das Orpie-Handbuch wird Ihnen irgendwann von Nutzen sein, sobald Sie die RPN-Denkweise verstanden haben.
5 berechnen! in orpie, geben Sie es, wie Sie es schreiben würde: 5 !. Sie können Enterzwischen ihnen drücken, um sie zuerst
5
auf den Stapel zu schieben , dies ist jedoch nicht erforderlich.Geben Sie zum Berechnen von Protokoll 10 (5) Folgendes ein 5 Enter ' l o Enter.
5
In diesem Fall müssen Sie das Symbol zuerst auf den Stapel schieben , da der nächste Tastendruck kein Operator ist. Dieses einfache Anführungszeichen wechselt in den Befehlsabkürzungsmodus, in dem Sie mit der Eingabe beginnen könnenlog10
, die Sie nur anhand der ersten beiden Zeichen eindeutig identifizieren können. (l
Alleine erhalten Sieln
stattdessen die natürliche Protokollfunktion .)Wie bei jedem RPN-Rechner können Sie mit Orpie sehr schnell und mit ein wenig Übung arbeiten.
Orpie ist auf Lager Ubuntu Repos. FreeBSD enthält es in Ports, as
math/orpie
. Unter OS X können Sie es über Homebrew installieren . Pakete von Drittanbietern sind möglicherweise für andere Betriebssysteme verfügbar. Das Erstellen aus dem Quellcode ist möglicherweise etwas mühsam, da es in OCaml geschrieben ist und wahrscheinlich keine OCaml-Entwicklungsumgebung installiert ist. Es ist jedoch nicht besonders schwierig, eine Einrichtung zu finden.quelle
Es gibt immer GNU Octave , die Emacs von Befehlszeilenrechnern (wenn Sie eine vollständige Entwicklungsumgebung und Programmiersprache in Ihren Rechner integriert haben möchten, und Tausende von optionalen Add-Ons)
oder R, wenn Statistiken eher dein Ding sind.
Ich verwende meistens nur
bc -l
, um die Standard-Mathematikbibliothek zu laden ... ich habe sogarbc
Alias zubc -l
. Siehe Mat Antwort für Informationen über eine Fakultätsfunktion definieren .... obwohl derbc
Mann Seite definiert sie als:Das Prüfen auf <= 1 anstelle von == 1 verhindert eine Endlosschleife, wenn Sie eine negative Zahl (sollte ein Fehler sein) oder Null (gültig) eingeben.
quelle
Mein Favorit ist das leichte, einfache
W-Calc
. http://w-calc.sourceforge.netSie müssen nicht im Handbuch nachschauen oder allgemeine Funktionen manuell neu erstellen, wie Sie es mit tun
bc
- die Befehle sind größtenteils genau das, was Sie erwarten. Geben Sie einfach das ein, was Sie möchten, und es funktioniert. Testen gemäß Ihrer Frage - in der Tatlog()
undn!
arbeiten wie erwartet.(Zugegeben, ich habe noch nie von Orpie gehört - sehr wohl eine bessere Option.)
quelle
Total übertrieben, aber Programmiersprachen-Interpreter sind doch Kommandozeilenrechner:
quelle
Wenn Sie Mac-Ports haben:
quelle